压力测试tps性能下降问题解决方案_稳定性测试tps缓慢下降-程序员宅基地

技术标签: loadrunner  优化  内存  eclipse插件开发  性能  gc  

压力测试tps性能下降问题解决方案

背景

测力测试时反映tps一直下滑的问题,为了重现该问题,开发一个简单交易进行测试,测试代码如下

 

录制该交易脚本,并放在LoadRunner11中进行测试,场景为10个用户同时启动并持续的跑。可以看到1分钟之后tps开始下降,并在后期持续下降。

 

此时分析服务端日志、javacore、heapdump、gc等,并未发现异常现象。修改服务端线程池相关等,但测试结果却是一如既往的下滑。记录服务端处理请求时间,发现一直很稳定,初步怀疑是客户端压力不够导致,但一直无具体证据,因此压测tps下滑问题一度搁置。

 

转折点

本周一时,一同事开始做压力测试,交流这个问题后,那边现场也开始了类似测试,但测试结果如出一辙。后来广发使用了LoadRunner中的按进程运行vuser,测试效果如下。可以看到,整个过程跑了3个小时,tps一直稳定在950左右,这下总算有了突破口。

 

分析

LoadRunner中按进程运行vuser与按线程运行vuser跑出来的结果竟然会有那么大区别,那么他们两者的结果为什么差别那么大呢。

LoadRunner中对这两种分别是这样说明的:

Ø 按线程运行vuser

    启动多线程以便每台负载生成器计算机运行更多的vuser。

Ø 按进程运行vuser

    禁用多线程并将每个vuser作为完整的进程运行。用于非线程安全协议

 

网上对于两者有这样的解释:

线程的资源是从进程资源中分配出来的,因此同一个进程中的多个线程会有共享的内存空间

 

那么回过头来使用神器javavisualvm查看下使用按线程运行vuser时mdrv.exe(lr跑vuser的程序)进程的内存使用情况,可以看到运行7分钟时间内fullgc执行了94次,仔细看下可以发现新生代为896k+64k*2=1024k,最大4992k,年老代为4m,最大59.125m。此时猜想为jvm内存分配太小导致的

 

 

调优

现在调整下虚拟机内存并使用同样的场景进行测试,jvm参数与测试结果如下:

Jvm参数:-Xmn128m -Xmx384m -Xms384m-XX:PermSize=64m -XX:MaxPermSize=128m

 

 

果然和猜想的一样,测试期间稳定运行,下面为本次的内存使用截图

 

可以看到年老代内存使用一直稳定在1.457m,持久代内存一直稳定在5.616m,

整个过程没有进行fullgc,垃圾回收全部在年轻代。

 

基于本次测试,继续调整基于本场景下的虚拟机参数,增大年轻代,缩小年老代与持久代。并使用同样的场景进行测试,jvm参数与测试结果如下:

 

Jvm参数:-Xmn320m -Xmx384m -Xms384m -XX:PermSize=12m -XX:MaxPermSize=12m

 

继续看测试过程中内存使用情况。

可以看到运行1:40期间,年轻代执行gc 2304次,耗时45.703s,相对于上次测试的运行1:10,年轻代执行gc 3228次,耗时35.965s,有一定的提升。

结论

此次发现的压力测试tps持续下降问题并非由服务端和客户端处理性能导致,而是由压测客户端内存分配不合理导致。

 

后续测试时如出现类似情况可选取按进程运行vuser,也可根据实际运行交易场景进行内存参数调整,保证后续测试正常进行。

 

按进程运行vuser时其中一个进程的内存使用截图:


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ll413343176/article/details/38735705

智能推荐

ruoyi-vue整合优雅的swagger前端显示页面 knife4j_ruoyi-vue swagger-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏9次。1.注释掉丑陋的前端页面依赖添加knife4j依赖 <!-- swagger2-UI--><!-- <dependency>--><!-- <groupId>io.springfox</groupId>--><!-- <artifactId>springfox-swagger-ui</artifactId>--><!-- _ruoyi-vue swagger

运筹优化 | 模拟退火求解旅行商问题 | Python实现-程序员宅基地

文章浏览阅读382次,点赞10次,收藏7次。最短路径: [0, 5, 4, 3, 12, 11, 29, 22, 21, 16, 15, 28, 27, 26, 25, 24, 23, 14, 13, 7, 9, 20, 19, 18, 6, 10, 8, 2, 17, 1]运行时间: 43.86513066291809 秒。最短距离: 424.69177537685437。

FZU1205 小鼠迷宫问题(搜索)-程序员宅基地

文章浏览阅读440次。问题描述小鼠a与小鼠b身处一个m×n的迷宫中,如图所示。每一个方格表示迷宫中的一个房间。这m×n个房间中有一些房间是封闭的,不允许任何人进入。在迷宫中任何位置均可沿上,下,左,右4个方向进入未封闭的房间。小鼠a位于迷宫的(p,q)方格中,它必须找出一条通向小鼠b所在的(r,s)方格的路。请帮助小鼠a找出所有通向小鼠b的最短道路。小鼠的迷宫 编程任务对于给定的小鼠的迷宫,_小鼠迷宫

十大企业数字化转型成熟度评价模型-程序员宅基地

文章浏览阅读47次。摘要:数字化转型是企业在数字化环境下进行的全方位变革和创新,旨在提升企业的竞争力和适应能力。在这个过程中,企业的数字化成熟度评估变得尤为重要。本文将介绍一种名为"十大企业数字化转型成熟度评价模型"的评估框架。该模型基于对众多企业数字化转型案例的研究和实践经验,综合考虑了企业的战略、组织、技术和文化等方面的因素。企业数字化转型成熟度评价模型应该根据企业的不同属性进行选择和参考。不同行业、规模和发展阶...

拓扑排序 / 家谱树-程序员宅基地

文章浏览阅读387次,点赞10次,收藏9次。【代码】拓扑排序 / 家谱树。

小程序富文本rich-text、数组拼接、 包含特殊符号处理-程序员宅基地

文章浏览阅读6.5k次。先说一下rich-text的实现,很简单html<rich-text nodes="{{myrich}}"></rich-text>js 注意:里面不能用view 否则运行不出来,可以用html的标签,详细见文档 https://developers.weixin.qq.com/miniprogram/dev/component/rich-text.html......_rich-text

随便推点

Mysql中的Redo log日志和binlog日志的详情工作-程序员宅基地

文章浏览阅读868次,点赞11次,收藏21次。主要是讲解Redo log 和 binlog实现更新日志的时候。

最大奇数与最小偶数之差的绝对值_最大奇数与最小偶数之差的绝对值答案-程序员宅基地

文章浏览阅读4.8k次,点赞2次,收藏10次。问题描述 输入6个正整数,且这6个正整数中至少存在一个奇数和一个偶数。设这6个正整数中最大的奇数为a,最小的偶数为b,求出|a-b|的值。 最大奇数与最小偶数之差的绝对值_最大奇数与最小偶数之差的绝对值答案

Matlab有限元编程案例全家桶【源码+理论文本】-程序员宅基地

文章浏览阅读379次,点赞8次,收藏5次。该全家桶资源为课程《Matlab有限元编程从入门到精通30讲》配套的全部源码和讲义PPT/理论文本,旨在以案例的形式讲解各类有限元问题程序实现及算法原理,并提供完整Matlab源码供大家练习,案例源码均包含前后处理模块和求解器模块;单元类型包含:杆单元,梁单元,平面三角形单元,板壳单元,四/六面体实体单元等;物理场问题涉及:静力学、动力学、传热学、材料非线性、几何非线性、接触非线性等求解。

win10隐藏输入法指示器的设置方法-程序员宅基地

文章浏览阅读2.2w次,点赞5次,收藏2次。Win10任务栏的输入法指示图标略烦,于是想关闭它,在“设置---系统---通知和操作---启用或关闭系统图标”中设置了输入法指示为“关”,但发现每次开机后还是会自己冒出来,于是找啊找,终于找到解决方法了,如下:在“控制面板---时钟、语言和区域---语言---高级设置”下右侧的“切换输入法”里选中“使用桌面语言栏”,然后后面会有个“选项”按钮,点进去在“语言栏”里_输入法指示器

pyqt5中sender方法介绍_PyQt5系列教程(21):标签(QLabel)-程序员宅基地

文章浏览阅读775次。上期我们介绍了PyQt中的液晶显示屏(QLCDNumber),这期我们介绍一下PyQt中常用的一个小部件标签(QLabel)。总体介绍QLabel小部件提供文本或图像显示。QLabel用于显示文本或图像。没有提供用户交互功能。标签的外观可以通过各种方式进行配置,可以用于指定另一个小部件的焦点助记键。QLabel可以包含以下任何内容类型:当使用任何方法改变内容时,任何先前的内容都被清除。警告:当在Q..._pyqt5 sender

高精度色选机系统的项目实现_色选机软件系统-程序员宅基地

文章浏览阅读279次。随着我国色选机产业的不断发展,以及粮食、矿产、再生资源等行业的机器智能化程度的提高,国内主要的色选机研制企业都在谋求生产规模的扩大,与此同时,国外著名色选企业也在大举进入国内市场。本项目旨在通过技术创新和实际应用,研发一款高精度色选机,为目标行业提供先进的色选解决方案,在农产品种类繁多、品质要求严格的生产环境中,高效、准确地实现对农产品的色彩分选,提高生产效率,减少人工成本,降低人为误差,从而提升农产品的质量和附加值,在目标行业中取得显著的经济和社会效益,推动行业的数字化转型和智能化升级。_色选机软件系统

推荐文章

热门文章

相关标签