CentOS7 开启 BBR 加速

CentOS7 开启 BBR 加速

BBR 是 Google 开发的 TCP 拥塞算法,俗话说,Google 出品必属精品,如果条件允许,服务器尽量开启BBR。

BBR 模块从 4.9 版本的内核中开始支持,CentOS7 的发布版标配的是 kernel-3.10,所以首先需要升级内核到大于等于 4.9 的版本,然后再更改设置开启 BBR。

内核升级

升级内核有多种方法,小版本升级可以用 yum update 直接搞定,大版本升级有源码升级和 ELRepo 库升级两种方法。

安装 ELRepo 库

# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch

当执行第一句失败的情况下,需要更新系统,即执行 # yum update 指令。

执行命令结果提示 cannot find a valid baseurl for repo:base/7/x86_64

此问题存在两种情况:

方法一:

  1. 执行 # vi /etc/sysconfig/network-scripts/ifcfg-ens33 (每个机子都可能不一样),把 ONBOOT=no,改为 ONBOOT=yes;
  2. 重启网络:# service network restart

方法二:

  1. 执行 # sudo dhclient

安装新内核

查看当前内核信息:

[root@DOAMS3 ~]# uname -r
3.10.0-693.el7.x86_64

我在一些博客上看到直接安装新内核,执行:

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

但是结果返回报错。

此时我们需要先执行 # yum --disablerepo=\* --enablerepo=elrepo-kernel list available 语句,会显示所有安装包,缺失的会自动下载下来。结果如下:

CentOS7 开启 BBR 加速_第1张图片
可以看到有 kernel-lt 和 kernel-ml 两种类型的内核,选择安装 kernel-ml:

# yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml -y

需要等待一段时间下载,最后结果如图:
CentOS7 开启 BBR 加速_第2张图片
安装之后,查看内核列表。执行 # rpm -qa | grep kernel

查看是否有 4.9+ 的内核版本,如果有,则证明安装成功了:
在这里插入图片描述
接下来我们需要将新内核设置为默认选项。

在这里我根据网上教程执行 # grub2-set-default 0 命令,经尝试 发现,执行该条命令的一个前提在于新安装的内核在第一个,所以将 0 设为默认启动项。 由上图可知,我新安装的内核(Centos Linux 5.0.9)不是在第一个,所以这样执行是有问题的。

正确的做法应该是:

  1. 查看默认启动内核
	# grub2-editenv list

在这里插入图片描述
因为我上一步执行 # grub2-set-default 0 命令,导致设置错误。

  1. 查看所有内核
	# cat /boot/grub2/grub.cfg | grep menuentry

CentOS7 开启 BBR 加速_第3张图片
可以看出我有三个内核版本!请忽略最下方那个,是我设置错误的!

  1. 接着修改修改最新内核为默认启动(这儿只能使用上面命令输出中双引号 “ ” 或者单引号 ‘ ‘ 中的内容)
	# grub2-set-default 'CentOS Linux (5.0.9-1.el7.elrepo.x86_64) 7 (Core)'

这里需要注意的是,内核版本号中的字符区分,5.0.9-1.el7 后面那个是小写英文字母 i,而不是数字 1。

  1. 验证默认启动内核
	# grub2-editenv list

在这里插入图片描述
开启 BBR

在 /etc/sysctl.conf 后添加如下三行:

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

执行这一步时可能会有类似报错 error: “No such file or directory” setting key “net.core.default_qdisc”,不用管直接 reboot 即可。重启后执行。
查看结果:

# sysctl -n net.ipv4.tcp_congestion_control
# lsmod | grep bbr

如果两行命令都有 BBR 字样输出,则代表 BBR 启用成功。

你可能感兴趣的:(Centos7)