Linux网络丢包怎么排查_链路与网卡分析方法【教程】

发布时间 - 2025-12-24 00:00:00    点击率:
Linux网络丢包需逐层排查:先查网卡RX-OVR(Ring Buffer溢出)、RX-DRP(内核处理丢包)、RX-ERR(物理链路问题),再检查tc规则、软中断分布、Ring Buffer设置及物理连接与驱动状态。

Linux网络丢包排查不能只盯着应用或配置,得从底层网卡和链路层开始逐层确认。真正有效的排查,是先看硬件是否“装得下”、驱动是否“来得及取”,再查有没有人为规则在中间截流。

看网卡统计:RX-OVR 和 RX-DRP 是关键指标

执行 netstat -i 查看各网卡收发统计:

  • RX-OVR:Ring Buffer 溢出丢包。说明内核处理速度跟不上网卡收包速度,常见于高吞吐、低配机器或中断未均衡场景。
  • RX-DRP:进入 Ring Buffer 后被丢弃,多因内存不足、软中断延迟高、NAPI 轮询不及时等内核处理瓶颈引起。
  • RX-ERR:校验失败(如 CRC 错误)、帧格式异常,指向物理链路问题(线缆、光衰、端口协商失败)。

若 RX-OVR 非零,优先用 ethtool -g 查当前 Ring Buffer 大小,并考虑调大(如 ethtool -G rx 4096);若 RX-ERR 高,检查 ethtool 中的 link status、speed/duplex、fec 状态,确认物理连接稳定。

查 tc 规则:QoS 丢包不会出现在网卡统计里

网卡清白 ≠ 没丢包。tc 配置的 netem、fq_codel、policer 等策略会直接丢包,且完全绕过 RX/TX 计数器。

  • 运行 tc qdisc show dev ,重点看是否有 losslimitrateburst 相关参数。
  • 若发现类似 qdisc netem ... loss 5%,说明这是人为注入丢包,用于测试或限流——生产环境应禁用。
  • 清除规则:tc qdisc del dev root(慎用,确保无依赖)。

盯住 Ring Buffer 和中断:软中断瓶颈常被忽略

即使 RX-OVR 为 0,也可能是 Ring Buffer 设置偏小 + CPU 负载高导致消费滞后。进一步验证:

  • cat /proc/interrupts | grep 观察对应网卡中断是否集中在单个 CPU 上;若某 CPU 的 softirq(SI)持续高于 70%,说明 NAPI 处理不过来。
  • 启用 RPS/RFS:echo f > /sys/class/net//queues/rx-0/rps_cpus(按需调整掩码),把软中断分散到多核。
  • 检查 /proc/net/softnet_stat 第 1 列(processed)与第 2 列(dropped)比值;第 2 列持续增长,表明 softnet 队列溢出丢包。

排除物理与驱动层干扰

别跳过最基础但最易出错的一环:

  • ethtool 确认 link detected yes、speed 匹配对端、duplex full;若显示 auto-negotiation failed,手动协商或换线缆。
  • 检查 dmesg | grep -i "eth\|nic\|firmware" 是否有驱动报错、DMA timeout、firmware crash 等日志。
  • 更新网卡固件和驱动版本,尤其 Mellanox、Intel X710 等常见企业级网卡,旧版驱动存在已知 Ring Buffer 竞态丢包问题。


# linux  # go  # 端口  # ai  # echo  # auto  # class  # 多核  # 链路  # 这是  # 出现在  # 盯着  # 报错  # 有没有人  # 先看  # 跳过  # 旧版 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 新三国志曹操传主线渭水交兵攻略  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  Android中AutoCompleteTextView自动提示  历史网站制作软件,华为如何找回被删除的网站?  js实现获取鼠标当前的位置  如何撰写建站申请书?关键要点有哪些?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  Linux系统运维自动化项目教程_Ansible批量管理实战  网站制作大概多少钱一个,做一个平台网站大概多少钱?  如何挑选最适合建站的高性能VPS主机?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  网站图片在线制作软件,怎么在图片上做链接?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  canvas 画布在主流浏览器中的尺寸限制详细介绍  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  怎么用AI帮你为初创公司进行市场定位分析?  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  郑州企业网站制作公司,郑州招聘网站有哪些?  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  百度浏览器如何管理插件 百度浏览器插件管理方法  活动邀请函制作网站有哪些,活动邀请函文案?  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  佛山网站制作系统,佛山企业变更地址网上办理步骤?  Laravel如何处理异常和错误?(Handler示例)  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  详解Oracle修改字段类型方法总结  手机网站制作与建设方案,手机网站如何建设?  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  高端云建站费用究竟需要多少预算?  EditPlus中的正则表达式 实战(1)  如何构建满足综合性能需求的优质建站方案?  如何用景安虚拟主机手机版绑定域名建站?  如何在IIS管理器中快速创建并配置网站?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  如何在Ubuntu系统下快速搭建WordPress个人网站?  公司门户网站制作流程,华为官网怎么做?  html5的keygen标签为什么废弃_替代方案说明【解答】  如何在香港服务器上快速搭建免备案网站?  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  如何在万网ECS上快速搭建专属网站?  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  如何快速使用云服务器搭建个人网站?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程