Ошибка jmeter с ошибкой вне памяти
При попытке запустить jMeter с 50 или более пользователями он выдает OutOfMemoryError:
2013/12/18 13:35:15 ERROR - jmeter.threads.JMeterThread: Error processing Assertion java.lang.OutOfMemoryError: Java heap space
2013/12/18 13:35:15 ERROR - jmeter.threads.JMeterThread: Error processing Assertion java.lang.OutOfMemoryError: Java heap space
2013/12/18 13:35:15 ERROR - jmeter.threads.JMeterThread: Error processing Assertion java.lang.OutOfMemoryError: Java heap space
2013/12/18 13:35:15 ERROR - jmeter.threads.JMeterThread: Error processing Assertion java.lang.OutOfMemoryError: Java heap space
2013/12/18 13:35:16 ERROR - jmeter.threads.JMeterThread: Test failed! java.lang.OutOfMemoryError: Java heap space
2013/12/18 13:35:17 ERROR - jmeter.threads.JMeterThread: Test failed!
Я попытался увеличить размер кучи, но все равно получаю ту же ошибку.
Даже я попытался удалить всех слушателей, но ничего не изменилось.
Ответы
Ответ 1
Похоже, у вас просто отсутствует Java Heap Space. Это нормально, так как JMeter по умолчанию имеет очень низкое распределение кучи. Он управляется с помощью параметра -Xmx
.
В jmeter.bat
или jmeter.sh
script есть строка, в которой рекомендуется запустить JMeter как
JVM_ARGS="-Xms512m -Xmx512m" jmeter.sh
Вы можете попробовать увеличить максимальную кучу, пока не прекратите получать эти ошибки. Я бы рекомендовал установить его примерно на 80% вашей аппаратной ОЗУ.
Также рассмотрите статью JMeter Performance and Tuning Tips, чтобы отключить прослушиватели, потребляющие память, не накладывать надписи, эффективно использовать постпроцессоры и т.д.
Ответ 2
После увеличения размер кучи в файле bat удалит весь прослушиватель из плана тестирования. Затем запустите ваш script и увидите волшебство. Теперь вы не получите ошибка из памяти в jmeter
Наслаждайтесь!
Ответ 3
в Jmeter 3.x. для решения этой проблемы есть два шага.
Шаг 1, чтобы изменить память JVM в пакетном файле JMeter
## ==============================================
## Environment variables:
## JVM_ARGS - optional java args, e.g. -Dprop=val
##
## e.g.
## JVM_ARGS="-Xms512m -Xmx512m" jmeter etc.
##
## ==============================================
это значение по умолчанию в jmeter.sh, в соответствии с вашей средой:
JVM_ARGS="-Xms512m -Xmx2048m"
в jmeter.bat:
set JVM_ARGS=-Xms512m -Xmx2048m
Шаг 2, чтобы изменить HEAP = "- Xms512m -Xmx512m" в пакетном файле JMeter:
в jmeter.sh
HEAP="-Xms512m -Xmx2048m"
в jmeter.bat:
set HEAP=-Xms512m -Xmx2048m
Ответ 4
также вы всегда должны использовать запуск тестового не-gui-режима.
Ответ 5
Откройте bin/jmeter.bat на окнах или bin/jmeter.sh на linux,
найдите эту строку:
set HEAP=-Xms512m -Xmx512m
Эта переменная передается как аргумент jmeter при запуске.
Увеличьте значение heapsize по умолчанию следующим образом:
set HEAP=-Xms1024m -Xmx1024m
Вы можете добавить больше места, если у вас есть доступ, и если jmeter нужно больше.
Надеюсь, что это поможет.
Ответ 6
Существует много причин, по которым JMeter потребляет много памяти:
- Использование и злоупотребление Слушатели пользовательского интерфейса,
- Запуск теста в режиме пользовательского интерфейса: вместо этого выполните тест в пакетном режиме
- JMeter SaveService плохо настроен: вы сохраняете запросы и ответы в JTL?
- Слишком много потоков на генератор нагрузки JMeter? Обычно менее 1000 на двигатель должно быть в порядке, но это также зависит от сложности script. См. Удаленное тестирование для запуска JMeter в Распределенный режим.
Тонкая настройка кучи - это всего лишь один из способов устранения этих проблем:
JVM_ARGS="-Xms512m -Xmx512m" jmeter.sh
Отъезд JMeter Out Of Memory: 12 способов исправить их для еще более ценных советов.
Ответ 7
Мой один лайнер для этого на Mac (jmeter - скрипт bash в этом случае):
$ JVM_ARGS = "-Xms4g -Xmx4g -XX: NewSize = 4g -XX: MaxNewSize = 4g" && export JVM_ARGS && jmeter