在CentOS7上启用BBR提速

BBR (Bottleneck Bandwidth and RTT)是由Google提供给Linux内核TCP堆栈的一种新的拥塞控制算法。有了BBR,Linux服务器可以显着提高吞吐量并减少连接延迟。

需求

  • CentOS7 x64服务器
  • root用户

更新Linux内核

安装elrepo repo:

1
2
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

从安装elrepo安装内核

1
yum --enablerepo=elrepo-kernel install kernel-ml -y

确定内核安装完成

1
rpm -qa | grep kernel

内核安装完成输出内容如下:

1
2
3
4
5
6
7
kernel-ml-4.10.4-1.el7.elrepo.x86_64
kernel-ml-headers-4.19.5-1.el7.elrepo.x86_64
kernel-tools-libs-3.10.0-862.14.4.el7.x86_64
kernel-ml-4.19.0-1.el7.elrepo.x86_64
kernel-tools-3.10.0-862.14.4.el7.x86_64
kernel-ml-4.19.5-1.el7.elrepo.x86_64
kernel-3.10.0-514.el7.x86_64

修改grub2设置启用新内核,输入以下命令显示grub2菜单中的所有条目:

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

输出结果如下:

1
2
3
4
5
6
CentOS Linux (4.19.5-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux 7 Rescue b38eea25ce6937aa19f219f91608f833 (4.19.0-1.el7.elrepo.x86_64)
CentOS Linux (4.19.0-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (4.10.4-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb) 7 (Core)

输出结果从上到下编号为0-5,我们需要将grub2的默认启动项设置为*CentOS Linux (4.19.5-1.el7.elrepo.x86_64) 7 (Core)*(第一项编号为0):

1
grub2-set-default 0

设置完成后重启服务器:

1
reboot

重启完成后输入以下命令确定新内核引导成功:

1
uname -r

输出结果如下则说明成功:

1
4.19.5-1.el7.elrepo.x86_64

启用BBR

输入以下命令修改sysctl配置:

1
2
3
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

完成后依次输入以下命令确定系统是否启用了BBR:

1
2
sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control

如果输出结果中都含有BBR字样,则表示BBR已经启用。

作者

Junle

发布于

2017-06-25

更新于

2024-03-22

许可协议

评论