TCP-BBR的目标就是最大化利用网络上瓶颈链路的带宽(一条网络链路就像一条水管,要想最大化利用这条水管,最好的办法就是给这跟水管灌满水)。
BBR解决了两个问题:
在有一定丢包率的网络链路上充分利用带宽。非常适合高延迟,高带宽的网络链路。
降低网络链路上的buffer占用率,从而降低延迟。非常适合慢速接入网络的用户。
Google 在 2016年9月份开源了他们的优化网络拥堵算法BBR。
目前最新版本的 Linux内核(4.10)中已经集成了该算法。
os:Ubuntu 19.04 64
1.BBR项目地址
https://github.com/google/bbr
Step 1.检查Ubuntu内核是否需要升级
>=Linux内核(4.10)
uname -a
output
Linux 4.15.0-101-generic #102-Ubuntu SMP Mon May 11 10:07:26 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
确定你的系统是32位还是64位的,可以用下面的命令查看:
getconf LONG_BIT
output
64
Step 2.开启TCP BBR
修改系统变量:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
保存生效
sysctl -p
output
net.ipv6.conf.all.accept_ra = 2
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
执行
sysctl net.ipv4.tcp_available_congestion_control
如果返回结果
net.ipv4.tcp_available_congestion_control = bbr cubic reno
说明BBR开启成功!
检查BBR是否正常运行
lsmod | grep bbr
输出
tcp_bbr 20480 1
查看使用的拥塞控制算法
sysctl net.ipv4.tcp_congestion_control
output:
net.ipv4.tcp_congestion_control = bbr
测试速度
创建一个文件,搭建http服务
dd if=/dev/zero of=500mb.zip bs=1024k count=500
访问 http://[your-server-IP]/500mb.zip 来测试下载速度。
https://www.dz9.net/blog/4246.html