BBR是Google的TCP阻塞控制算法,可以最大程度的利用带宽,提升网络传输速率。Linux内核4.9及以上已支持tcp_bbr(Debian 9之后版本和Ubuntu 17.04之后版本支持直接开启BBR,CentOS 7需要升级内核后开启BBR)。
CentOS 7升级内核(Debian和Ubuntu跳过)
1.查看当前内核版本:
uname -r
2.安装 ELRepo repo:
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
3.安装 4.9.0 kernel:
sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
4.确认安装结果:
rpm -qa | grep kernel
如果安装成功,您应该kernel-ml-4.9.0-1.el7.elrepo.x86_64在输出列表中看到
5.显示所有内核条目:
sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
6.启用4.9.0内核(自上而下从0开始,4.9.0内核在第几位下面的数字填几):
sudo grub2-set-default 1
7.重新启动系统:
sudo shutdown -r now
8.再次查看当前内核版本:
uname -r
如果设置成功,应该会返还4.9.0-1.el7.elrepo.x86_64.
启用Google BBR
1.启用BBR算法,修改sysctl配置:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
2.确认BBR已启用:
sudo sysctl net.ipv4.tcp_available_congestion_control
输出应该是:net.ipv4.tcp_available_congestion_control = bbr cubic reno
3.验证:
sudo sysctl -n net.ipv4.tcp_congestion_control
输出应该是:bbr
4.最后,检查内核模块是否已加载:
lsmod | grep bbr
输出将类似于:tcp_bbr 16384 0