bbr的原理,通俗来讲就是对Linux内核TCP协议的优化从而达到提速的目的。
辣么就来试一试吧。
我本人用的是腾讯云的云主机,centos7.2
首先执行,升级系统到7.3(不过我没有执行啊 因为我本来就是7.2 感觉应该不会差太多吧)
yum update
查看系统版本
cat /etc/redhat-release
如果内容是
CentOS Linux release 7.3.1611 (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
正常情况下应该会输出
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!
不过,我实际安装的时候,已经是4.10而不是4.9了。。
重新启动
reboot
一会,再次连上去之后,查看内核顺序
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
看下面这一行排第几,就我的情况,这一个内核排在第2位,那么就2减1为1(因为索引值从0开始)
CentOS Linux (4.9.0-0.rc8.el7.elrepo.x86_64) 7 (Core)
grub2-set-default 0
然后,再次重新启动
reboot
再次连上去之后,查询默认内核,看到 4.9.0-0.rc8.el7.elrepo.x86_64 ,说明当前的默认内核就是我们刚安装的。
uname -r
修改配置
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
如果前面几句都没报错,最后这句输出类似下面的信息,则说明成功了。
tcp_bbr 16384 11
本人测试安装成功。需要注意的是,bbr不支持openvz。具体效果妈,还没来得及测试。就先这样喽。