Google 开源了其 TCP BBR 拥塞控制算法,并提交到了 Linux 内核,从 4.9 开始,Linux 内核已经用上了该算法。根据以往的传统,Google 总是先在自家的生产环境上线运用后,才会将代码开源,此次也不例外。
根据实地测试,在部署了最新版内核并开启了 TCP BBR 的机器上,网速甚至可以提升好几个数量级。
建议使用BBR透明并且使用方便,BBR作为现在TCP比较好的拥塞控制协议,通过对于带宽和网络延迟的交替估计更加准确控制发送窗口的大小。Centos7开启方法:
1. yum系统更新
yum update -y
2.查看系统版本
cat /etc/redhat-release
输出如下,则表示已升级到7.5(当前最新)
CentOS Linux release 7.5.1804 (Core)
3.安装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 yum --enablerepo=elrepo-kernel install kernel-ml -y
正常情况下将输出如下,
Transaction Summary ================================================================================ Install 1 Package Total download size: 39 M Installed size: 169 M Downloading packages: kernel-ml-4.9.0-1.el7.elrepo.x86_64.rpm | 39 MB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Warning: RPMDB altered outside of yum. Installing : kernel-ml-4.9.0-1.el7.elrepo.x86_64 1/1 Verifying : kernel-ml-4.9.0-1.el7.elrepo.x86_64 1/1 Installed: kernel-ml.x86_64 0:4.9.0-1.el7.elrepo Complete!
3.更新grub文件并重启(reboot后,ssh会断开,稍等一会儿重新连接)
egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \' grub2-set-default 0 reboot
4.开机后查看内核是否已更换为4.9
uname -r
输出如下内容则表示内核4.9已经启动了
4.18.9-1.el7.elrepo.x86_64
5.开启bbr
vi /etc/sysctl.conf
添加如下内容
net.core.default_qdisc = fq net.ipv4.tcp_congestion_control = bbr
加载系统参数(正常情况下会输出我们之前加入的内容)
sysctl -p
4.确定bbr已经开启
输入
sysctl net.ipv4.tcp_available_congestion_control
返回
net.ipv4.tcp_available_congestion_control = reno cubic bbr
则安装成功
输入
lsmod | grep bbr
返回
tcp_bbr 20480 16
启动成功