BBR 的全称是 Bottleneck Bandwidth and RTT congestion control。该技术的目的是通过优化和控制 TCP 的拥塞,充分利用带宽并降低延迟,起到神奇般的加速效果 —— 通俗来讲就是对 Linux 内核 TCP 协议的优化从而达到提速的目的。一些受制于特殊网络环境的网民,近年来一直在寻找各种提速的方法。不论是之前流行的锐速(后开始收费),还是 FinalSpeed 等都曾备受大家的爱戴。BBR 则提供了一个全新的加速方式,自 Google 于 2016 年 9 月宣布将 BBR 开源起,这一全新的加速方案便受到了广泛的关注。在内核较新的 Linux 系统,例如 Ubuntu 18.04 上,它可以方便的开启;而一些较旧的系统,则需要先升级内核才能启用。
这篇文章将介绍在 CentOS 7 上,启动 BBR 的方法。文中使用的是yum包管理工具。如果你的系统环境不同,本文可能并不适用。
yum 系统更新
将 CentOS 系统版本更新到 7.3 或更高:
查看系统版本
输出如下,则表示已升级到 7.31
| CentOS Linux release 7.3.1611 (Core)
|
安装 elrepo 并升级内核
执行uname -r查看内核版本,例如:1
| 4.9.0-1.el7.elrepo.x86_64
|
如果内核版本低于 4.9,需要升级内核;否则可以跳过这一步,直接到「开启 BBR」部分。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
|
这时,执行yum repolist all可以看到所有安装的源,可以启用elrepo-kernal:1 2
| yum-config-manager --enable elrepo-kernel yum install kernel-ml -y
|
如果只是执行一次,也可以使用:1
| yum --enablerepo=elrepo-kernel install kernel-ml -y
|
正常情况下这个命令将输出如下内容:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Transaction Summary ================================================================================ Install 1 Package
Total download size: 39 M Installed size: 169 M Downloading packages: kernel-ml-4.9.0-1.el7.elrepo.x86_64.rpm | 39 MB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Warning: RPMDB altered outside of yum. Installing : kernel-ml-4.9.0-1.el7.elrepo.x86_64 1/1 Verifying : kernel-ml-4.9.0-1.el7.elrepo.x86_64 1/1
Installed: kernel-ml.x86_64 0:4.9.0-1.el7.elrepo
Complete!
|
随后更新 grub 文件并重启。执行:1
| egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
|
或者1
| awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
|
这时,所有可用的内核会被输出。记下新内核所在的行数,第一行为 0,第二行为 1,以此类推。
执行以下命令来启用最新内核,需要把 0 替换成上一步得到的新内核所在的行数:1 2
| grub2-set-default 0 reboot
|
重启后,ssh 会断开,稍等一会儿重新连接。可以再次查看内核版本,检查更新是否成功。如果一切顺利,下一步就是启动 bbr 了。