2014-09-18 4 views
1

Я использую JMeter 2.11. Следующие параметры определены в файле jmeter.bat:JMeter StackOverflow

set HEAP=-Xms512m -Xmx12144m 

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

Я бег моего сценария в пакетном режиме с 50 пользователями. Кажется, что некоторые потоки блокируются в течение 20 минут или 1 часа и снова запускаются после. Например, мы имеем следующую с единичной группы 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, то есть 1П10 после таймерами. Журнал нашего сервера приложений показывает, что последний запрос никогда не обрабатывался из-за таймаута сеанса веб-приложения IIS . Поэтому это означает, что JMeter сделал паузу более чем за час до отправки запроса. Следует отметить, что если мы удалим оператор JMeter во время нашего сценария, он будет работать.

Я извлекаю эту информацию из журналов JMeter. Кажется, проблема связана с JMeter с переполнением стека.

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 

Я попытался изменить параметры JMeter.bat с помощью -XSS, но у нас были побочные эффекты. Я также провел тест с такими параметрами:

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 пользователей одновременно ...

С уважением

Сильви

ответ

0

2014/09/16 10:31:37 WARN - jmeter.control .GenericController: обнаружен StackOverflowError

Эта ошибка может возникнуть, если в вашем плане тестирования имеется логическая ошибка. Пожалуйста, внимательно ознакомьтесь с добавлением прослушивателя beanshell для распечатки дополнительных журналов в пределах Логический контроллер, такой как looping/iterating контроллер в вашем плане тестирования.

3

Издание было связано с ноу ошибкой в ​​версии 2.11:

Слушатели не показывают счетчиков цикла, когда контроллер Если есть условие, которое всегда ложно от первой итерации (см Bug 52496). Обходной путь заключается в том, чтобы добавить пробник на том же уровне, что и (или превосходить) контроллер If. Например, пробоотбор Test Action с 0 временем ожидания (который не сгенерирует образец) или Debug Sampler со всеми полями, установленными в False (чтобы уменьшить размер выборки).

открыт Также как:

Эта ошибка теперь установлена ​​так будет доступна как 2.12

0

Я считаю, что в «набор КУЧА = -Xms512m - Xmx12144m "оба значения должны быть одинаковыми. Я думаю, что если вы попробуете «установить HEAP = -Xms2048m -Xmx2048m», ошибка исчезнет.

0

Просто увеличьте размер стека jmeter с помощью опции -Xss