CentOS 7 开启原版 Google BBR 加速,大幅提升带宽利用率

什么是BBR

TCP BBR是谷歌出品的TCP拥塞控制算法。BBR目的是要尽量跑满带宽,并且尽量不要有排队的情况。BBR可以起到单边加速TCP连接的效果。

Google 在 2016年9月份开源了他们的优化网络拥堵算法BBR,最新版本的 Linux内核(4.9-rc8)中已经集成了该算法。

特别适合国外线路的云主机,以及延迟率较高带宽却很大的网络环境。

Google BBR项目开源地址:https://github.com/google/bbr

 

CentOS 7 系统的版本内核较低,没有自带BBR算法,所以需要先升级内核。如果是CentOS 8可以先使用 uname -r 命令看下内核版本,如果高于4.9就不用升级内核。

 

升级内核

更新源:

yum update

查看系统版本:

[root@amber ~]# cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core)

安装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
yum --enablerepo=elrepo-kernel install kernel-ml -y

查看现在的内核:

[root@amber ~]# uname -r
3.10.0-862.11.6.el7.x86_64

更新grub文件并重启系统:

[root@amber ~]# egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
CentOS Linux (4.18.5-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-862.11.6.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.2.2.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-f0f31005fb5a436d88e3c6cbf54e25aa) 7 (Core)
[root@amber ~]# grub2-set-default 0
[root@amber ~]# reboot

查看内核是否已更换为4.18版本:

[root@amber ~]# uname -r
4.18.5-1.el7.elrepo.x86_64

开启BBR:

vim /etc/sysctl.conf 
# 在文件末尾添加如下内容
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

加载系统参数:

sysctl -p

输出了我们添加的那两行配置代表正常。

确定BBR已经开启:

[root@amber ~]# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = reno cubic bbr
[root@amber ~]# lsmod | grep bbr
tcp_bbr                20480  1

 

加速效果

非常明显, 使用腾讯云香港线路的云主机,上行宽带未加速只有几十kb/s,开启BBR后上行速度可以跑到满速3MB/s。

作者: 高志远

高志远,24岁,男生

发表评论

邮箱地址不会被公开。