登录
首页 >  文章 >  linux

如何在Linux中查看网卡的统计信息 Linux使用ip -s link的方法

时间:2026-05-24 16:13:16 384浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《如何在Linux中查看网卡的统计信息 Linux使用ip -s link的方法》,以下内容主要包含等知识点,如果你正在学习或准备学习文章,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

用 ip -s link show dev 网卡名可查看指定网卡详细统计,分RX/TX两组,含packets、errors、dropped等字段;errors反映物理层问题,dropped多为内核主动丢弃;应以ip命令为准,持续监控需计算差值。

如何在Linux中查看网卡的统计信息 Linux使用ip -s link的方法

直接用 ip -s link 就能看到网卡收发包、错误、丢包等实时统计,但默认只显示所有接口总览,想查特定网卡或持续观察得加参数,否则容易漏掉关键字段(比如 rx_errorstx_dropped 的含义差异)。

怎么只看某一块网卡的详细统计

不加过滤时 ip -s link 会列出全部接口(包括 lo、docker0 等),干扰判断。指定网卡名最稳妥:

  • ip -s link show dev ens33(把 ens33 换成你的网卡名,可用 ip link show 先确认)
  • 输出分两块:上面是链路层基础信息(UP/DOWN、MTU),下面是两组统计:RX(接收)和 TX(发送),每组含 packets、bytes、errors、dropped、overruns 等字段
  • 注意:dropped 不等于故障——可能是内核主动丢弃(如 netfilter 规则匹配、内存不足),而 errors 才更指向物理层或驱动问题

为什么 ip -s link 的 errors 和 ifconfig 的不一致

ifconfig 已被标记为废弃,其 error 计数来源和 ip 不同:前者读取的是旧式 /proc/net/dev,后者直连 netlink 接口,统计维度更细(比如区分 rx_length_errorsrx_crc_errors)。实际排障应以 ip -s link 为准。

  • rx_errors 是总和,包含 lengthcrcframe 等子类错误,需结合 ethtool -S ens33 查底层寄存器确认是否硬件问题
  • tx_fifo_errors 高通常说明驱动队列溢出,可能和中断合并(ethtool -c)或 CPU 负载有关
  • 如果 rx_dropped 持续增长但 rx_errors 为 0,优先检查 net.core.netdev_max_backlog 和应用层是否来不及收包

如何持续监控变化量而非绝对值

ip -s link 默认输出瞬时快照,看不出速率。要观察增量,得靠重复执行 + 差值计算:

  • watch -n 1 'ip -s link show dev ens33 | grep -A 2 \"RX\|TX\"' 每秒刷新一次,重点关注 packetsbytes 列的变化速度
  • 更准的做法是两次调用 ip -s link show dev ens33,提取 rx_packets 字段做减法(脚本里可用 awk '/RX/ {getline; print $1}' 提取)
  • 别依赖 ifconfiginterruptscollisions —— 现代千兆+网卡这些字段基本恒为 0,无参考价值

真正关键的不是数字本身,而是各字段间的比例关系:比如 rx_droppedrx_packets 超过 0.1%,或 tx_dropped 非零且伴随高 tx_queue_len,这时候才需要深入查驱动、IRQ 绑定或 TCP 窗口设置。字段含义混淆比命令不会用更容易导致误判。

好了,本文到此结束,带大家了解了《如何在Linux中查看网卡的统计信息 Linux使用ip -s link的方法》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多文章知识!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>