首页/系统/Linux 内核与性能调优速查/ethtool 流控(pause)查看与调整
网络栈调优98 条

ethtool 流控(pause)查看与调整

链路层流控用暂停帧阻止对端继续发送, 突发场景可减少丢包, 但链路两端需协商一致。

ethtool 流控查看与调整

链路层流控通过暂停帧实现:当接收侧缓冲即将用尽时,向对端发出暂停帧请求稍后再发,从而在突发流量下减少丢包。它需要链路两端协商一致才能真正生效,并且暂停会连带影响同一端口上的其他流量,存在队头阻塞的风险。

基本信息

查看状态ethtool -a eth0
调整设置ethtool -A eth0 autoneg on rx on tx on
生效前提链路两端与交换机侧配置一致才有效
验证手段ethtool -S 中 pause 帧计数是否增长
风险点暂停帧可能带来队头阻塞

典型使用场景

  • 突发流量下丢包排查,评估启用流控是否有效
  • 核对主机与交换机两侧流控配置是否一致
  • 确认流控是否实际生效,而不是只停留在配置层面
  • 存储或高吞吐场景下评估链路层反压的影响
  • 变更前后对比 pause 帧与丢包计数的变化

查看与调整

查看与调整
ethtool -a eth0                               # 查看自动协商与收发方向的流控状态
ethtool -S eth0 | grep -i pause               # 观察暂停帧的收发计数
# 需要调整时:ethtool -A eth0 autoneg on rx on tx on
ethtool -a eth0                               # 调整后复核是否按预期生效

输出字段

字段含义判读
Autonegotiate是否参与流控协商两端不一致时配置可能不生效
RX接收方向流控状态决定是否响应对方的暂停帧
TX发送方向流控状态决定是否发送暂停帧
pause 帧计数实际收发的暂停帧数量增长说明流控真实生效

使用注意

  • 主机侧开启不代表链路生效,必须核对交换机侧配置
  • 流控启用后仍需观察丢包计数,有暂停帧但依然丢包说明瓶颈在下游
  • 暂停会影响同一端口上的所有流量,评估队头阻塞风险
  • 变更记录中写明两端配置,便于后续回溯
暂停帧计数非零不是故障信号:它说明流控机制正在工作。只有在暂停帧持续增长同时仍然丢包时,才需要顺着下游继续排查。
流控是链路层的反压手段,会同时对多个流生效,在混跑流量的端口上可能把一条流的拥塞传导给其他无关业务。

易错点

  • 主机与交换机两侧配置不一致,出现丢包或速率协商异常
  • 把 pause 帧计数直接当作故障,未结合链路拓扑与业务表现判断
  • 只在本端开启流控就认为问题解决,未核对交换机侧
  • 忽略队头阻塞风险,在混跑端口上长期启用流控

数据来源与参考

  • man ethtool
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌