使用Google BBR之前,我们首先要了解它是什么。了解计算机网络的人都知道,在TCP连接中,由于需要维持连接的可靠性,引入了拥塞控制和流量管理的方法。Google BBR就是谷歌公司提出的一个开源TCP拥塞控制的算法。由于Google BBR非常新,任何低于4.9的linux内核版本都需要升级到4.9及以上才能使用 。
要在CentOS 上安装最新的内核版本,我们需要增加一个 ELRepo 源。
首先,载入公钥,让我们添加 ELRepo GPG key:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
为 RHEL-6,SL-7或CentOS-7 源:
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
- 老版本也可以享受 kernel 4.9,譬如为 RHEL-6,SL-6,CentOS-6 添加 ELRepo 源:
- rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
- 或者为 RHEL-5,SL-5,CentOS-5 添加 ELRepo 源:
- rpm -Uvh http://www.elrepo.org/elrepo-release-5-5.el5.elrepo.noarch.rpm
列出可以安装的Kernel及相关组件
yum --enablerepo=elrepo-kernel list kernel*
别忘了 fastestmirror
yum install yum-plugin-fastestmirror
安装kernel 最新版
yum --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel
将kernel-ml 选为第一启动
grub2-set-default 0
重启后,通过 uname -a 查看内核是否切换到最新版
uname -a
Linux losa-server 5.0.0-2.el7.elrepo.x86_64 #1 SMP Tue Mar 5 16:33:41 EST 2019 x86_64 x86_64 x86_64 GNU/Linux
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
保存配置文件
sysctl -p
重启后,首先 uname -a 看下内核是否切换到 最新版,然后执行下面明亮查看内核是否开启 TCP BBR
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control
若返回
net.ipv4.tcp_available_congestion_control = bbr cubic reno
net.ipv4.tcp_congestion_control = bbr
则说明开启成功。
查看 tcp_bbr 模块是否加载:
lsmod | grep tcp_bbr
返回
tcp_bbr 20480 27
如果想关闭BBR就可以执行:
sed -i '/net\.core\.default_qdisc=fq/d' /etc/sysctl.conf
sed -i '/net\.ipv4\.tcp_congestion_control=bbr/d' /etc/sysctl.conf
sysctl -p
然后重启才能生效