Google 开源了其 TCP BBR 拥塞控制算法,并提交到了 Linux 内核,从 4.9 开始,Linux 内核已经用上了该算法。根据以往的传统,Google 总是先在自家的生产环境上线运用后,才会将代码开源,此次也不例外。根据实地测试,在部署了最新版内核并开启了 TCP BBR 的机器上,网速甚至可以提升好几个数量级。
Debian由于默认内核已是4.9以上,并且集成了BBR算法,所以Debian系统无需更换内核。而CentOS则由于其集成的内核为3.10,内核未集成BBR算法,所以只能升级内核后,方可开启BBR方法。
第一步:升级内核(仅限CentOS)
1. 更新系统及软件
yum update
2. 查看及确认系统版本
cat /etc/redhat-release
3. 安装ELRepo并升级内核
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm ## CentOS 7
rpm -Uvh https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm ## CentOS 8
yum --enablerepo=elrepo-kernel install kernel-ml kernel-tools -y
4. 设置开机启动项(万分注意)
# egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'
输出结果类似如下
CentOS Linux 7 Rescue f212d2d7754a4a6bb2b98950c20cc0b5 (4.13.10-1.el7.elrepo.x86_64)
CentOS Linux (4.**.**-1.el7.elrepo.x86_64) 7 (Core)
CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-d1f142097d497f24c021d7de9b81cab4) 7 (Core)
该列表从0开始索引,所以4.13内核索引为1(请依据您的返回结果确认下面命令的参数)
通过如下命令设置启动项(请依据您的返回结果确认下面命令的参数)
# grub2-set-default 1
5. 重启
# reboot
6. 确认您的内核版本
# uname -r
若返回结果类似如下
4.**.**-1.el7.elrepo.x86_64
则表示您的内核已升级完成,可以根据后面的开启BBR方式进行开启了
第二步:开启BBR
1. 修改系统变量
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
2. 重新加载系统变量
# sysctl -p
3. 验证BBR开启结果
# lsmod | grep bbr
# sysctl net.ipv4.tcp_available_congestion_control
返回的结果中包含BBR则为已开启,可以愉快的冲浪了。
Google开源的BBR算法,不得不感叹确实很厉害。我的网站速度多的时候甚至快了好几倍,从原本的100KB直接跑到了2M多!给Google点赞…
同时,也对CentOS古老的内核版本表示伤脑筋。唉!
文章评论