新的TCP拥塞控制算法——BBR详细参见 Linux Kernel 4.9 中的 BBR 算法与之前的 TCP 拥塞控制相比有什么优势?,里面说的已经非常全面了

在Digital Ocean的CentOS7系统的VPS上开启BBR记录如下:

更新内核

先更新系统

$ yum update -y

安装内核,目前CentOS已经可以通过elrepo源来更新4.16内核

$ 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

查看内核是否安装成功

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

出现类似返回

0 : CentOS Linux (4.16.0-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)
2 : CentOS Linux (3.10.0-327.36.3.el7.x86_64) 7 (Core)
3 : CentOS Linux, with Linux 3.10.0-123.el7.x86_64

把 CentOS Linux (4.16.0-1.el7.elrepo.x86_64) 设置成默认内核

$ grub2-set-default 0

一般情况下,这里重启系统就可以了。(2018年初DigitalOcean升级整个架构,所以新建的vps已经不需要用控制面板切换内核了,如果直接重启不行,请在控制面板切换内核为grub0.2)

重启系统
$ reboot

查看内核是否更换成功

$ uname -r
4.16.3-1.el7.elrepo.x86_64

开启BBR

编辑/etc/sysctl.conf,加入如下内容

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

保存生效

sysctl -p

查看当前内核TCP设置

sysctl net.ipv4.tcp_available_congestion_control
sysctl net.ipv4.tcp_congestion_control

如果结果都有bbr,则说明内核已开启BBR算法,执行:

lsmod | grep bbr

显示tcp_bbr说明BBR已正常启动

 

启动BBR之后,酸酸乳速度从原来100kb以内稳定在400kb左右,还行。射线的话直接感受就是从油管240p提升到了720p


0 条评论

发表评论