technology:linux:centos7部署googlebbr

CentOS 7 服务器实例上部署 BBR

下面我将向您分享我如何在 CentOS 7 KVM 服务器实例上部署 BBR1)

CentOS 7 x64 服​​务器实例。 一个 sudo 用户

要使用BBR,您需要将CentOS 7机器的内核升级到4.9.0。您可以使用ELRepo RPM第三方仓库轻松完成该操作。

在升级之前,您可以查看当前内核:

uname -r

此命令应可能输出类似于以下字符串:

3.10.0-514.2.2.el7.x86_64

如您所见,当前内核为3.10.0,因此我们需要更新内核。

更新内核之前,先安装 ELRepo 仓库:

$ 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
 
# 使用ELRepo repo安装4.9.0内核
$ sudo yum --enablerepo=elrepo-kernel install kernel-ml -y
 
# 确认结果
$ rpm -qa | grep kernel
<code>
 
如果安装成功,您应该看到类似于一下列,且`kernel-ml-5.2.11-1.el7.elrepo.x86_64`在输出列表中看到:
 
<code bash>
kernel-tools-libs-3.10.0-862.6.3.el7.x86_64
abrt-addon-kerneloops-2.1.11-50.el7.centos.x86_64
kernel-tools-3.10.0-862.6.3.el7.x86_64
kernel-3.10.0-123.13.2.el7.x86_64
kernel-3.10.0-123.4.2.el7.x86_64
kernel-ml-5.2.11-1.el7.elrepo.x86_64

现在,您需要通过设置默认引导为 grub2 ,来启用4.18.5内核。

显示 grub2 菜单中的所有条目:

sudo egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
 
# 结果应该类似于:
 
CentOS Linux (5.2.11-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-123.13.2.el7.x86_64) 7 (Core)
CentOS Linux, with Linux 3.10.0-123.4.2.el7.x86_64
 
# 由于行计数开始于0,且4.18.5内核条目位于第一行,因此将默认引导条目应设置为0:
 
$ sudo grub2-set-default 0
 
重启系统:
$ sudo shutdown -r now // 或 reboot
 
#当服务器重新联机时,请重新登录并重新运行uname命令以确认您使用的是正确的内核:
 
$ uname -r
您应该看到如下结果:
 
5.2.11-1.el7.elrepo.x86_64

要启用 BBR 算法,您需要修改sysctl配置,如下所示:

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:

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

应该输出类似以下字符串:

bbr

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

lsmod | grep bbr

应该输出类似于:

tcp_bbr 20841 0

升级内核之后,往往老旧的内核也保留下来了,执行以下命令,将自动筛选并删除当前无用的系统内核版本。

yum remove $(rpm -qa | grep kernel | grep -v $(uname -r))

如果您不是专业技术人员,可以采取一键安装脚本进行安装,执行以下命令:

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

  • technology/linux/centos7部署googlebbr.txt
  • 最后更改: 2019/09/07 01:49
  • (外部编辑)