2016年9月,Google 开源了其 TCP BBR 拥塞控制算法,并提交到了 Linux 内核,从 4.9 开始,Linux 内核已经用上了该算法。该算法对于网络较为拥堵时有比较显著的提速作用。
注意:不支持OpenVZ架构
Ubuntu18.04/18.10已内置BBR,但并不默认启用,进行以下设置即可。Ubuntu16.04需要更换内核,详情见下文。
修改系统变量
sudo echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
sudo echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
保存生效
sudo sysctl -p
查看内核是否已开启BBR
sysctl net.ipv4.tcp_available_congestion_control
显示以下即已开启:
net.ipv4.tcp_available_congestion_control = bbr cubic reno
检查BBR是否启动
lsmod | grep bbr
显示以下即启动成功:
tcp_bbr 20480 14
以上为Ubuntu18.04/18.10启用BBR的说明,Ubuntu16.04因为内核版本较低无法启用BBR,可以通过安装HWE来更换为更高版本的内核。
为Ubuntu 16.04安装4.10以上版本的新内核
HWE,即:HareWare Enablement,是专门为在老的系统上支持新的硬件而推出的内核。可以像安装其他软件包一样在 Ubuntu 16.04 里非常容易的安装它:
sudo apt-get update && apt-get install linux-generic-hwe-16.04 -y
安装完毕后reboot重启。重启后输入以下命令检查内核是否已安装成功。
uname -a
为Ubuntu 16.04启用BBR
为新内核装载 BBR 模块
sudo modprobe tcp_bbr
sudo echo "tcp_bbr" >> /etc/modules-load.d/modules.conf
查看内核是否已开启BBR
sysctl net.ipv4.tcp_available_congestion_control
显示以下即已开启:
net.ipv4.tcp_available_congestion_control = bbr cubic reno
修改系统变量
sudo echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
sudo echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sudo sysctl -p
BBR是否已经启用
sysctl net.ipv4.tcp_congestion_control
显示以下即已启用:
net.ipv4.tcp_congestion_control = bbr
检查BBR是否启动
再检查一下BBR进程是否启动
lsmod | grep bbr
显示以下即启动成功:
tcp_bbr 20480 14