负载场景
提示:以下是本篇文章正文内容,下面案例可供参考
一、什么是负载测试?
负载测试时通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。
二、负载测试场景设计
1.阶梯式加压:插件@jpgc - Standard Set
@jpgc - Standard Set ,进行阶梯式加压
100个用户登录,每5秒启动20个用户,持续运行30秒,直到100个用户启动完毕后持续运行2分钟,然后每1秒退出10个用户。
结果
2、第二张阶梯式:Concurrency Thread Group
Target Concurrency: 预期客户端最大并发线程数为50
Ramp Up Time(min): 0.5 在30秒内启动50个线程
Ramp-up Steps Count: 25在上述时间内,分5次启动
Hold Target Rate Time (min): 0.5达到目标并发线程数5后,再并发运行60秒
Thread Iterations Limit:线程迭代次数限制,即循环次数(空,即为一次)(无特殊情况,建议不设置该选项的值)
Log Threads Status into File:将线程状态记录到文件中(保存日志文件)
结果
用户数
响应时间:
tps:
监控平台:
mysql:出现慢查询
服务器资源:
分析
用户数 |
大概的指标 |
10 |
rt:330ms tps:25 |
20 |
rt:550ms tps:30 |
30 |
rt:860ms tps:26 |
40 |
rt:1300ms tps:20 |
50 |
rt:1500ms tps:26 |
# 总结 最大并发用户数在30,tps出现v型波动,查看监控平台,发现数据库出现了慢查询,需要查看慢查询日志,慢查询阈值为1s 发现慢查询语句超过1s,使用explain进行分析(图二),分析可知是全表查询,没有加索引。需要加索引进一步调试脚本分析。加入索引后,type从all变为ref,sql执行时间变为0.002s
图二
图三
图四
此文如分析有误,请大佬指点。