怎样开启BBR加速

2018年3月13日 由 Amon

【参考】

参考:https://sczhengyabin.me/2017/10/27/VPS%E7%A7%91%E5%AD%A6%E4%B8%8A%E7%BD%91/
参考:https://www.vultr.com/docs/how-to-deploy-google-bbr-on-centos-7
参考:http://amon.org/kernel

参考:https://moeclub.org/2017/06/24/278/?v=421
参考:https://github.com/coreos/bugs/issues/1804

参考:https://www.wn789.com/5070.html
参考:http://www.vpsss.net/2523.html

【介绍】

BBR是Google在2016年提交的对于TCP中拥塞算法的修改,有效地加快了网络速度。

BBR算法已经在Linux内核4.9及以后的版本包含,但是并没有默认开启。所以内核版本得大于4.9。

BBR算法的目的是要尽量跑满带宽, 并且尽量不要有排队的情况。

因为大多数人用的是 TCP Cubic (Linux) / Compound TCP (Windows),在有一定丢包率的情况下,TCP BBR 更加激进,抢占了更多的公网带宽

【CentOS】

【升级内核】

安装grub2:

有些系统并未预装grub2。

yum install grub2

查验当前内核:

查验:

uname -r

输出:

3.10.0-693.2.2.el7.x86_64

使用ELRepo安装Linux内核4.15.9

安装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

安装4.15.9内核(一般是最新的Linux内核版本):

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

查验:

rpm -qa | grep kernel

输出:

texlive-l3kernel-svn29409.SVN_4469-38.el7.noarch
kernel-3.10.0-693.21.1.el7.x86_64
kernel-3.10.0-693.11.6.el7.x86_64
kernel-3.10.0-693.17.1.el7.x86_64
kernel-headers-3.10.0-693.21.1.el7.x86_64
kernel-tools-libs-3.10.0-693.21.1.el7.x86_64
kernel-tools-3.10.0-693.21.1.el7.x86_64
kernel-ml-4.15.9-1.el7.elrepo.x86_64
kernel-3.10.0-693.2.2.el7.x86_64
kernel-3.10.0-693.11.1.el7.x86_64

显示grub2菜单:

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

输出:

CentOS Linux (4.15.9-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux 7 Rescue 367c9904e0e741edaa31d88d1bc0523c (3.10.0-693.21.1.el7.x86_64)
CentOS Linux (3.10.0-693.21.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.11.6.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-c73a5ccf3b8145c3a675b64c4c3ab1d4) 7 (Core)

因为0是起始数字,而4.15.9内核位列第二行,所以需要设置默认root为0:

sudo grub2-set-default 0

重启系统:

sudo shutdown -r now

查验:

uname -r

输出:

4.15.9-1.el7.elrepo.x86_64

至此,系统内核已升级到Linux4.15.9。

【开启BBR:CentOS(Vultr)】

修改sysctl配置:

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

输出:

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

输出:

net.ipv4.tcp_congestion_control=bbr
sudo sysctl -p

输出:

net.ipv6.conf.all.accept_ra = 2
net.ipv6.conf.eth0.accept_ra = 2
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

查验BBR是否已经启用:

sudo sysctl net.ipv4.tcp_available_congestion_control

输出:

net.ipv4.tcp_available_congestion_control = reno cubic bbr

然后查验:

sudo sysctl -n net.ipv4.tcp_congestion_control

输出:

bbr

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

lsmod | grep bbr

输出:

tcp_bbr                20480  4

【Ubuntu】

参考:https://wiki.vpsmm.com/bbr/

以下操作步骤针对ubuntu64位,建议直接使用ubuntu64位,省事了。各大VPS商家也基本提供。

下载及安装linux内核

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/linux-image-4.9.0-040900-generic_4.9.0-040900.201612111631_amd64.deb
dpkg -i linux-image-4.9.0*.deb
dpkg -l|grep linux-image
apt-get purge

更新grub系统引导文件及重启:

update-grub
reboot

配置BBR文件,开启BBR,检测是否成功:

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl –p
sysctl net.ipv4.tcp_available_congestion_control
lsmod | grep bbr

【测试BBR启用后的网络速度】

方法:在服务器中放置一个文件供本地浏览器下载,测试下载速度。

实测增加一倍。

参考:https://www.zhihu.com/question/53559433/answer/135903103
参考:https://segmentfault.com/a/1190000008395823

广告位
Sedo

评论已关闭.