Shan

Centos升级内核并开启BBR
新拥堵控制算法 TCP BBR由Google开发。Google 官方博客称新算法将 google.com 和 ...
扫描右侧二维码阅读全文
20
2017/12

Centos升级内核并开启BBR

新拥堵控制算法 TCP BBR由Google开发。Google 官方博客称新算法将 google.com 和 YouTube 的全球网络吞吐量平均改进了 4%,在某些国家改进了 14%+。Google 解释说,现有的 TCP 拥堵控制算法源自 1980 年代,是为低带宽数据传输设计的,解决拥堵主要考虑丢包,也就是在网络堵塞的时候路由器将会丢弃新的数据包。
BBR 代表 Bottleneck Bandwidth and Round-trip propagation time,它的拥堵控制采用了不同的方法,考虑了网络实际的数据交付率有多快。根据最近测量的网络交付率和往返时间构建显示模型,最大化近期可用带宽和最小化近期往返延迟。BBR 使用这些数据决定数据发送速率有多快。

查看当前系统版本

# cat /etc/centos-release
CentOS Linux release 7.3.1611 (Core)

查看当前内核版本

# uname -r
3.10.0-514.21.1.el7.x86_64

升级内核版本

安装ELREPO源

Centos 6安装ELREPO源

# rpm --import http://www.elrepo.org/RPM-GPG-KEY-elrepo.org

# rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
Retrieving http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm
Preparing...                ########################################### [100%]
   1:elrepo-release         ########################################### [100%]

Centos 7安装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
Retrieving http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
Retrieving http://elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:elrepo-release-7.0-3.el7.elrepo  ################################# [100%]

列出内核相关包

# yum --disablerepo="*" --enablerepo="elrepo-kernel" list available

安装最新内核

# yum --enablerepo=elrepo-kernel install kernel-ml kernel-ml-devel
# ml指stands for mainline stable

修改Grub引导顺序

Centos6

# vim /etc/grub.conf
...
default=1
...
修改default=1 ---> default=0

重启系统
# reboot

Centos7

# vim /etc/default/grub
...
GRUB_DEFAULT=saved
...
修改GRUB_DEFAULT=saved ---> GRUB_DEFAULT=0
意思是 GRUB 初始化页面的第一个内核将作为默认内核。

重新创建内核配置
# grub2-mkconfig -o /boot/grub2/grub.cfg

重启系统
# reboot

验证内核版本

# uname -r
4.13.12-1.el7.elrepo.x86_64

开启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
net.ipv4.tcp_available_congestion_control = bbr cubic reno
或者
# lsmod | grep bbr
tcp_bbr                20480  0 

如果结果中包含有bbr字样,即证明你的内核已开启bbr。

关闭BBR

更改内核参数:
# sed -i '/net\.core\.default_qdisc=fq/d' /etc/sysctl.conf
# sed -i '/net\.ipv4\.tcp_congestion_control=bbr/d' /etc/sysctl.conf

使更改生效:
# sysctl -p

执行完上面的命令需要重启一下vps后才会关闭BBR。
重启完成后再使用验证BBR是否开启成功的命令,查看bbr是否关闭

Last modification:October 20th, 2018 at 05:17 pm

Leave a Comment