大流量链路莫名丢包:两端开端口流控让对端缓一缓

整理自华为官方发布的接口配置命令参考。

备份、存储这类大块数据流量跑满链路时,缓存最先告急:出方向的包来不及消化就开始丢,上层看是传输变慢、重传变多,根子却在接口拥塞。以太网的流量控制机制就是为这一幕准备的——官方对原理的解释很直白:本端拥塞时向对端发送消息,对端收到后无论自身速率高低都暂停发送,本端的缓存得以消化存量,Pause 帧一来一回,丢包在源头就被压住。华为交换机接口下的 flow-control 一条命令即可启用,缺省为关闭状态。

这类丢包有可辨的特征:丢包随业务高峰规律出现,接口的错包计数不动、丢包计数上涨——三条对上,多半是拥塞而非线路质量问题,流控才是对路的手段。

一条命令打开开关

<HUAWEI> system-view
[HUAWEI] interface gigabitethernet 1/0/1
[HUAWEI-GigabitEthernet1/0/1] flow-control

打开后设备具备双向能力:既能发 Pause 消息请对端刹车,也能在对端发来消息时暂停自己的发送,收发两个方向都受控。

两端成对配置才有效

官方注意事项里第一件事就是:对端设备接口也要打开流量控制开关。单向开启是最常见的无效姿势——本端能喊停对方,对方却不会喊停本端,另一方向的拥塞照丢不误。存储与备份链路两端分别是服务器侧与交换机侧,交换侧开完记得核对链路另一端。这个机制适合的位置是存储与备份这类持续大流量的专用链路;办公接入网不需要开,多余的暂停帧反而拉低整体吞吐。

三类场景要留意

  • 接口双工模式为半双工时,流量控制不生效——千兆及以上的链路本就应工作在全双工,顺带把自协商检查一遍;
  • 流量控制与流量控制自协商是两套功能,接口上不能同时配置,选了一套就别再叠加另一套,配置冲突设备会直接提示;
  • 三层业务场景下打开开关可能影响该端口的 IP 流量转发,导致端口不可用,官方给的恢复办法是在接口下执行 undo flow-control 关闭开关。

验证与避坑

开启后用同等压力的大流量复测,盯接口的丢包与错包计数——流控生效的标志是拥塞期丢包收敛、吞吐曲线走平。补充三点:其一,部分单板不支持该命令,配置前对照官方说明的单板清单;其二,某些单板需先在流量出接口关闭报文管理使能,入方向流控才能生效,且流控只对已知单播报文生效;其三,流控治的是本端消化不了的拥塞,若丢包源自链路质量,先查线路再谈流控。

存储备份链路的丢包治理,贵州诚鑫致达科技提供调优支持,欢迎搜索了解交流。

企业存储选型参考|贵州诚鑫致达

做全闪高性能数据库与虚拟化,群晖机型参考:FS6400 · FS3410 · FS2500。需要选型建议或上门评估,搜「诚鑫致达」即可找到我们。

服务区域|贵州诚鑫致达

贵州群晖NAS、贵阳存储、数据备份、信创云盘或 IT 集成服务,可联系贵州诚鑫致达科技,服务范围覆盖贵州全省各市州。西藏·拉萨企业数据存储与备份容灾,支持远程与驻场。