CentOS 更换内核使其支持BBR TCP控制算法

关于BBR

BBR全名Bottleneck Bandwidth and RTT,该拥塞控制算法是由谷歌开发完成,在2016年9月开源。

为什么要使用BBR

当我们使用国外的VPS或者服务器的时候,会发现由于延迟和丢包的原因,造成TCP连接的速率在大多数时候都不太理想,特别是在一些单线程高带宽的需求下,例如观看高清在线视频等。而BBR算法的作用类似于锐速等单边加速,它在拥塞控制上考虑到了刚刚所提到的高延迟且有一定程度的丢包情况下,使TCP传输更高效。

安装步骤

1. 安装4.9以上版本内核

有一定经验或者有特别需求的朋友可以自行下载4.9以上版本的内核源码自己编译,对于追求简单快捷稳定的朋友来说,直接 安装编译好的内核是更好的选择,由于CentOS官方目前没有提供4.9版本的内核升级,所以这里我们选择的是elrepo提供的内核。

以下两种内核选其一:

使用kernel-ml

#导入Key:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 安装源:
# CentOS 7
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
# CentOS 6
rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
# 安装最新内核
yum --enablerepo=elrepo-kernel install -y kernel-ml

直接使用官方源

yum-config-manager --enable centos-kernel
yum -y install kernel

更改默认启动的内核:

# 把文件中default项改为新安装的内核的序号(序号编号从0开始)
# CentOS 6
vi /boot/grub/grub.conf
# CentOS 7
vi /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg

重启系统:

reboot

2. 修改系统配置文件,使bbr成为默认TCP控制算法

编辑系统控制配置文件

vi /etc/sysctl.conf

在文件末添加下面两行(如已经存在,则直接修改它们的值)

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

修改完以后,应用配置

sysctl -p

3. 完成,查看状态

sysctl net.ipv4.tcp_available_congestion_control
lsmod | grep bbr

标签: none

添加新评论