服务器优化(一)安装腾讯内部单边拥塞算法BBR-TCPA

本文章已收录至本站专栏
服务器优化系列

0、什么是BBR

BBR是Google提出的一种新型拥塞控制算法,可以使Linux服务器显著地提高吞吐量和减少TCP连接的延迟。
BBR解决了两个问题:在有一定丢包率的网络链路上充分利用带宽,非常适合高延迟,高带宽的网络链路。

1、腾讯内部单边拥塞算法TCPA

腾讯内部使用的TCPA,由腾讯TEG操作系统组研发,基于RHEL7.4源码,定制化的TCPA。
团队介绍:腾讯TEG操作系统组, 2010年成立,专业的内核团队,维护研发腾讯内部Linux操作系统tLinux,保证百万级Server高效稳定运行, 为腾讯业务提供有力支撑。
优势:TCPA启用后,小文件比BBR能提升40%以上,大文件比BBR能提升5%~10%。TCPA的优势在于小文件的性能提升,程序也默认仅加速网站端口(80/443/8080),所以更适用于建站场景。

2、安装TCPA

安装要求:
系统:CentOS7以上
Boot分区:不小于500M
(Boot分区太小可能导致安装内核失败)

安装提示:
以下步骤下载的资源均保存在GitHub上,中国大陆部分服务器无法访问GitHub,因此推荐先阅读本站文章,搭建GitHub镜像站:
https://blog.tsinbei.com/tw/archives/152/

2.1、一键安装

执行

此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。

说明:一键安装会自动安装依赖(仅epel-release、net-tools)和内核并重启,重启后安装自动完成无需人工干预。

2.2、手动安装

2.2.1、安装内核

执行

此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。

下载并安装内核。

注意:安装过程以及后续使用时可能会报错

Broadcast message from [email protected] (xxx 2 022-xx-xx CST):
dracut[18455]: Failed to install module bnxt_en
Message from [email protected] at ... dracut:Failed to install module bnxt_en

如果能够正常启动TCPA,可以忽略错误。

执行

此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。

以将TCPA内核设置为默认。

2.2.2、重启服务器

注意:推荐使用宝塔面板重启服务器,或在服务器控制台重启服务器!

安装宝塔面板企业版:
https://blog.tsinbei.com/tw/archives/7/

宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取:
https://www.bt.cn/?invite_code=MV93cm1wcGQ=

或执行

Bash
1
reboot

重启服务器。

2.2.3、安装TCPA主程序

执行

此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。

下载并安装主程序。

默认只对80、443、8080端口进行加速,如需添加其他端口,编辑

/usr/local/storage/tcpav2/start.sh

在第46行后添加

Bash
1
$BINDIR/$CTLAPP access add tip $ip tport 端口号

即可添加自定义端口。

2.2.4、启动TCPA

执行

此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。

启动程序,执行
此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。

若有输出,即代表TCPA已在运行。

3、测试速度

在看参考资料时,我还是对BRR算法抱怀疑态度,因为宣传中所称的提升效果也太夸张了些。因此,我使用了拨测测试网站速度。

BOCE免费全国拨测平台,注册就送1000波点:
https://www.boce.com/?k=5ATSPlgIk2

首页:

文章页面:

独立页面:

能够发现全国大部分速度都在3s内,符合主流搜索引擎的要求。

本站使用的服务器为中国香港服务器,具体可以查看本站文章:
https://blog.tsinbei.com/tw/archives/140/
中国大陆服务器的速度原本较快,但是带宽较少,因此使用中国香港服务器做了一层反向代理。
在安装TCPA前,网站速度一直提不上去。而本站的部分页面采用了缓存,因此速度还能接受,而没有缓存或缓存命中率低的页面就非常慢了。这次优化整好完美解决了该问题。

4、错误排查

在启用TCPA后,本站出现了502 Bad Gateway的错误。
上文提到,为了服务器安全网站服务器是内外网隔离的,因此在本地用了Dnsmasq管理DNS解析。
而TCPA安装过程中会破坏该设置,因此需要在

/etc/resolv.conf

第一行加入

conf
1
nameserver 127.0.0.1

即可解决问题。

小彩蛋:在排查错误时发现依然无法正常显示网站,用其他设备可以打开,猜测是BBR-TCPA的缓存策略

5、对比

总体

5.1、BBR

上传下载

SpeedTest

DevTools

5.2、TCPA

上传下载

SpeedTest

DevTools

5.3、评估

总结:如果你只是用来建站,没有什么大文件,那么建议使用腾讯TCPA,如果是你的是需要大带宽高流量,建议便宜BBR。

6、参考资料

此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。

服务器优化(一)安装腾讯内部单边拥塞算法BBR-TCPA

https://blog.tsinbei.com/tw/archives/228/

文章作者
Hsukqi Lee
发布于

2022-03-12

修改于

2022-07-28

许可协议

CC BY-NC-ND 4.0

评论

昵称
邮箱
网址
1 条

leo

leo

thank you!

  回复