最近okxun.com在进行网站服务器的搬迁,从日本东京到美国硅谷再到新加坡,从中国访问网络速度总是不尽如人意,Ping值180~300ms,网络延时不可避免,又不想花大价钱上全球CDN,于是除了套上Cloudflare之外,想到的就是开启TCP BBR网络加速了。
TCP BBR是指什么?
TCP BBR是Google开发的一种先进的TCP拥塞控制算法,与传统的基于丢包的拥塞控制算法(比如:Cubic)不同,BBR通过主动探测网络的瓶颈带宽和往返延迟,来更精确地调整发送速率。说人话就是,开启BBR后能提升网络吞吐量,降低网络延迟,减少网络抖动。
准备开干,那么在Linux服务器上如何启用BBR呢?
我们常看到的Linux发行版,Ubuntu, Debian, CentOS等都可以操作。
一、检查服务器当前是否已开启BBR
在服务器终端输入以下命令:
sysctl net.ipv4.tcp_congestion_control
如果输出结果是:
net.ipv4.tcp_congestion_control = bbr
说明你的服务器已经启用了BBR,可以不用再折腾了。
也可以再确认内核是否已经加载了BBR模块:
lsmod | grep bbr
如果看到类似下面的输出:
tcp_bbr 20480 1
这表明内核已成功加载BBR模块,并且系统正在使用BBR进行网络加速。服务器再慢只能考虑升级配制、上CDN或者换机房了。
二:如果你的服务器跟我的一样是没开启BBR,怎么开启?
如果通过上面的查询显示服务器没有启用BBR(如:tcp_congestion_control 的值是 cubic),那么可以按照以下步骤来开启。
1、因为BBR要Linux内核版本4.9或以上才能支持,所以先要确认内核版本,使用以下命令查看你的系统内核版本:
uname -r
输出可能是6.12.0-142~只要主版本号大于等于4,次版本号大于等于9,就可以了。
2、启用BBR并设置为永久生效,通过以下命令立即启用BBR:
sudo sysctl -w net.core.default_qdisc=fq
sudo sysctl -w net.ipv4.tcp_congestion_control=bbr
fq (Fair Queue) 是一种队列调度程序,通常推荐与BBR配合使用以获得最佳效果。
为了让这些设置在服务器重启后依然生效,还需要将它们添加到sysctl的配置文件中:
echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.conf
然后再应用这些永久配置,使其立即生效(不用重启):
sudo sysctl -p
执行后,系统会加载 /etc/sysctl.conf 中的配置。
3、再次运行检查命令,确保BBR已经成功启用:
sysctl net.ipv4.tcp_congestion_control
一般会输出如下结果:
net.ipv4.tcp_congestion_control = bbr
再确认内核是否已经加载了BBR模块:
lsmod | grep bbr
看到tcp_bbr即成功加载。
至此操作完成,你可以去感受一下服务器的速度了。如果你的服务器原来网络就很快,那么可能没感觉。另外要是你的服务器是按流量计费的,要注意一下,根据资料显示,开启BBR后流量消耗会增加5%左右,对不限流量的服务器没有影响。
评论