巨帧与流控各管什么
巨帧是把以太网 MTU 从 1500 提高到 9000 之类的更大值,让每个数据包承载更多有效载荷,降低单位数据的协议开销与中断次数;流控是在拥塞时通过 802.3x 暂停帧告诉对端「先别发」,避免交换机缓冲区耗尽后丢包。两者解决的问题不同:巨帧提升效率,流控维持无损。需要注意的是 iSCSI 自身的数据段长度与以太网 MTU 是两套参数,不要混为一谈。
基本信息
| 巨帧取值 | 常见 9000 字节,实际可用值受链路与设备限制 |
|---|---|
| 生效范围 | 主机网卡、交换机端口、目标端门户,三处必须一致 |
| 流控方式 | 以太网 802.3x 暂停帧;无损网络另用优先级流控 |
| iSCSI 参数 | 最大接收数据段长度,默认 8192 字节,可调大 |
| 权限要求 | 主机 root/管理员、交换机管理员、存储管理员 |
典型使用场景
- 新建 iSCSI 链路时确定 MTU 与流控策略
- 替换交换机或网卡后吞吐下降,需要确认 MTU 是否端到端一致
- 大块顺序读写吞吐正常但小包交互延迟高,排查流控与卸载特性
- 跨机房链路中因中间设备 MTU 限制导致性能异常
- 调试 iSCSI 初突发与最大接收数据段长度对性能的影响
验证与配置
验证与配置
# 1) 设置并确认网卡 MTU
ip link set eth1 mtu 9000
ip -d link show eth1 | grep mtu
# 2) 用不分片的大包验证端到端巨帧(8972 = 9000 - 20 - 8)
ping -M do -s 8972 -c 3 -I eth1 10.0.20.11
# 3) 查看网卡流控与卸载状态
ethtool -a eth1
# 4) 查看 TCP 重传与分段统计,判断是否因 MTU 不一致而分片
nstat -az | grep -E 'TcpRetransSegs|IpFrag'参数与现象对照
| 配置项 | 正确状态 | 异常现象 |
|---|---|---|
| MTU | 主机、交换机、目标端一致 | 大包丢失,小包正常,吞吐骤降 |
| 流控 | 拥塞时暂停而非丢弃 | 突发流量下重传上升,延迟抖动 |
| 卸载特性 | 按厂商建议统一开关 | 启用不兼容卸载导致校验错误与丢包 |
| iSCSI 数据段长度 | 与实现能力匹配 | 设置过大时协商失败或性能反而下降 |
巨帧的价值主要体现在大块顺序 I/O 与备份类流量,小 I/O 密集场景收益有限;调整前应做前后对比,避免为了改 MTU 中断生产链路。
端到端 MTU 不一致是排查成本极高的故障:握手与 ping 可能正常,只有大包被丢弃。变更 MTU 必须主机、交换机、存储三处同步,并在窗口内验证。