Google BBR是一个TCP拥塞优化算法,在Linux Kernel 4.9版本中引入.

GitHub项目地址 https://github.com/google/bbr

关于BBR的算法,知乎大神对此进行了详细的阐述,想了解算法的请查看https://www.zhihu.com/question/53559433

内核升级

要使用Google BBR需要Linux kernel >= 4.9 , 如使用虚拟服务器 , 请注意只有 KVM , XEN 可以升级。

Ubuntu 升级内核

# 下载内核
$ curl -O http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.10.1/linux-image-4.10.1-041001-generic_4.10.1-041001.201702260735_amd64.deb
# 安装内核
$ dpkg -i linux-image-4.10.1-041001-generic_4.10.1-041001.201702260735_amd64.deb
# 更新引导
$ update-grub

CentOS6 升级内核

# 添加ELrepo
$ rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
$ rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm
# 升级内核
$ yum --enablerepo=elrepo-kernel install kernel-ml -y
# 更新引导
$ sed -i 's/default=0/default=1/g' /etc/grub.conf

启用BBR

首先确认内核是否升级成功

uname -r #使用该命令查看当前内核版本, >= 4.9 即可

下面修改内核参数

$ sudo bash -c 'echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf'
$ sudo bash -c 'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf'
# 使修改生效
$ sudo sysctl -p

检查bbr是否启用成功

$ sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno #有此条记录表示成功
$ lsmod | grep bbr
tcp_bbr                20480  1