怎么使用JMeter对代码进行压测,对比高并发优化前后的性能,单机性能都提升了25倍左右?

川长思鸟来 2024-04-29 19:06 31阅读 0赞

介绍

  • 压力测试相关概念
  • 使用JMeter对高并发优化前后的代码进行压测对比

压力测试相关概念

并发量:指在同一时间点内,系统中同时处理的用户请求数。(并发1000时,响应时间1s;并发5000时,响应时间5s,处理得慢一点,但也能处理。那么并发量到底是1000还是5000?)

响应时间:系统处理一个请求所需时间。

吞吐量:系统在给定时间内处理的业务请求数量。

QPS:系统每秒钟处理的请求数量。

TPS:系统每秒钟完成的事务数量。

吞吐量就是TPS

cc2dd687886a4b25bd4124556721c277.png

上面图片就是吞吐量的控制器,可以查看可以修改参数配置,Throughput就是吞吐量

下面更直观的展示他们的关系以及数值的理解

吞吐量压测(聚合报告)

84a09ec39f80b1a6e62d433f9d8a190e.png

这是我在项目中请求数据购买的时候同时设置 100个线程并发时,吞吐量为430-440/sec。

那如果我没有用微服务的代码压测情况↓,响应时间(5s)和吞吐量都低

cc28076323321fb965ed9ff934dac37b.png

可以看到两个图片的对比情况就可以看出来,性能提升大约25倍。

修改JVM参数再次压测

jvm内存分配2G,影响不大。

697d3ed77a4e1b3cd421cb342ed10367.png

c46e0636a7e0cb7c364a543a63837b31.png

内存分配128m,影响不大。

77bf664c96757ac32de9c8a22dc12583.png

对比下来这几张的结果图片下来发现修改了jvm的参数压测并没有改变很大的变化,吞吐量还是维持相差不大的数值

最高并发数探测

  • 增加线程数,直到出现异常
  • 增加线程数,直到响应时间超过预期(等待2s)

10000并发,电脑卡死了!有异常

c283af2227ef290a9e3719c127185075.png

1000并发,平均时间增加,吞吐量不变。

8e2d2c71550703066367be16ac3d96d2.png

最高支持1000并发。

没有微服务的代码只能支持<50并发量。

单机性能都提升了25倍左右

详细可以看我的另一篇博客:http://t.csdnimg.cn/j2TBO

发表评论

表情:
评论列表 (有 0 条评论,31人围观)

还没有评论,来说两句吧...

相关阅读