Linux 系统中怎么排查网卡接收缓冲区溢出引发的丢包故障

陌伟大大_5505

陌伟大大_5505

2026-09-29

718人浏览

原创

网卡接收缓冲区溢出是linux网络丢包最常见却易被忽略的原因,表现为tcpdump抓不到、netstat -s统计不到的“静默丢包”;需分层排查:先查/proc/net/dev的rx-ovr,再用ethtool -s核验rx_over_errors/rx_fifo_errors/rx_missed_errors,最后调大ring buffer(如ethtool -g eth0 rx 4096)并匹配软中断、irq affinity等负载能力。

linux 系统中怎么排查网卡接收缓冲区溢出引发的丢包故障

网卡接收缓冲区溢出是 Linux 网络丢包最常见却最容易被忽略的原因之一。它发生在数据包刚到达网卡硬件、还没进入内核协议栈的阶段,所以 tcpdump 抓不到,netstat -s 也统计不到,属于“静默丢包”。排查核心是分层验证:先看系统级统计,再查驱动级计数器,最后确认配置与负载是否匹配。

看 /proc/net/dev 的 Rx-OVR 列

Rx-OVR(Overruns)是第一道快速判断依据,代表网卡 FIFO 或 Ring Buffer 溢出导致的丢包:

  • 执行 cat /proc/net/dev,找到目标网卡(如 eth0),关注 Rx-OVR 列数值
  • Rx-OVR > 0 且随流量上升而持续增长 → 基本锁定接收缓冲区溢出
  • 注意:虚拟网卡(如 virtio_net)可能不暴露 Rx-OVR,此时需结合 dmesg | grep -i "missed" 和 ethtool -S 中 rx_missed_errors 综合判断

查 ethtool -S 中的关键丢包字段

ethtool -S 输出的是驱动原生计数器,比 /proc/net/dev 更细、更准:

CMIC Skill Scanner (Linux ARM64)
CMIC Skill Scanner (Linux ARM64)

使用 auto、native 或 external 引擎审计待安装的 skill 包或归档,并可选启用 LLM 语义分析。

下载
  • rx_over_errors:对应 Rx-OVR,确认 Ring Buffer 溢出是否属实
  • rx_fifo_errors:物理 FIFO 满,多见于小包高吞吐场景,常与 rx_over_errors 同步上涨
  • rx_missed_errors:虚拟化环境关键指标,vCPU 调度延迟导致中断丢失,值上升说明宿主机 CPU 过载或 vCPU 绑定不合理
  • rx_dropped:包已进 Ring Buffer,但被内核丢弃(如内存不足、NAPI 处理慢),不属于缓冲区溢出范畴,需另查

检查并调大 Ring Buffer 大小

默认值在高吞吐或小包场景下极易不足(如 igb 默认 RX=256,ixgbe 默认 RX=512):

  • 查看当前大小:ethtool -g eth0
  • 尝试调大(需网卡支持):ethtool -G eth0 rx 4096(万兆卡常见上限为 4096 或 8192)
  • 调大后观察 rx_over_errors 是否停止增长;若仍涨,需检查驱动版本、固件、中断亲和性(IRQ affinity)或软中断负载

协同检查配套内核参数与运行状态

单调大 Ring Buffer 效果有限,必须匹配处理能力:

  • 检查软中断负载:cat /proc/net/softnet_stat,第二列(dropped)若同步上涨,说明 NAPI 或 NET_RX 处理不过来
  • 增大入口队列容量:sysctl net.core.netdev_max_backlog=30000,防突发流量在软中断前堆积
  • 确认中断是否集中在一个 CPU:cat /proc/interrupts | grep eth0,若某 core 中断远高于其他,应配置 IRQ affinity 分散负载
  • 避免误配 tc/qdisc:运行 tc qdisc show dev eth0,排除 netem loss 等人为丢包干扰

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

860

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2532

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

856

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

749

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

394

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2276

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4192

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

687

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习