JVM JMeter дает сбой через 10 минут - PullRequest
0 голосов
/ 02 октября 2018

Я использую JMeter с 10 рабами.После выполнения в течение 10 минут происходит сбой Java:


# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000051c39ea0, pid=2488, tid=0x0000000000000ac0
#
# JRE version: Java(TM) SE Runtime Environment (8.0_181-b13) (build 1.8.0_181-b13)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.181-b13 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# V  [jvm.dll+0x69ea0]
#
# Core dump written. Default location: C:\apache-jmeter-3.1\bin\hs_err_pid2488.mdmp
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#  

VM Arguments:
jvm_args: -XX:+HeapDumpOnOutOfMemoryError -Xms512m -Xmx3276m -XX:NewSize=128m -XX:MaxNewSize=128m -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50 -XX:MaxTenuringThreshold=2 -XX:+CMSClassUnloadingEnabled 
java_command: ApacheJMeter.jar
java_class_path (initial): ApacheJMeter.jar
Launcher Type: SUN_STANDARD

Environment Variables:
PATH=C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Amazon\cfn-bootstrap\
USERNAME=XXX
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 85 Stepping 4, GenuineIntel

Мне недавно пришлось увеличить размер кучи Java для всех ведомых устройств и компьютера сервера из-за OutOfMemoryError.все 10 подчиненных устройств имеют 4 ГБ ОЗУ, а серверная машина имеет 16 ГМ ОЗУ.Текущие настройки JMeter: HEAP = -Xms512m -Xmx3276m

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Это не сбой JMeter, а сбой JVM.

В вашей конфигурации много проблем:

У вас есть это:

-Xms512m -Xmx3276m-XX: NewSize = 128m -XX: MaxNewSize = 128m

Удалите их, так как настройка неверна:

-XX: NewSize = 128 м

Также проверьте, работаете ли вы с 10 подчиненными на одной и той же машине:

(куча + размер метапространства + количество потоков x размер стека) x 10 + 300 м <Объем памяти машины </p>

Вы говорите, что у вас есть 5 потоков на ведомое устройство, зачем использовать распределенное тестирование для такого малого числа ведомых устройств?JMeter способен без проблем запускать 1000 потоков на 1 среднестатистическом компьютере.

Наконец, обновите очень старую версию jmeter.

0 голосов
/ 02 октября 2018

Вы работаете с Java 8, но все еще используете старую версию JMeter 3.1,

Пожалуйста, попробуйте использовать последнюю версию 5.0 , которая является первой из перечисленных в рекомендациях JMeter , а также для вашей проблемы сократите как можно больше ресурсов:

  • Используйте режим без графического интерфейса: jmeter -n -t test.jmx -l test.jtl
  • Используйте как можно меньше слушателей;если использовать флаг -l, как указано выше, все они могут быть удалены или отключены.
  • Не используйте прослушиватели «Просмотр дерева результатов» или «Просмотр результатов в таблице» во время нагрузочного теста, используйте их только во время фазы сценариевдля отладки ваших сценариев.
  • Вместо того, чтобы использовать множество похожих сэмплеров, используйте один и тот же сэмплер в цикле и используйте переменные (набор данных CSV) для изменения сэмпла.[Включить контроллер здесь не помогает, так как он добавляет все тестовые элементы в файле в план тестирования.]
  • Не использовать функциональный режим
  • Использовать вывод CSV вместо XML
  • Сохраняйте только те данные, которые вам нужны
  • Используйте как можно меньше утверждений. Используйте наиболее эффективный язык сценариев (см. Раздел JSR223)
...