当前位置:首页 > 文章列表 > 文章 > linux > Linux 怎样读取网卡丢包统计

Linux 怎样读取网卡丢包统计

来源:17golang原创 2026-10-18 14:56:48 0浏览 收藏

Linux 上发现接口丢包时,不要只盯着一个名为 dropped 的数字。标准接口统计可以先告诉我们 RX 或 TX 方向是否有丢弃,ethtool -S 再补充网卡驱动和硬件队列暴露的计数。两套统计的字段、采集位置和命名可能不同,所以正确做法是先读标准值,再按当前驱动提供的字段解释。

官方资料:https://www.kernel.org/doc/html/latest/networking/statistics.html;https://man7.org/linux/man-pages/man8/ethtool.8.html

最短路径是:用 ip -s link show dev eth0 看标准 dropped,用 ethtool -S eth0 看驱动/NIC 细分计数,再用接口状态和驱动信息确定这些字段能否支持你的判断。

下面的接口名均是示例,命令是给读者在目标 Linux 主机上执行的只读诊断步骤;本文没有把示例输出冒充成某台机器的运行结果。

先把标准接口统计读完整

第一步先看内核提供的标准计数。它适合回答“这个网络设备从主机视角是否记录了接收或发送丢弃”,不负责告诉你每个 NIC 队列、驱动环形缓冲区或硬件模块的细节。

# 把 eth0 换成目标主机真实存在的接口名,先读取标准 RX/TX 计数。
ip -s link show dev eth0

# 只筛选接口的标准统计行,方便与下一次采样比较。
ip -s -s link show dev eth0

输出中的 RX 和 TX 行通常包含 packets、errors、dropped 等字段。重点不是某一刻数字大不大,而是连续两次采样时哪个方向的 dropped 在增长。若只看到 RX dropped 增长,先沿接收路径排查;TX dropped 增长则看发送队列、设备状态和上层发送压力。

ip -s link 的 dropped 是标准接口统计,不等于所有硬件丢包的总和。内核文档还提醒,带内部交换能力的设备可能按端口统计,计数不一定只对应当前主机接口,因此不要把一个数字直接解释成“某个应用丢了多少包”。

Linux标准接口统计与ethtool驱动统计的分层关系说明图
图1:统计分层说明图。标准接口层提供 RX/TX dropped,ethtool 层提供驱动和 NIC 细分字段;两者是互补观察面,不是同一个计数器的重复显示。

用 ethtool -S 找到驱动层的丢包字段

标准计数出现增长后,再看设备和驱动能提供什么细分。-S(--statistics)用于查询标准统计或 NIC、驱动专用统计;不同厂商的字段命名没有统一保证。

# 查看接口能提供的驱动/NIC 统计;字段由当前驱动决定。
sudo ethtool -S eth0

# 只保留常见线索词,避免把筛选结果当成完整统计集合。
sudo ethtool -S eth0 | grep -Ei 'drop|miss|discard|fifo|error|overrun'

# 如果工具和驱动支持标准统计分组,可请求标准组而不是猜字段名。
sudo ethtool -S eth0 --groups eth-phy eth-mac eth-ctrl rmon

常见线索包括 rx_dropped、tx_dropped、rx_missed、rx_fifo_errors 或带队列编号的字段,但它们只代表“当前设备选择这样命名并暴露了这个计数”。没有某个字段,不表示设备绝对没有对应丢弃点;有某个字段,也不能凭名字断定它和 ip -s link 的 dropped 一一相等。

把命令输出保存为两次采样的差异更有用:同一字段持续增长,才能说明该设备统计面观察到了新的事件。不要在不同机器、不同驱动之间直接比较字段总量,也不要把一次重启后的清零误判成问题已经消失。

先确认接口状态和驱动身份

当 ethtool -S 输出很多字段时,先确认接口确实是目标设备,并记录链路与驱动信息。这样后续看到厂商特有字段时,才有上下文可以回到驱动文档或现场配置继续解释。

# 查看链路速率、双工和 link detected 等基础状态。
ethtool eth0

# 查看当前使用的内核驱动、固件和总线信息。
ethtool -i eth0

# 查看标准接口计数与链路信息,保留同一接口名进行对照。
ip -s link show dev eth0

如果链路没有建立,先处理接口状态;如果链路正常但 rx_missed 或队列相关计数持续增长,再检查接收队列、CPU 处理能力、环形缓冲区和驱动说明。这里的顺序是排查建议,不是说每个 dropped 都由某一个固定组件造成。

接口状态驱动身份与丢包统计解释边界说明图
图2:诊断边界说明图。接口状态、驱动身份、标准计数和驱动细分共同限定解释范围;任何单一字段都不能独立还原完整链路路径。

按计数增长方向收束排查

现象先看什么能得到的判断
RX dropped 增长ip -s link、ethtool -S 的接收字段主机或设备接收侧记录了丢弃,需要继续区分队列、缓冲区和驱动语义
TX dropped 增长发送字段、链路状态和发送队列发送路径存在丢弃记录,不能直接等同于远端未收到
标准值不变,驱动字段增长驱动字段定义和采集位置细分统计观察到事件,但未必会映射到标准接口计数
字段不存在ethtool -i 与驱动文档先确认能力和命名,不要用另一个驱动的字段名强行查询

最后要记住,丢包统计是定位线索,不是端到端证明。网卡、内核、虚拟交换设备、物理链路和远端主机可能各自拥有不同计数面。只有在同一时间窗口对齐多端数据,才适合继续判断丢包发生在哪一段。

常见问题

为什么 ethtool -S 没有 rx_dropped?

字段名由驱动和设备实现决定,可能使用 rx_missed、队列字段或其他厂商名称,也可能只提供标准接口统计。先看完整输出和 ethtool -i,不要把缺少某个名字当成缺少所有统计。

ip -s link 和 ethtool -S 的 dropped 应该相加吗?

通常不应该直接相加。它们可能来自不同统计层,事件范围也可能重叠或互不相同。把它们作为互补观察面,按字段定义和连续采样解释。

计数清零是不是丢包问题解决了?

不一定。重启接口、驱动或主机都可能重置计数。应保留采样时间、接口状态、驱动信息和产生流量的窗口,再观察同一字段是否重新增长。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
Linux 怎样用 ip route get 判断实际出口Linux 怎样用 ip route get 判断实际出口
上一篇
Linux 怎样用 ip route get 判断实际出口
Linux 怎样按 inode 数量定位目录异常
下一篇
Linux 怎样按 inode 数量定位目录异常
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • PubMedQA数据集详解:生物医学问答基准、功能与应用指南
    PubMedQA
    深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
    525次使用
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    582次使用
  • LMArena是什么?伯克利AI模型评估平台使用指南与功能解析
    LMArena
    LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
    609次使用
  • 斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解
    HELM
    深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
    558次使用
  • MMBench详解:多模态大模型基准测试、功能特点与使用指南
    MMBench
    MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
    379次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议 和 隐私政策
返回登录
  • 重置密码