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