Linux 网络丢包如何定位?
发布时间 - 2026-01-26 00:00:00 点击率:次网卡丢包排查应优先关注RX-OVR和RX-DRP:RX-OVR>0表示Ring Buffer溢出丢包,RX-DRP>0且RX-OVR==0说明内核处理阶段丢包,RX-ERR>0则指向物理链路问题。
先看网卡统计:RX-OVR 和 RX-DRP 是关键入口
丢包不一定在应用层,往往从网卡收包那一刻就开始了。真正该盯的第一个指标,是 netstat -i 输出里的 RX-OVR(Ring Buffer 溢出)和 RX-DRP(内核处理阶段丢包)。
-
RX-OVR > 0:说明网卡收包太快,内核来不及取走,Ring Buffer 满了直接丢——常见于高吞吐 + 单核软中断集中、或 Ring Buffer 太小(默认常为 256) -
RX-DRP > 0且RX-OVR == 0:包已进缓冲区,但被内核主动丢弃,原因可能是内存不足、softnet_stat第2列持续增长、或 NAPI 轮询延迟高 -
RX-ERR > 0:物理链路大概率有问题,比如光衰超标、线缆接触不良、协商失败(ethtool eth0看link detected: no或speed: Unknown!)
别跳过这步直接抓包——如果 RX-OVR 已经在涨,tcpdump 就根本看不到那些“消失”的包。
检查 tc 规则:QoS 丢包不写进网卡计数器
网卡清白 ≠ 没丢包。tc 配置的 netem、policer、fq_codel 等策略,会在协议栈更上层直接丢包,完全绕过 /proc/net/dev 统计。
- 运行
tc -s qdisc show dev eth0,重点找含loss、limit、rate的行,例如:qdisc netem 800d: root ... loss 5% - 若看到
dropped X且数值持续上升,基本就是它干的——尤其是测试环境残留的netem,生产环境必须禁用 - 清除规则用
tc qdisc del dev eth0 root(注意:不是所有场景都能直接删,确认无业务依赖)
很多人查完 netstat -i 没异常就放弃,结果漏掉这个最“安静”的丢包源。
盯住软中断和 Ring Buffer 设置
即使 RX-OVR == 0,也可能因 Ring Buffer 偏小 + CPU 负载高导致消费滞后。这时要交叉验证:
- 查中断分布:
cat /proc/interrupts | grep eth0,看是否全压在 CPU0 上;若某核SI(softirq)软中断长期 >70%,说明 NAPI 处理不过来 - 查 softnet 队列状态:
cat /proc/net/softnet_stat,第1列(processed)和第2列(dropped)比值骤降,或第2列稳定上涨,就是 softnet backlog 溢出 - 调大 Ring Buffer:
ethtool -G eth0 rx 4096 tx 4096(需驱动支持,部分虚拟网卡不生效) - 启用 RPS 分散软中断:
echo f > /sys/class/net/eth0/queues/rx-0/rps_cpus(十六进制掩码,f=全开前4核)
Ring Buffer 不是越大越好——过大会增加 cache miss,一般 1024~4096 是较安全的起步值。
别绕过物理层和驱动日志
最基础的环节,反而最容易被跳过。很多“随机丢包”其实是线缆松动、光模块老化、或驱动 bug 导致的。
- 用
ethtool eth0确认:Link detected: yes、Speed: 10000Mb/s、Duplex: Full、FEC: auto;若出现Auto-negotiation: off或failed,手动协商或换线 - 查
驱动报错:
dmesg | grep -i "eth\|nic\|firmware\|dma",重点关注DMA timeout、firmware hang、reset failed - 旧版 Intel X710 / Mellanox CX-5 驱动存在 Ring Buffer 竞态丢包缺陷,更新固件和驱动常能一招解决
真正的瓶颈,往往不在你怀疑的地方——它可能就藏在 ethtool 输出里一行不起眼的 Link detected: no 后面。
# linux
# go
# 栈
# ai
# echo
# auto
# class
# tcpdump
# bug
# 跳过
# 链路
# 第一个
# 尤其是
# 都能
# 很多人
# 会在
# 满了
# 越好
# 那一刻
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
浅谈Javascript中的Label语句
如何在云主机上快速搭建网站?
电商网站制作价格怎么算,网上拍卖流程以及规则?
Laravel如何实现API资源集合?(Resource Collection教程)
Laravel如何处理异常和错误?(Handler示例)
怎么用AI帮你设计一套个性化的手机App图标?
*服务器网站为何频现安全漏洞?
Laravel如何创建自定义Facades?(详细步骤)
制作旅游网站html,怎样注册旅游网站?
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
微信小程序 require机制详解及实例代码
Android利用动画实现背景逐渐变暗
香港服务器WordPress建站指南:SEO优化与高效部署策略
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
如何在云服务器上快速搭建个人网站?
如何在万网主机上快速搭建网站?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
使用豆包 AI 辅助进行简单网页 HTML 结构设计
JavaScript如何实现路由_前端路由原理是什么
佛山网站制作系统,佛山企业变更地址网上办理步骤?
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
如何快速搭建高效WAP手机网站吸引移动用户?
java中使用zxing批量生成二维码立牌
如何在自有机房高效搭建专业网站?
如何在阿里云香港服务器快速搭建网站?
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
Android自定义listview布局实现上拉加载下拉刷新功能
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
中山网站制作网页,中山新生登记系统登记流程?
网页设计与网站制作内容,怎样注册网站?
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
javascript日期怎么处理_如何格式化输出
Laravel如何生成API文档?(Swagger/OpenAPI教程)
Laravel如何实现本地化和多语言支持?(i18n教程)
QQ浏览器网页版登录入口 个人中心在线进入
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
Python文件异常处理策略_健壮性说明【指导】
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
如何在阿里云虚拟服务器快速搭建网站?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
Laravel Fortify是什么,和Jetstream有什么关系
简历没回改:利用AI润色让你的文字更专业
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
详解CentOS6.5 安装 MySQL5.1.71的方法
Windows Hello人脸识别突然无法使用


