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