我们在对联机交易业务流程系统进行压力测试版本上线前压力测试时,一般先录制维护好脚本,设置好压测脚本场景,然后在进行压测,在对不同的业务流和各类涉及需要测试的功能交易进行压力测试,为了确保每个交易测试性能数据的准确性,不受前一次交易压测导致JVM内存使用问题导致影响本次交易测试,我们会对不同交易每次压测做好内存回收到基线上,性能测试过程中有时为了确保每次压测性能指标不受上次躁数干扰,我们会进行重启或者通过weblogic触发GC强制回收方式在进行压测,例如如下某系统压力实施工作流程:
一、启动应用管理服务器
- ps –ef|grep java----查看系统运行的当前java实例进程
- kill -9 PID
- sh start_app.sh -----进行实例重启
二、启动工作流管理服务器
- ps –ef|grep java -----查看系统运行的工作流java进程
- kill -9 PID
- sh start_wls.sh ----进行实例重启
三、开始压测
如 https://blog.51cto.com/372550/2444645,内容进行脚本开发和场景设计与实施;
四、监控
- 链接数据库服务器,使用top命令数据库服务器使用资源如下:
观察15分钟左右,截图。如果CPU不高于70%,则数据库服务器资源使用情况正常。如果数据库服务器的CPU高于70%,则抓取语法,查看SQL是否存在性能问题,比如全表扫描等。
2、 链接应用服务器,使用top命令应用服务器使用资源如下:
观察15分钟左右,截图。如果CPU不高于70%,则数据库服务器资源使用情况正常。
如果应用服务器的CPU高于70%,则抓取耗时较长的JSP等。SWAP 在压之前先查看占比,压的过程中需要查看是否有发生变化。查看disk 是否超过15%。
三. 打开监控工具查看GC使用情况,检查是否出现内存溢出。如图:
四、编写测试报告
测试报告编写首先说明是什么交易,测试的场景,测试时间。测试报告分为以下四种情况:
- 测试结果不存在问题:则测试结果为响应时间,数据库服务器资源使用情况,应用服务器资源使用情况,GC使用情况,并附上对应截图信息。
- 测试结果存在问题(应用程序):则测试结果为响应时间,数据库服务器资源使用情况,应用服务器资源使用情况,GC使用情况,例如抓取耗时较长的JSP等。
- 测试结果存在问题(数据库):则测试结果为响应时间,数据库服务器资源使用情况,应用服务器资源使用情况,抓取语法,并附上对应截图信息。
- 测试结果存在问题(数据库和应用程序):则测试结果为响应时间,数据库服务器资源使用情况,应用服务器资源使用情况,抓取语法,抓取耗时较长的JSP等,并附上对应截图信息。
来源:51CTO
作者:郭柏雅
链接:https://blog.51cto.com/372550/2454295