Ответ 1
Сколько памяти вы выделили для JVM? Где-то около 512 МБ?
Конфигурация
java -Xms<initial heap size> -Xmx<maximum heap size>
Я столкнулся с ошибками OutOfMemor, и JMeter перестает работать....
java.lang.OutOfMemoryError: Java heap space Dumping heap to
java_pid4412.hprof ... Heap dump file created [591747609 bytes in
71.244 secs] Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space Exception in thread
"AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError:
Java heap space Exception in thread "AWT-EventQueue-0"
java.lang.OutOfMemoryError: Java heap space
Как это можно решить?
Моя система имеет очень хорошие характеристики, такие как 16 ГБ оперативной памяти, 2x четырехъядерные процессоры с жестким диском емкостью 146 ГБ.
Кто-нибудь может мне помочь?
Сколько памяти вы выделили для JVM? Где-то около 512 МБ?
Конфигурация
java -Xms<initial heap size> -Xmx<maximum heap size>
Дамп Heap показывает, что вы используете настройки JMeter по умолчанию, равные 512 Mo. поэтому даже если у вас есть 16 ГБ, вы не используете их.
Заменить стандартную JVM по умолчанию в jmeter.bat на нужный размер:
set HEAP=-server -Xms768m -Xmx768m -Xss128k
set NEW=-XX:NewSize=1024m -XX:MaxNewSize=1024m
Также смотрите:
Чтобы оптимизировать OutOfMemoryError
, выполните следующие действия:
JMeter - это инструмент Java, который работает с JVM. Чтобы получить максимальную возможность, мы должны предоставить максимальные ресурсы JMeter во время выполнения. Во-первых, нам нужно увеличить размер кучи (внутри каталога bin JMeter, мы получаем jmeter.bat/sh
).
HEAP=-Xms512m –Xmx512m
Это означает, что размер выделенной кучи по умолчанию составляет минимум 512 МБ, не более 512 МБ. Настройте его согласно конфигурации собственной машины. Следует также иметь в виду, что OS также нуждается в некотором объеме памяти, поэтому вся физическая RAM не должна выделяться.
JMeter - это приложение Java GUI. Он также имеет версию без GUI, которая очень ресурсоемкая (CPU/RAM). Если мы запустим Jmeter в режиме без GUI, он будет потреблять меньше ресурсов, и мы можем запустить больше потоков.
Слушатели должны быть отключены во время нагрузочных тестов. Включение их вызывает дополнительные накладные расходы, которые потребляют ценные ресурсы, необходимые для более важных элементов вашего теста.
Java и JMeter должны обновляться.
Когда дело доходит до хранения запросов и заголовков ответов, результаты утверждения и данные ответа могут потреблять много памяти! Поэтому разумно попытаться не хранить эти значения на JMeter, если это не необходимо.
Следующие JVM-аргументы в сценариях запуска JMeter также могут быть добавлены или изменены:
1. Добавьте скорость выделения памяти:
NEW=-XX:NewSize=128m -XX:MaxNewSize=512m
Это означает, что память будет увеличена с такой скоростью.
2. -server
- это переключает JVM в "серверный" режим с оптимизацией параметров времени исполнения. В этом режиме JMeter запускается медленнее, но общая пропускная способность будет выше.
3. -d64
- При использовании 64-разрядной ОС, используя этот параметр, явным образом скажу JVM о запуске в 64-разрядном режиме.
4. -XX:+UseConcMarkSweepGC
- это заставляет использовать сборщик мусора CMS. Это снизит общую пропускную способность, но приведет к гораздо более коротким сборкам мусора с интенсивным процессором.
5. -XX:+DisableExplicitGC
- это не позволяет приложениям вызывать дорогостоящие сборки мусора и помогает избежать неожиданных пауз.
Для лучшего и более продуманного понимания, этот блог о 9 Простые решения для теста загрузки JMeter "Недостаточно памяти" неэффективны.
У меня также была эта проблема, и неважно, насколько я настроил конфигурацию java -Xms<initial heap size> -Xmx<maximum heap size>
, поскольку у меня всегда заканчивалась память. В конце концов я узнал, что запуск JMeter в режиме графического интерфейса (особенно со слушателями) вызывает узкое место. Лучший способ использовать JMeter, особенно для расширенного тестирования или запуска нескольких подчиненных серверов, находится в режиме без GUI, который выглядит примерно так:
jmeter -n -t testplan.jmx -r
Проверьте эту ссылку и прочитайте, как выполнить удаленное тестирование надлежащим образом: http://wiki.apache.org/jmeter/JMeterFAQ#How_to_do_remote_testing_the_.27proper_way.27.3F. Прочтите раздел о дистанционном тестировании "правильный путь".
Надеюсь, что это поможет.
Вы должны проверить, не используете ли вы прослушиватель результатов дерева во время тестов со многими пользователями.
Проверьте лучшие методы jmeter, чтобы избежать подобных проблем.
Привет
Хотя ваш сервер имеет 16 ГБ оперативной памяти, размер кучи JMeter по умолчанию составляет 512 МБ, увеличьте размер кучи, выполнив следующие шаги
1. Open jmeter file using vi editor /text editor
2. Search for "HEAP"
3. Change minimum (-Xms) and Maximum (-Xmx) heap values as you required
4. Save and quit (!wq enter)
5. Start Jmeter by sh jmeter.sh or bash jmeter.bat or java -jar ApacheJMeter.jar
Вы должны изменить HEAP SIZE в файле jmeter.bat. Сначала вам нужно преобразовать размер 2GB или 6GB (или размер, который вы хотите поместить) в mb, а затем сохранить и перезапустить файл .bat.
Установленное значение для "set HEAP = - Xms512m -Xmx512m"
В Jmeter версии 3.x упоминается в $JMETER_HOME/bin/jemter.sh(jmeter.bat):
## Переменные окружения:
## JVM_ARGS - необязательные аргументы java, например. -Dprop = значение
##, например,
## JVM_ARGS = "- Xms512m -Xmx512m" jmeter.sh и т.д.
поэтому в вашем случае вы можете установить его настолько, насколько это необходимо для ваших потребностей, например:
JVM_ARGS="-Xms1024m -Xmx1024m"
Запустите Jmeter в режиме без графического интерфейса. Увеличьте размер кучи памяти. Добавить очень меньше/нет слушателей. Для запуска Jmeter в режиме без графического интерфейса перейдите в каталог bin и откройте командную строку в этом окне. используйте следующую команду "jmeter.bat -n -t Test.jmx -l Test.csv" здесь Test.jmx - это тестовый файл, который мне нужно открыть в режиме без графического интерфейса, а Test.csv - файл, в котором я нужны мои результаты хранятся. Для увеличения размера памяти используйте команду HEAP = "-Xms512m -Xmx2048m", здесь 512 - это уже выделенная память, а 2048 - это память, которую мне нужно выделить для Jmeter.
Надеюсь это поможет
Отрегулируйте размер кучи, как указано в других ответах, а также учтите некоторые лучшие методы.
Эти 2 элемента будут значительно увеличивать вашу производительность и использование размера кучи
Многие из этих ответов устарели. В настоящее время используется jmeter v5.1.1 r1855137:
# Set var to increase available memory
JVM_ARGS="-Xms2048m -Xmx4096m"
# Run jmeter via sh script, e.g.:
/jmeter/5.1.1/libexec/bin/jmeter.sh -n -t testfile.jmx -l results.jtl -j log.txt
Вы можете убедиться, что увеличение памяти доступно через файл log.txt, который покажет следующее, используя указанные выше значения:
INFO o.a.j.JMeter: Max memory =3817865216