JMeter StackOverflow [英] JMeter StackOverflow

查看:142
本文介绍了JMeter StackOverflow的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用JMeter 2.11.在jmeter.bat文件中定义了以下参数:

I am using JMeter 2.11. The following parameters are defined in the jmeter.bat file :

set HEAP=-Xms512m -Xmx12144m

set PERM=-XX:PermSize=64m -XX:MaxPermSize=64m

我以50个用户的批处理模式运行我的方案.看来有些线程在20分钟或1小时内被阻塞,然后在之后再次运行.例如,我们具有单元组6的以下内容:

I run my scenario in batch mode with 50 users. It appears some threads are blocked during 20 min or 1 hour and run again after. For example, we have the following with the unit group 6:

<httpSample t="13" lt="13" ts="1410856270124" s="true" lb="/hopex/service.aspx?data=generationType-standard|generator-E98AEA3A4F717715" rc="200" rm="OK" tn="Groupe d'unités 1-6" dt="text" by="412">
  <java.net.URL>http://172.16.1.23/hopex/service.aspx?data=generationType-standard|generator-E98AEA3A4F717715</java.net.URL>
</httpSample>

**executed at 16/09/2014 10:31:10**


<httpSample t="0" lt="0" ts="1410856270138" s="true" lb="/hopex/statesessionprovider.aspx" rc="200" rm="OK" tn="Groupe d'unités 1-6" dt="text" by="238">
  <java.net.URL>http://172.16.1.23/hopex/statesessionprovider.aspx</java.net.URL>
</httpSample>

**executed at 16/09/2014 10:31:10**



<sample t="0" lt="0" ts="1410856274818" s="true" lb="Timer between steps" rc="200" rm="OK" tn="Groupe d'unités 1-6" dt="text" by="1478"/>

**executed at 16/09/2014 10:31:15**


<httpSample t="3" lt="3" ts="1410860493293" s="false" lb="/Hopex/service.aspx?data=generationType-standard|generator-E98AEA3A4F717715" rc="500" rm="Internal Server Error" tn="Groupe d'unités 1-6" dt="text" by="298">
  <java.net.URL>http://172.16.1.23/Hopex/service.aspx?data=generationType-standard|generator-E98AEA3A4F717715</java.net.URL>
</httpSample>

**executed at 16/09/2014 11:41:33**

似乎计时器在10H31执行,下一个请求在11H41发送,也就是说在计时器之后的1H10.我们的服务器应用程序日志显示,由于IIS,从未处理过最后一个请求 Web应用程序会话超时.因此,这意味着JMeter在发送请求之前暂停了一个多小时.应该注意的是,如果我们从场景中删除JMeter while语句,它将起作用.

It appears the timers are executed at 10H31 and the next request is sent at 11H41, that is to say 1H10 after the timers. Our server application log shows that the last request has never been handled because of IIS web application session timeout. So it means JMeter made a pause of more than one hour before sending the request. It should be noted that if we remove the JMeter while statement from our scenario, it works.

我从JMeter日志中检索此信息.看来问题出在堆栈溢出的JMeter上.

I retrieve this information from JMeter logs. It seems the problem comes from JMeter with stack overflow.

2014/09/16 10:30:49 WARN  - jmeter.control.GenericController: StackOverflowError detected 
2014/09/16 10:30:49 WARN  - jmeter.control.GenericController: StackOverflowError detected 
2014/09/16 10:30:49 WARN  - jmeter.control.GenericController: StackOverflowError detected 
2014/09/16 10:30:51 WARN  - jmeter.control.GenericController: StackOverflowError detected 
2014/09/16 10:31:00 INFO  - jmeter.reporters.Summariser: summary +    196 in    30s =    6.5/s Avg:   154 Min:     0 Max: 11347 Err:     0 (0.00%) Active: 50 Started: 50 Finished: 0 
2014/09/16 10:31:00 INFO  - jmeter.reporters.Summariser: summary =   5974 in  1103s =    5.4/s Avg:   406 Min:     0 Max: 47864 Err:     0 (0.00%) 
2014/09/16 10:31:01 WARN  - jmeter.control.GenericController: StackOverflowError detected 
2014/09/16 10:31:32 INFO  - jmeter.reporters.Summariser: summary +    154 in    32s =    4.9/s Avg:    94 Min:     0 Max: 10982 Err:     0 (0.00%) Active: 50 Started: 50 Finished: 0 
2014/09/16 10:31:32 INFO  - jmeter.reporters.Summariser: summary =   6128 in  1135s =    5.4/s Avg:   399 Min:     0 Max: 47864 Err:     0 (0.00%) 
2014/09/16 10:31:37 WARN  - jmeter.control.GenericController: StackOverflowError detected 

我尝试使用-XSS更改JMeter.bat参数,但有副作用.我还使用这些参数进行了测试:

I tried to change JMeter.bat parameters using -XSS but we had side effects. I also ran the test with those parameters:

set HEAP=-Xms512m -Xmx12144m 
set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m 
set SURVIVOR=-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50% 
set TENURING=-XX:MaxTenuringThreshold=2 
set RMIGC=-Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000 
set PERM=-XX:PermSize=64m -XX:MaxPermSize=64m

没有任何变化,同样的问题也适用. 有谁知道如何删除那些JMeter错误? 这对我们来说是一个很大的障碍,因为这意味着JMeter无法同时正确处理50个用户...

Nothing change, the same problem applies. Does anyone has an idea of how to remove those JMeter errors ? This is quite blocking for us since it means JMeter could not handle correctly 50 users simultaneously...

致谢

西尔维

推荐答案

该问题归因于2.11版中的已知错误:

Issue was due to a know bug in version 2.11 :

当If Controller的条件从第一次迭代开始始终为false时,侦听器不会显示迭代计数(请参见Bug 52496).一种解决方法是在与If Controller相同(或更高)的级别添加采样器.例如,等待时间为0的Test Action采样器(不会生成样本),或者所有字段都设置为False的Debug采样器(以减少样本量).

Listeners don't show iteration counts when a If Controller has a condition which is always false from the first iteration (see Bug 52496 ). A workaround is to add a sampler at the same level as (or superior to) the If Controller. For example a Test Action sampler with 0 wait time (which doesn't generate a sample), or a Debug Sampler with all fields set to False (to reduce the sample size).

另开为:

此错误现已修复,因此将以2.12版本提供

This bug is now fixed so will be available as 2.12

这篇关于JMeter StackOverflow的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆