1.首先带来一个很哲学的问题,什么是BBR?
TCP BBR是谷歌出品的TCP拥塞控制算法。BBR目的是要尽量跑满带宽,并且尽量不要有排队的情况。BBR可以起到单边加速TCP连接的效果。替代锐速再合适不过,毕竟免费。
Google提交到Linux主线并发表在ACM queue期刊上的TCP-BBR拥塞控制算法。继承了Google“先在生产环境上部署,再开源和发论文”的研究传统。TCP-BBR已经再YouTube服务器和Google跨数据中心的内部广域网(B4)上部署。由此可见出该算法的前途。
TCP-BBR的目标就是最大化利用网络上瓶颈链路的带宽。一条网络链路就像一条水管,要想最大化利用这条水管,最好的办法就是给这跟水管灌满水。
BBR解决了两个问题:
再有一定丢包率的网络链路上充分利用带宽。非常适合高延迟,高带宽的网络链路。
降低网络链路上的buffer占用率,从而降低延迟。非常适合慢速接入网络的用户。
项目地址:https://github.com/google/bbr
对于TCP单边加速,并非所有人都很熟悉,不过有另外一个大名鼎鼎的商业软件“锐速”,相信很多人都清楚。特别是对于使用国外服务器或者VPS的人来说,效果更佳。之前运维114网站也曾经介绍如果使用BBR:Centos开启加速器BBR 其实原理差不多,不过这次我们使用大神泰迪写的脚本!
2.BBR一键脚本
由于运行脚本需要root权限,所以我们需要先登录root账号或者su过去!
wget -N --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && bash bbr.sh
脚本运行后会提示你输入(n/y)来reboot,直接输入y即可,然后vps会重启,过小会儿,重启完后再登录到vps,输入以下几条命令,检查BBR是否启用成功。
3.BBR启用内核检查命令
uname -r
上图所显示的就是内核版本5.9.12!
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 已载入。
ps -ef | grep bbr
输出的内容有bbr说明bbr已经启动在进程中。