CentOS 7安装新内核并启用Google BBR教程

Google BBR推出近一年了,在增加吞吐量和减少延迟有不错的效果,很多博客对此都有介绍,今天在Vultr VPS安装了一下,访问了该VPS上面的网站,感觉速度确实有所提升。

安装新内核

先用 uname -r 查看一下自己内核的版本,如果内核版本在4.9.0以上,可以直接跳过本步骤,进入启用Google BBR步骤。

安装ELRepo

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml -y

查看是否安装成功,运行 rpm -qa | grep kernel,如果出现大于4.9.0的内核,就说明安装成功。

kernel-3.10.0-693.2.2.el7.x86_64
kernel-ml-4.13.11-1.el7.elrepo.x86_64
kernel-headers-3.10.0-693.2.2.el7.x86_64
kernel-tools-libs-3.10.0-693.2.2.el7.x86_64
kernel-tools-3.10.0-693.2.2.el7.x86_64
kernel-3.10.0-514.26.2.el7.x86_64
kernel-3.10.0-514.el7.x86_64

启用新内核

运行以下命令:

grep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'

查看输出

CentOS Linux (4.13.11-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux 7 Rescue dc7e1e78eb3e4511ae247fc8b84d2c16 (3.10.0-693.2.2.el7.x86_64)
CentOS Linux (3.10.0-693.2.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.26.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-96aa007d97204c57aebfaf6879824e56) 7 (Core)

第一行为0行,看看新内核在第几行,本示例为第0行,所以下面这台命令最后一个参数填0。

grub2-set-default 0

执行 shutdown -r now 重启之后,再运行一下 uname -r 看看新内核是不是已经成功安装并启用。

如果系统为CentOS 6的话,执行以下命令启用新内核:

sed -i 's/^default=.*/default=0/g' /boot/grub/grub.conf

启用Google BBR

运行以下命令:

echo 'net.core.default_qdisc=fq' | sudo tee -a /etc/sysctl.conf
echo 'net.ipv4.tcp_congestion_control=bbr' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

查看BBR是否成功启用

输入

sysctl net.ipv4.tcp_available_congestion_control

有类似的输出

net.ipv4.tcp_available_congestion_control = bbr cubic reno

输入

sysctl -n net.ipv4.tcp_congestion_control

输出

bbr

最后检查内核模块是否已加载,输入

lsmod | grep bbr

有类似的输出

tcp_bbr 16384 0

如果三个输入和输出测试都通过了,那么BBR就启用成功了。

参考文档

1.How to Deploy Google BBR on CentOS 7
2.TCP BBR congestion control comes to GCP – your Internet just got faster
3.Google BBR on Github