Jmeter接口压测
参考资料
Jmeter如何配置和使用
https://www.cnblogs.com/stulzq/p/8971531.html
配置与执行
可变参数配置
参数定义:${__P(参数名,默认值)}
参数使用:在执行jmeter时,通过“-J参数名”的方式对参数进行调用
执行命令
windows版本命令
# windows版本命令
jmeter -n -t test.jmx -Jip=localhost -Jport=8000 -JthreadNum=10 -JloopNum=1 -l -Jx=34.20818280000000 -Jy=113.54014170000000 E:\test-report\test.log -e -o E:\test-report\report
linux版本命令
# linux版本命令
./jmeter -n -t test.jmx -Jip=11.8.242.14 -Jport=8000 -JthreadNum=400 -JloopNum=1 -Jx=30.58779530000000 -Jy=104.03337630000000 -l /data/test-report/test.log -e -o /data/test-report/report
测试环境压力源及脚本执行命令
压力源:
- app:10.29.40.193
- 脚本路径:/var/apache-jmeter-5.4.3/bin
- 测试报告:/home/sunbox/test-report
- 小程序:11.8.242.13
执行脚本:
APP
./jmeter -n -t test.jmx -l /home/sunbox/test-report/test.log -e -o /home/sunbox/test-report/report
小程序
./jmeter -n -t test.jmx -l /data/test-report/test.log -e -o /data/test-report/report
压测过程及结果记录
- 原始状态:
线程数10,循环次数1。
test-report-1#10-1
- 原始状态:
线程数100,循环次数1。
test-report-2#100-1
- 坐标计算修改为多线程
线程数100,循环次数1。
test-report-3#100-1
- 相对v3没有修改
线程数200,循环次数2。
CPU满负荷,全部超时,压测失败。
- 提升Tomcat线程数:200 -> 400
线程数200,循环次数1。
CPU满负荷,全部超时,压测失败。
- 提升客户端的redis连接数配置:100 -> 300
线程数300,循环次数1。
Java服务报GC异常,内存溢出。
test-report-4#300-1
- 优化油站缓存结构,调整为分片缓存
线程数300,循环次数1。
没有出现超时情况,效率显著提高。
test-report-5#300-1
- 相对v7没有修改
线程数1000,循环次数1。
test-report-6#1000-1
- 修改入参坐标,调整坐标为最大的HASH中的坐标,HASH大小为1476
参数:104.13370520000000,30.82013920000000
线程数500,循环次数1。
test-report-7#500-1
- 相对v9没有修改
线程数200,循环次数1。
test-report-8#200-1
- 修改应用程序的Redis连接数为默认的100,Tomcat连接数为400
线程数200,循环次数1。
test-report-9#200-1
- 相对v11没有修改
线程数400,循环次数1。
test-report-10#400-1
- Tomcat连接数400,等待队列长度1000。Redis客户端连接数100。
线程数400,循环次数1。
观察nginx日志,请求的响应速度均在10ms~30ms之间。
- Tomcat和Redis配置同v13
线程数800,循环次数1。
观察nginx日志,接口响应速度均在10ms~30ms之间,与v13的压测结果大致相同。
- Tomcat和Redis配置同v13
线程数分别调整至1400、1200、1000,循环次数1。
均出现了性能衰减,接口响应速度在100ms~4000ms之间,已经出现了性能问题。
- Tomcat和Redis配置同v13
线程数1600,循环次数1。
出现了18%左右的请求丢失,原因是超过了Tomcat的最大连接数和最大等待队列长度之和,超过了Tomcat的请求处理能力范围。
同时,没有丢失的请求,出现了响应速度慢的现象,响应时间在3000ms~8000ms之间。
附件
测试报告及压测脚本
作者:zkm1992
出处:https://www.cnblogs.com/zkm1992/p/16445578.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?