Linux 调优之:调整 bond hash 策略提升网络吞吐能力
背景:
在流量非常大的视频文件下载场景中,我们经常遇到服务器 4 * 10Gb 网络最高跑到 30Gb,单网卡就满的情况,主要是因为 bond out 流量负载不均。
这是我们 bond 相关的配置(不同操作系统参数名称稍有不同):
复制代码
解决方案:
在 bond 模式为 2
4
5
的情况下,支持通过修改传输 hash 策略改变数据包发送方式。在 debain9 系统上,就是通过修改 bond-xmit-hash-policy
改变 bond out 流量负载方式。
在生产场景中,我们测试了layer2+3
和 layer3+4
这两种策略。layer2+3
效果不明显,layer3+4
效果显著,可以将吞吐能力可以提高到 35Gb,提升 15% 以上,同时 CPU 消耗没有明显提升。在两张和四张网卡的场景中,layer3+4
效果是一致的。
layer2+3
效果不是很明显的原因是因为我们的请求端比较少,不够分散。
具体配置方式:
修改网络 bond 配置,并重启 networking service。(以 debain9 系统为例,centos 略有不同)
复制代码
参考文章:
Linux Ethernet Bonding Driver HOWTO
版权声明: 本文为 InfoQ 作者【卫智雄】的原创文章。
原文链接:【http://xie.infoq.cn/article/b68307430ffb3570126db55f9】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论