bbr的是bottleneck bandwidth and round-trip的简写,今天将bbr的算法合入到了centos7.3的内核,基线内核版本是3.10.0-514.el7.x86_64, 内核编译测试通过。感谢隆春和文洋的帮助,隆春是将bbr合入到了cgslv5版本。
这种反向合入,本来是滚雪球似的,还好bbr算法比较干净,往低版本合入,一次性编译通过,测试数据如下:
两种算法的切换如下:
切换到bbr算法:
sysctl -w "net.core.default_qdisc=fq"
sysctl -w "net.ipv4.tcp_congestion_control=bbr"
切回cubic
sysctl -w "net.core.default_qdisc=pfifo_fast"
sysctl -w "net.ipv4.tcp_congestion_control=cubic"
服务端网卡启用tc模拟丢包 ,设置丢包10%,0.2的损坏的包:
tc qdisc add dev eth0 root netem corrupt 0.2% loss 10%
bbr,局域网,能到达到20M的码率,而cubic只能达到2.7M
设置丢包5%,bbr能达到20M,cubic能达到3.6M,从这两种场景看,几乎就是秒杀。或许cubic要买一套赵云皮肤了。