本站文章(技术文章和tank手记)均为社长矢量比特工作.实践.学习中的心得原创,请勿转载!

老nginx集群向tengine的升级改造,性能提升数倍

web服务器 矢量比特

集群服务器使用nginx+fpm(php)的结构,这种结构的性能很大程度的瓶颈在fpm这一层,随着业务发展,访问量的增加,为了保证用户体验,我们在通过各种手段去提升集群的吞吐量和服务

     集群服务器使用nginx+fpm(php)的结构,这种结构的性能很大程度的瓶颈在fpm这一层,随着业务发展,访问量的增加,为了保证用户体验,我们在通过各种手段去提升集群的吞吐量和服务质量——机器扩容、业务分池、MC/REDIS的local化等等,做下来看到的效果是明显的,不过量级上的提升还是迫切需要,于是想到了在web服务器上在下下功夫,集群使用的nginx版本有点历史,版本就不说了,不过一直跑的都很健壮,所以没从想过更换,在负责之前业务时使用tengine,性能表现良好,于是果断测试升级,没想到升级改造后性能是质的提升,30ms以内的响应从原先的20%提高到了80%,100ms以内的响应从原来的70%提高到了90%,升级过程不说了,看看升级前后的数据比较吧,数据均是生产环境实际监控:

活跃连接数监控如下:

wKioL1divTGh34h4AAA3nadnU4Q905.png

     从下午3点做的升级改造,在同等环境只升级改造了web服务器的条件下(QPS大概在300到500之间),web的活跃连接数降为了原来的三分之一并保持稳定,大家都知道,如果同样数量的请求,处理的越快nginx的活跃连接数就会越少,处理的慢了才会对活跃连接数以及tcp进行堆积,推测性能是有很好的提升的,但这个数据还不能说明问题,因为最终要看用户的访问质量,继续查数据分析。

日志的响应时间对比如下(1个小时):

wKioL1dixGDQne73AAAsYdnFbdI279.png

注:时间是区间,第一个是小于10ms,第二个是大于10小于30ms,第三个大于30小于50ms依次类推...

     从图表可以清楚的看出升级前后的相应时间对比,如果以30ms和100ms为两个槛做比较(500ms以上我们就算超时了),得出30ms以内的响应请求从原来的20%提升到了80%,如果计算100ms以内的请求是从原来的68%升到了92%,相比1s以上的长相应请求从原来的3.9%降到了不到1%的量,可以说是效果非常明显,性能提升数倍,tengine在某些方面不愧是一款利器,当然升级过程中也遇到了一些配置上的小曲折,总之业务性能优化永无止境,tengine不愧是一款优秀的和fpm搭配的web服务器。

请求相应时间曲线图比较(绿色是30ms以内请求,拐点为升级点):

wKioL1dnYvDgFxsVAADuKFlBQiQ474.png

最后再上张饼图形象的比一下(绿色为30ms以内,红色为500ms以上):

wKiom1dnZorSGXWhAADqrVxfr3o518.png


运维网咖社”原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://www.net-add.com


©本站文章(技术文章和tank手记)均为社长"矢量比特"工作.实践.学习中的心得原创或手记,请勿转载!

喜欢 (4) or 分享 (0)
欢迎扫描关注微信公众号【运维网咖社
社长"矢量比特",曾就职中软、新浪,现任职小米,致力于DevOps运维体系的探索和运维技术的研究实践.