0

0

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

冷炫風刃

冷炫風刃

发布时间:2025-12-24 22:59:20

|

869人浏览过

|

来源于php中文网

原创

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

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

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 计数器。

viable
viable

基于GPT-4的AI非结构化数据分析平台

下载
  • 运行 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 竞态丢包问题。

相关专题

更多
class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

452

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

6

2025.12.06

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1343

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

698

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

293

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

771

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

571

2023.07.06

linux删除文件夹的方法
linux删除文件夹的方法

linux删除文件夹的方法:1、使用rm -r命令;2、使用rm -rf命令;3、使用find命令结合rm命令;4、使用图形界面。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

969

2024.02.23

苹果官网入口直接访问
苹果官网入口直接访问

苹果官网直接访问入口是https://www.apple.com/cn/,该页面具备0.8秒首屏渲染、HTTP/3与Brotli加速、WebP+AVIF双格式图片、免登录浏览全参数等特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

10

2025.12.24

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 5.9万人学习

Git 教程
Git 教程

共21课时 | 2.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号