UNIXETC

Linux开启TCP BBR算法

目录

Linux Kernel 4.9+已经支持tcp_bbr拥塞控制算法,因此建议将内核升级为最新版。

将内核升级到最新版 #

Debian/Ubuntu升级最新内核 #

最新内核下载地址 http://kernel.ubuntu.com/~kernel-ppa/mainline

下载安装新内核

1
2
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.10/linux-image-4.10.10-041010-generic_4.10.10-041010.201704120813_amd64.deb`
dpkg -i linux-image-4.10.10-041010-generic_4.10.10-041010.201704120813_amd64.deb

更新GRUB并且重启

1
2
update-grub
reboot

Centos 7 升级最新内核 #

内核下载地址 http://elrepo.org/linux/kernel/el7/x86_64/RPMS/

安装最新内核

1
2
3
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

检查内核是否安装完成

rpm -qa | grep kernel

更新GRUB并重启主机

1
2
3
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
grub2-set-default 0  #default 0表示第一个内核设置为默认运行, 选择最新内核就对了
reboot

http://elrepo.org/linux/kernel/e15e16分别对应Centos5、Centos6,可参考以上安装

开启BBR #

重启后uname -r 检查内核版本是不是4.9+

然后执行以下操作

1
2
3
4
5
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
sysctl net.ipv4.tcp_congestion_control

运行结果中有bbr则成功了

通过lsmod | grep bbr可以检查是否开启bbr模块