历程

利用BBR加速服务器访问速度

最近有人告诉我说服务器下东西特别慢,于是我试了一下,嗯,果然很慢,也就几百kb/s,然后我想了想,用BBR是不是可以提高一下速度?于是我开始了实验。

BBR是Google开发的一种TCP阻塞控制算法,通过使用BBR可以提高服务器的吞吐量,并减少连接延迟,提高服务器的上传速度(提升了服务端的上传速度,不也就是提升了客户端的下载速度嘛)
Vultr的wiki上有介绍如何在CentOS 7中使用BBR,在此搬运一下(有修改)。
原文见http://www.vultr.com/docs/how-to-deploy-google-bbr-on-centos-7
*注:以下所有操作均在root用户下执行

更新系统

# yum update -y

查看当前内核

# uname -a

比如我的是 3.10.0-514.2.2.el7.x86_64,可以看出当前内核是3.10 4.9+版本的Linux内核集成了BBR算法,所以我们需要更新内核

更新内核

# rpm --import http://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`

验证安装

# rpm -qa | grep kernel

如果安装成功,你将会从输出列表中看到4.9+以上的内核,在写这篇文章时,最新内核版本是4.11.3,所以有下面这项 kernel-ml-4.11.3-1.el7.elrepo.x86_64

查看并启用内核

# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

返回结果应该类似如下结果:

0 : CentOS Linux (4.11.3-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-514.21.1.el7.x86_64) 7 (Core)
2 : CentOS Linux 7 Rescue 142b26c18ec1430ebb844cbe94311d14 (3.10.0-514.10.2.el7.x86_64)
3 : CentOS Linux (3.10.0-514.10.2.el7.x86_64) 7 (Core)
4 : CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)
5 : CentOS Linux (3.10.0-514.el7.x86_64) 7 (Core)
6 : CentOS Linux (0-rescue-bf94f46c6bd04792a6a42c91bae645f7) 7 (Core)

可以看出0号位是新安装的内核,接下来要把它作为启动的内核

# grub2-set-default 0

然后重启

# reboot

确认是否安装好了内核

# uname -r

显示 4.11.3-1.el7.elrepo.x86_64 说明内核更换成功 接下来就该启用BBR了

修改sysctl配置

# vim /etc/sysctl.conf

加入以下两行

net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr

然后保存退出,输入以下命令使之生效

# sysctl -p

验证是否生效

输入

# sysctl net.ipv4.tcp_available_congestion_control

输出应该包含有 bbr

输入

# sysctl -n net.ipv4.tcp_congestion_control

应该输出 bbr

输入

# lsmod | grep bbr

应该有类似输出 tcp_bbr 16384 7

至此,BBR配置完成,我又进行了一次测试,发现速度好像是快了一些,基本能稳定在几M/s了,于是在此分享一下经验给大家

© 本作品采用CC BY 4.0协议进行许可。非原创(转载)文章版权归原作者所有。
© 此文章可随意转载引用,但请注明来源: 利用BBR加速服务器访问速度


不说点什么吗

58 + = 60