- A+
前不久Google在ACM queue期刊发表了TCP BBR拥塞控制算法,并提交应用到了Linux内核(最新4.9已应用该算法)。经过测试,在部署了最新版内核并开启了TCP BBR的机器上,网速甚至可以提升好几个数量级。相比其他旧的拥塞控制算法,BBR在有一定丢包率的网络链路上更加充分的利用带宽,降低了延迟。
需要提醒的大家的是无论是之前的锐速还是本文介绍的开启BBR都不能应用于OpenVZ,如果你的VPS服务器是这种架构的就不要再往下看了。
1、适用的VPS环境
系统支持:CentOS 6+,Debian 7+,Ubuntu 12+
虚拟技术:OpenVZ 以外的(KVM、Xen、VMware等)
内存要求:≥128M
日期 :2017 年 01 月 20 日
2、关于脚本的说明
1、本脚本已在 Vultr 上的 VPS 全部测试通过。
2、当脚本检测到 VPS 的虚拟方式为 OpenVZ 时,会提示错误,并自动退出安装。
3、某些服务商(如 DigitalOcean)可能需要首先将 VPS 配置为可自定义内核,然后 grub2 的配置才会生效。
4、脚本运行完重启发现开不了机的,打开 VPS 后台控制面板的 VNC, 开机卡在 grub 引导, 手动选择内核即可或者移步《CentOS 6升级内核导致无法开机的解决办法》。
5、由于是使用最新版系统内核,最好请勿在生产环境安装,以免产生不可预测之后果。
3、脚本使用方法
- 使用root用户登录,运行以下命令:
- wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
- chmod +x bbr.sh
- ./bbr.sh
有两个提示第1个是按任意键开始安装,第2个是安装完成后,提示重启 VPS,输入 y 并回车后重启。
- 重启完成后,重新进入 VPS,验证一下是否成功安装最新内核并开启 TCP BBR,输入以下命令:
- uname -r
查看内核版本,含有 4.9 就表示 OK 了
- 执行以下脚本
- sysctl net.ipv4.tcp_available_congestion_control
返回值一般为:net.ipv4.tcp_available_congestion_control = bbr cubic reno
- 执行如下脚本
- sysctl net.ipv4.tcp_congestion_control
返回值一般为:net.ipv4.tcp_congestion_control = bbr
- 执行如下脚本
- sysctl net.core.default_qdisc
返回值一般为:net.core.default_qdisc = fq
- 执行如下脚本
- lsmod | grep bbr
返回值有 tcp_bbr 模块即说明bbr已启动。
4、内核升级方法
- 如果是 CentOS 系统,执行如下命令即可升级内核:
- yum --enablerepo=elrepo-kernel -y install kernel-ml kernel-ml-devel
- CentOS 6 的话,执行命令:
- sed -i 's/^default=.*/default=0/g' /boot/grub/grub.conf
- CentOS 7 的话,执行命令:
- grub2-set-default 0
a.如果是 Debian/Ubuntu 系统,则需要手动下载最新版内核来安装升级。去这里下载最新版的内核 deb 安装包。
b.如果系统是 64 位,则下载 amd64 的 linux-image 中含有 generic 这个 deb 包;
c.如果系统是 32 位,则下载 i386 的 linux-image 中含有 generic 这个 deb 包;
- 安装的命令如下(以最新版的 64 位 4.9.3 举例而已,请替换为下载好的 deb 包):
- dpkg -i linux-image-4.9.3-040903-generic_4.9.3-040903.201701120631_amd64.deb
- 安装完成后,再执行命令:
- /usr/sbin/update-grub
最后,重启 VPS 即可。
*以上一键脚本特别鸣谢脚本作者:秋水逸冰*
如果上边的方法没有效果可以看下本站的另一篇文章《锐速的替代品——开启内核BBR算法》