在压测项目生产环境中,发现首页的QPS一直在8k,未达到压测目标,但压测其他接口QPS能达到5w,需要排查出问题进行优化。
首页接口压测结果:
其他接口压测结果:
由于再增加一个CLB,需要前面加ecdn,压测链路发生改变:
ecdn(15个ip轮询)->waf->2个公网clb->web(node,40台机器)
压测结果如下:
1个公网clb->web(node,40台机器) | 8.77k |
---|---|
ecdn(15个ip轮询)->waf->2个公网clb->web(node,40台机器) | 9.11k |
3. 进行后端开启gzip验证,看流量是否有降低,看cpu负载影响大小
jmeter修gzip的请求方式
压测结果如下:
每个请求的response由55.5kB缩小到9.4kB
CLB的出带宽4000Mbps缩小到750Mbps,CPU的负载由10%增加到15%
ecdn(15个ip轮询)->waf->1个公网clb->web(node,40台机器) | 不开启zip | 7.48k |
---|---|---|
ecdn(15个ip轮询)->waf->1个公网clb->web(node,40台机器) | 开启zip | 9.05k |
4. 由上面的压测结果来看,jmeter开启gzip后,CLB资源消耗减少,恢复至最开始状态后,采用1个CLB进行验证。
压测链路:1个公网clb->web(node,40台机器)
压测结果如下:
1个公网clb->web(node,40台机器) | 不开启zip | 8.77k |
---|---|---|
1个公网clb->web(node,40台机器) | 开启zip | 36.01k |
5. 在压测的过程中,还发现不同地区的压测集群压测结果不一致,越靠近压测环境的集群,压测的qps更高。
项目中使用广州的压测集群比北京的压测集群,压测的QPS更高。
北京集群压测结果:
在压测前端项目中涉及到很多数据资源的传输,开启gzip压缩功能可以节省网络流量。主要分为2个部分
Accept-Encoding值: gzip
;使用node中间件---compression
,实现压缩功能。本项目使用的nodejs框架,需额外关注实现gzip压缩需要使用中间件compression,一般情况下使用Apache框架是由默认配置项实现gzip功能。
在分析问题的过程中,可以采用控制变量法进行一一排查,提高问题排查效率。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。