本文章已收录至本站专栏
服务器优化系列
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=
或执行
1 | reboot |
重启服务器。
2.2.3、安装TCPA主程序
执行
此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。
下载并安装主程序。
默认只对80、443、8080端口进行加速,如需添加其他端口,编辑
/usr/local/storage/tcpav2/start.sh
在第46行后添加
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
第一行加入
1 | nameserver 127.0.0.1 |
即可解决问题。
小彩蛋:在排查错误时发现依然无法正常显示网站,用其他设备可以打开,猜测是BBR-TCPA的缓存策略
5、对比
5.1、BBR
5.2、TCPA
5.3、评估
总结:如果你只是用来建站,没有什么大文件,那么建议使用腾讯TCPA,如果是你的是需要大带宽高流量,建议便宜BBR。
6、参考资料
此处内容需要评论回复(自动审核)或加入 QQ 技术交流群(立即获得内容)后方可阅读。赞助(二维码在文章下方)后联系作者可一次性解锁所有(包括之后的新文章)。
服务器优化(一)安装腾讯内部单边拥塞算法BBR-TCPA
评论