0


性能测试(记一次论坛网站性能测试)

近期做了一次论坛网站性能测试,记录下来以便总结提高,欢迎大家交流分享,若有不妥之处还请指教;

需求分析

性能要求

1、服务在3000并发基础上,关键服务响应时间小于等于300ms

2、系统支持快速扩容,支持更大的并发Session,例如并发Session从2000到4000,扩容后关键页面访问、关键服务响应时间增长幅度低于5%

性能指标

经过分析,我们认为要求中的3000绝对并发,跟jmeter中的并发数不同,要求中应该是指的3000用户同时操作,对应到我们jmeter压测过程中,说的是tps 达到3000;
用户要求并发用户要求响应时间
预估线程数

(jmeter并发数)
3000并发--每秒3000请求300ms--1秒请求3次 1000
所以测试时应关注的指标为:TPS 3000时,服务响应时间 小于等于300ms

环境准备

测试工具

apache-jmeter-5.1.1

测试过程

单接口

1、首先利用阶梯压测,找到并发数和TPS的拐点;初步得到我们压测时,应该给多少并发数;

  阶梯压测后,我们决定并发数最大为 500

2、单接口场景下,分别给单接口100、200、250 、500并发数;

  如下所示,200加到250  直到500,tps并没有跟着上涨,但是响应时间却上涨很快;

  所以得到最优情况为:**并发数 200,tps  1023.5**

并发数TPS平均响应时间90%响应时间95%响应时间****异常率(%)********执行时长(s)CPU内存100893.6/s111146162030085.26%69.28%31.00%79.79%2001023.5/s146288378030095.10%70.01%35.97%79.31%2501043.1/s238367712030095.49%68.88%37.04%79.35%5001062.2/s46212251474030096.06%68.81%39.21%79.45%
3、此时观察cpu和内存,cpu达到了90%以上,所以我们决定扩容后再次测试;

4、对性能环境扩容4倍后,我们再次用阶梯压测,得到最大并发数还是给到500;

5、把所有的接口,分别给100、200、500并发,根据结果来分析最优情况;

  最优情况:**并发数 500,TPS 2313.8 **  

  并计算出**扩容4倍后,提升率为126%,**继续扩容应该可以满足性能要求

*并发数TPS平均响应时间90%响应时间95%响应时间***异常率(%)****执行时长(s)CPU内存**1001124.987101127030026.11%34.70%34.65%75.74%22.43%47.03%39.48%91.49%2001729.2114133148030038.93%34.75%53.57%76.23%30.17%47.26%59.09%88.36%5002313.82132391123030049.08%35.23%67.36%76.51%42.09%47.43%75.74%89.16%

混合接口

     跟单接口测试方法一样

扩容前得到最优情况为:并发数 200, tps 170

扩容后得到最优情况为:并发数 500, tps 437.2

性能问题及优化

1、执行十几秒后,TPS断崖式下降,响应时间增大,CPU使用率下降 ----因为数据库只有只读模式导致报错,数据都堵塞在master;

2、nmc监控,发现存在慢sql,----对相关慢sql进行整改;

踩坑过程

    在持续压测15分钟后,tps会迅速上升,错误率随之迅速上升,刚开始以为是运行一段时间之后,都走缓存,所以tps会有明显的上升趋势,后来排查发现,15分钟后,获取的token过期了,导致后面的接口全部没有正常调用;

    检查断言,发现断言200是不行的,因为没有正常调用的接口也会返回200,改了断言之后,重新压测,tps不会再陡增。
标签: 压力测试

本文转载自: https://blog.csdn.net/weixin_55282974/article/details/129664041
版权归原作者 oh-pinpin 所有, 如有侵权,请联系我们删除。

“性能测试(记一次论坛网站性能测试)”的评论:

还没有评论