sar -n DEV 显示网卡 errs/drop 持续上升,通常源于底层链路异常,需依次排查驱动兼容性(ethtool -i)、offload 配置冲突、物理链路问题(双工/速率/光衰)、硬件故障(dmesg/AER/PCIe)、系统资源瓶颈(softirq/backlog)。

sar -n DEV 显示某网卡的 errs(错误包)或 drop(丢包数)持续上升,通常不是单纯的应用层问题,而是底层链路存在异常。需结合网卡状态、驱动行为和硬件健康度综合排查。
网卡驱动不兼容或存在已知缺陷
老旧、定制或非主线内核驱动常在高吞吐、多队列或特定中断模式下触发报错逻辑,导致 errs 计数异常增长(如 CRC 错误误报、校验绕过失败),或因接收缓冲区管理缺陷引发 drop 上升。
- 检查当前驱动版本:
ethtool -i ethX,比对厂商发布的稳定版/补丁公告 - 确认是否启用 NAPI、RSS、GRO/LRO 等特性,某些组合在特定驱动中会引发统计偏差或丢包(例如 LRO 与 checksum offload 冲突)
- 临时禁用 offload 测试:
ethtool -K ethX rx off tx off gso off tso off,观察errs/drop是否收敛
物理链路或端口协商异常
双工不匹配、速率降级、光纤衰减、RJ45 接触不良等,会导致大量 CRC/FCS 错误(计入 errs),或因 PHY 层无法可靠接收而直接丢弃帧(计入 drop)。
- 运行
ethtool ethX查看Speed、Duplex、Link detected及Auto-negotiation状态,确认两端一致 - 检查
ethtool -S ethX | grep -i "err\|drop\|over\|crc"中更细粒度计数(如rx_crc_errors、rx_over_errors、rx_fifo_errors),定位错误类型 - 更换网线、交换机端口、SFP 模块,或使用光功率计检测光纤收发光是否在标称范围内
网卡硬件故障或资源耗尽
网卡 FIFO 溢出、DMA 故障、PCIe 链路不稳定(如 AER 错误)、板载缓存损坏等,会直接导致接收失败并计入 drop;部分故障还会伪造错误帧计入 errs。
- 查看内核日志:
dmesg -T | grep -i "ethX\|pci\|aer\|fatal",关注pcieport、igb/ixgbe/i40e等驱动报错 - 检查 PCIe 链路状态:
lspci -vv -s $(lspci | grep ethX | awk '{print $1}') | grep -A 10 "LnkSta",确认Speed和Width稳定,无Receiver Error或Bad TLP - 尝试将网卡换插到另一 PCIe 插槽,或更换同型号网卡交叉验证
系统资源瓶颈间接引发 drop
虽不直接增加 errs,但严重 CPU 不足、软中断(softirq)处理延迟、netdev backlog 溢出,会导致内核来不及从网卡 ring buffer 取包,最终调用 netif_receive_skb_core 前丢弃,计入 drop(尤其 rx_dropped)。
- 监控软中断负载:
cat /proc/softirqs | grep NET_RX,配合top -H观察 ksoftirqd/CPU 绑定情况 - 检查 netdev backlog:
ss -s中receiver队列长度,或netstat -s | grep -A 5 "Udp\|TcpExt"查看packet receive errors - 调整
net.core.netdev_max_backlog、绑定 IRQ 到专用 CPU、启用 RPS/RFS,缓解单核瓶颈











