这里首先介绍一下什么是 Google BBR。
2016年09月,Google向Linux Kernel提交了Google BBR的Pull Request。Google BBR是一种新的TCP拥塞控制算法,在Google的内部广域网(B4)中已经进行了广泛的测试,该算法可以充分利用网络带宽,特别是可以在20%以内丢包率下保持较高的带宽,并且尽量不要有排队的情况,BBR可以起到单边加速TCP连接的效果,类似于”锐速”,可用于优化TCP连接(使ss连接更快)。(相关论文 1)。
Linux内核从4.9开始,已经内置了该算法,所以只需要执行一些简单的命令就可以直接开启该功能,从而达到提高网速的目的。
下面就以Linode主机上面的ubuntu 18.04LTS版本为例,介绍一下BBR的开启方法。
首先查看一下系统内核版本:
uname -r
输出:
4.15.0-43-generic
该版本大于Linux4.9,所以可以直接开启BBR。(这里要说明一下,有些云服务器商的定制系统即便内核大于4.9,在键入lsmod |grep bbr命令后并不会直接显示内置tcp_bbr模块,但实际是有的。)
下面输入如下命令,从而开启BBR功能:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
输出:
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
重启主机系统:
reboot
待系统重启完毕后,检查系统是否成功编译开启了tcp_bbr模块:
键入命令:
sysctl net.ipv4.tcp_available_congestion_control
输出:
net.ipv4.tcp_available_congestion_control = reno cubic bbr
键入命令:
sysctl net.ipv4.tcp_congestion_control
输出:
net.ipv4.tcp_congestion_control = bbr
键入命令:
lsmod |grep bbr
输出:
tcp_bbr 20480 2
如果输出信息正确,则说明已成功开启了BBR功能。