Jmeter 测试过程中遇到的线程卡顿状况处理

Jmeter 测试过程中遇到的线程卡顿状况处理

电脑配置:
处理器:Intel® Core™ i7-5500U CPU @ 2.40GHz 2.40GHz
RAM:8.00GB

处理过程

在使用apache-jmeter-5.2.1做数据库接口并发测试时,测试4个数据接口,设置200线程200循环,但是遇到了线程卡顿的问题,回忆线程阻塞的原因,大概是线程启用过多,内存资源减少等等。

直接开始百度解决方案,罗列下大致遇到的解决方案以及我这里的处理结果:
1.修改jmeter.bat并重启,将其中的set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m进行更改。这个是最常见的解决方法。原理是线程卡死的原因是堆溢出导致,因此降低最小内存Xms,提升最大内存Xmx,注意Xmx>=Xms,Xms可修改范围256m,512m,1g等,对应的Xmx可修改范围为256m,512m,1g等。

if not defined HEAP (
    rem See the unix startup file for the rationale of the following parameters,
    rem including some tuning recommendations
    set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
)

我的解决结果:当降低最大内存以及最小内存时,测试速度明显变慢,且仍然卡死;提升最大内存以及最小内存时,测试速度提升速度加快,但是err数目也明显提升,因此此方法对我无效
2. 在HTTP请求默认值中,设置响应超时(Response)以及连接超时(Connect),单位是毫秒。原理是,当http请求的连接时间以及响应时间超过了所设置的响应超时(Response)以及连接超时(Connect)时,将该请求标记为err以处理线程卡死并处理下一条http请求。Jmeter 测试过程中遇到的线程卡顿状况处理_第1张图片
我的
解决结果
:设置响应时间以及连接时间仍然要视实际测试结果处理,设置时长过小导致错误请求过高,设置响应时间过高则起不到处理线程卡死的效果。因此此方法对我无效
3. 减少后台应用,节省内存用于jmeter接口压力测试。关闭jemerGUI,仅仅保留cmd命令行以及goland服务端,重复上述步骤。结果依然无效。
4. 关闭goland启用服务端,使用git bash开启服务端;关闭jemerGUI,仅仅保留cmd命令行;重装jmeter,保留原始设置**(不设置最小内存以及最大内存,不设置超时)**;桌面仅保留cmd命令行,其余窗口全部最小化。最终耗时将近5小时完成接口压力测试。Jmeter 测试过程中遇到的线程卡顿状况处理_第2张图片
5.总结:能用服务器测试就用服务器测试吧,老电脑测试实在是费时费力。

你可能感兴趣的:(Jmeter 测试过程中遇到的线程卡顿状况处理)