一、什么是BBR
一个来自Google开源的TCP拥塞控制算法。从Linux4.9 开始,Linux 内核已经用上了BBR算法。在部署了最新版内核开启了BBR算法,服务器网络性能可以得到很大得提升,甚至可以提升好几个数量级。
二、BBR的优点
- 在有一定丢包率的网络链路上充分利用带宽。
- 降低网络链路上的 buffer 占用率,从而降低延迟。
三、备份数据
内核升级可能会导致机器崩溃,尤其是云服务器,基本上要重装系统来恢复。所以安全起见,先备份好重要数据。每个人的数据不一样,说一下我本人备份的:
- wordpress 安装目录压缩打包备份
- nginx配置文件目录
- sql用sqldump或者workbench备份
确保备份完成后,再进行升级
四、升级ubuntu内核
BBR只支持 4.9.x 以上的内核。以本人的ubuntu 14.04为例,简要说明一下:
- 去ubuntu内核下载业下载 (内核下载链接)
- 下载几个文件,header_all、header_amd64、image几个文件
- sudo dpkg -i *.deb安装
- 重启服务器
五、查看BBR是否启用
- uname -r 看看高版本的内核是否已经启用
- 看看tcp可选里面是否有bbr
sysctl net.ipv4.tcp_available_congestion_control
- 看看当前tcp选的是哪个算法
sysctl net.ipv4.tcp_congestion_control
- 看看是否加载内核驱动模块成功
lsmod |grep bbr
- 没有的话,可以编辑/etc/sysctl.conf, 在文件末尾加上下面两行
net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr
六、测试实际效果
测试节点 From: Singapore - EC2 - Chrome - Cable
从新加坡的EC2节点用Chrome浏览器实测的结果
升级前,三次结果分别是:
- 14.02s
- 10.20s
- 13.93s
- 三次平均值为 12.7s
升级后,三次结果分别是:
- 5.17s
- 10.91s
- 7.43s
- 三次平均值为 7.7s
实际上本人测试过多个地区的数据,从结果来看,在网络特别差的时候可以节省 50% 的加载时间,网络相对好一点的地方,可以节省30%的加载时间。尤其是国外网络访问国内服务器,网络比较差,采用bbr算法优化tcp后有比较明显的提升。
后记
- BBR算法不是银弹,但是一般服务器要面对较为复杂的网络环境,一般情况下更换BBR是有提升的;
- 在网络特别差的情况下,BBR可以给加载速度带来更明显的改善;
- 对于大文件的http下载,改善也是很明显的。感兴趣的可以用wget、迅雷之类下载工具测试一下;
- 对于那些不是拿做网站的童鞋来说,也是有必要的。例如翻墙的梯子(代理)启用了BBR之后,可以让你的梯子速度提升几倍甚至一个数量级!!!
看了上面所说的,是不是很心动?那么快来升级体验黑科技吧!!!切记先备份哦!!!
有任何的疑问或者想法,或者对本文有质疑或者补充的话,欢迎在留言区评论,期待你的分享!
参考文章
《实测TCP BBR算法加速效果》
《Linux Kernel 4.9 中的 BBR 算法与之前的 TCP 拥塞控制相比有什么优势? – 李博杰的回答 – 知乎》
《一键安装最新内核并开启 BBR 脚本》
http://xzh.i3geek.com
0 条评论