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

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

需求分析

性能要求

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不会再陡增。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值