如何在Centos7 启用Google BBR

BBR(瓶颈带宽和往返传播时间)是谷歌开发的一种新的拥塞控制算法。 连接到网络的每台计算机、手机或平板电脑中运行的拥塞控制算法决定了数据发送的速度。 前面在Ubuntu 22.04 上启用了BBR,如果我们购买的VPS已经安装了CentOS7, 那Centos 7上如何开启BBR呢?由于BBR对Linux内核版本有要求, CentOS7 内核版本比较低,并不能直接开启,需要先升级内核。

如何在Centos7 启用Google BBR

第一步:安装更新的内核

由于 CentOS 7 附带 3.10.x 内核,默认情况下不包含 BBR,因此我们需要在您的机器上升级到更新的内核版本才能使用 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

输出

[root@vps ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
[root@vps ~]# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Retrieving http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Retrieving http://elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:elrepo-release-7.0-4.el7.elrepo  ################################# [100%]
[root@vps ~]#

要使用 ELRepo 存储库安装内核,

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

输出

Dependencies Resolved

================================================================================
 Package        Arch        Version                    Repository          Size
================================================================================
Installing:
 kernel-ml      x86_64      5.12.9-1.el7.elrepo        elrepo-kernel       53 M

Transaction Summary
================================================================================
Install  1 Package
.
.
.
Installed:
  kernel-ml.x86_64 0:5.12.9-1.el7.elrepo

Complete!

现在使用以下命令检查稳定的内核安装,

rpm -qa | grep kernel

注意:如果安装成功,您应该在输出列表中看到 kernel-ml-5.xx.xx.elrepo.x86_64:

输出

[root@vps ~]# rpm -qa | grep kernel
kernel-3.10.0-1160.el7.x86_64
kernel-tools-3.10.0-1160.el7.x86_64
kernel-ml-5.12.9-1.el7.elrepo.x86_64
kernel-tools-libs-3.10.0-1160.el7.x86_64
[root@vps ~]#

第二步:启动到较新的内核

接下来,您需要通过将其设置为默认的 grub2 引导条目来引导至最新的内核。
显示 grub2 菜单中所有条目的命令,

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

输出

[root@vps ~]# egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
CentOS Linux 7 Rescue 13f95ded0c4147935ac6afed832cfb0a (5.12.9-1.el7.elrepo.x86_64)
CentOS Linux (5.12.9-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-dd1973a114f84ea8bbf37b494513d3f7) 7 (Core)

使用以下命令设置默认启动项,
注意:计数从 0 开始,最新的稳定内核在第二行,因此我们将其设置为 1

[root@vps ~]# egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
CentOS Linux 7 Rescue 13f95ded0c4147935ac6afed832cfb0a (5.12.9-1.el7.elrepo.x86_64)  <-- 0
CentOS Linux (5.12.9-1.el7.elrepo.x86_64) 7 (Core)                                   <-- 1
CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)                                       <-- 2
CentOS Linux (0-rescue-dd1973a114f84ea8bbf37b494513d3f7) 7 (Core)                    <-- 3

grub2-set-default 1

重启服务器

shutdown -r now

服务器重新联机后,确认您使用的是正确的内核。

uname -r

输出

[root@vps ~]# uname -r
5.12.9-1.el7.elrepo.x86_64

第三步:启用谷歌 BBR。

您需要如下修改 systctl 以启用 Google BBR 算法。

echo 'net.core.default_qdisc=fq' | tee -a /etc/sysctl.conf

echo 'net.ipv4.tcp_congestion_control=bbr' | tee -a /etc/sysctl.conf

sysctl -p

输出

[root@vps ~]# echo 'net.core.default_qdisc=fq' | tee -a /etc/sysctl.conf
net.core.default_qdisc=fq
[root@vps ~]# echo 'net.ipv4.tcp_congestion_control=bbr' | tee -a /etc/sysctl.conf
net.ipv4.tcp_congestion_control=bbr
[root@vps ~]# sysctl -p
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr


运行以下命令以验证 BBR 是否已启用,

sysctl net.ipv4.tcp_available_congestion_control

输出

[root@vps ~]# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = reno cubic bbr

最后,执行以下命令验证Google BBR,

lsmod | grep bbr

输出

[root@vps ~]# lsmod | grep bbr
tcp_bbr                20480  1

到这里,就已经成功在Centos7 上安装了TCP BBR 拥塞控制。

原创文章,作者:zhuji001,如若转载,请注明出处:https://www.zhuji66.com/centos7-enable-google-bbr/

本站分享VPS和云服务器信息均来源于网络,如有侵权请邮箱联系zhuji66com@yeah.net。本站不销售任何产品,如遇问题请联系对应客服。