首页/系统/Linux 运维命令速查/ethtool 网卡速率与错误统计
性能与监控48 条

ethtool 网卡速率与错误统计

ethtool 读取/设置网卡链路:Speed/Duplex/Link、-S 驱动统计(丢包/错误/队列)、-g 环、-k 卸载特性;网络慢查硬件侧。

Linux 运维命令速查系统更新于 2026-10-13

ethtool 看的是什么

ethtool 读写网卡(以及部分虚拟接口)的链路层与驱动层信息:默认输出协商速率、双工、链路状态与能力集;-S 是厂商驱动统计,包含错误、丢包与队列计数;-g/-G 看与调环形缓冲;-k/-K 看与改卸载特性。排查“网络慢、丢包”时它回答的是物理层与驱动层的问题,与 ip、ss 的应用层视角互补。

基本信息

适用平台Linux(物理网卡完整支持;veth/bond/bridge 支持有限)
权限要求读信息普通用户即可;修改链路参数需 root
安装ethtool 软件包(最小化系统常未预装)
语法ethtool [选项] 接口名
常用选项-S 驱动统计、-g/-G 环缓冲、-k/-K 卸载特性、-i 驱动版本、-a 暂停帧

典型使用场景

  • 带宽上不去:先确认协商速率是否掉到 100Mb/s 或双工变成 Half
  • 排查丢包:对比驱动统计里的错误数与队列丢弃,判断问题在链路还是在主机处理能力
  • 小包场景吞吐异常:检查卸载特性(GRO/TSO 之类)是否为诱因
  • 网络抖动延迟高:结合中断队列与环缓冲看是否存在溢出
  • 更换网线、光模块或交换机端口后复核协商结果与错误计数是否归零

常用示例

常用示例
ethtool eth0                                   # 总览:速率、双工、链路状态、协商能力
ethtool eth0 | grep -E 'Speed|Duplex|Link detected'   # 只看链路三要素
ethtool -S eth0 | grep -iE 'err|drop|miss|discard' | head   # 驱动统计里挑关键项
ethtool -i eth0                                # 驱动名与固件版本,上报问题时一并附上
ethtool -g eth0                                # 环形缓冲当前值与可设上限
ethtool -k eth0 | grep -E 'generic-receive|tcp-segmentation'   # 卸载特性是否开启
sudo ethtool -G eth0 rx 4096 tx 4096           # 调整环大小,高流量丢包时的常见手段

输出逐列读法

字段含义异常信号
Speed当前协商速率与对端不匹配(千兆端口却显示 100Mb/s)先查网线与端口
Duplex双工模式显示 Half 基本等同于故障,大流量下会伴随严重冲突与重传
Link detected物理链路状态no 说明网线、光模块或对端端口有问题
Supported/Advertised link modes双方支持的协商能力交集为空说明协商失败,链路会起不来或降速
-S 的 rx_errors/rx_dropped驱动侧错误与丢弃计数rx_errors 增长多为链路或硬件问题;rx_dropped 多为缓冲不足或主机处理不过来
虚拟机的网卡由 virtio 或厂商驱动呈现,Speed 常显示为虚拟上限而非物理链路速率,这时要回到宿主与虚拟交换机侧排查。
用 ethtool -s 修改速率与双工是高风险操作:写错可能当场断网,务必在带外管理或本地控制台环境下进行,改完立即用 Link detected 与连通性测试复核。

易错点

  • 只看 ip -s link 的统计就判断丢包:内核侧与驱动侧计数口径不同,需结合 ethtool -S 一起看
  • 忽略 Duplex=Half:半双工下大流量会出现大量冲突重传,表现为时快时慢,很难从应用层看出
  • 盲目调大环形缓冲:内存占用上升,还可能把主机 CPU 处理不过来的真实瓶颈掩盖成“已缓解”
  • 照抄网上字段名 grep 统计:各厂商驱动命名不同(rx_no_buffer、rx_missed 之类),先在 -S 完整输出里搜关键字

数据来源与参考

  • man 8 ethtool

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌