Каким образом потоки и количество итераций влияют на тестирование и каков максимальный размер JMeter. ограничение потока

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

  2. Есть ли разница в том, чтобы брать все потоки в один цикл или брать меньше нет. потоков и инициализировать цикл, чтобы добиться того же числа. пользователей / потоков?

Пример:

No. of threads=500
Ramp up=1000
Loop=1 

это то же самое, что и

No. of threads=50
Ramp up=100
Loop=10

или есть разница по результату?


person Parvez    schedule 20.08.2010    source источник
comment
хороший вопрос должен выбрать ответ!   -  person tgkprog    schedule 03.10.2013
comment
привет, не могли бы вы принять версию, получившую наибольшее количество голосов, которая является правильным ответом? это поможет другим. Спасибо   -  person UBIK LOAD PACK    schedule 11.09.2018


Ответы (6)



Максимальное количество пользователей зависит от вашей ОС, свободной оперативной памяти и соединения. Win XP ограничена 3000 процессами одновременно. В Linux их больше 3000, но я не знаю, сколько. Будьте осторожны, когда вы тестируете сервер, и если вы запустите 3000 потоков на своей машине, потребуется много ресурсов, и тест не будет реальным. Я предпочитаю запускать максимум 300 пользователей на машину. Если вы хотите увеличить количество пользователей, используйте распределенное тестирование (используйте больше машин в качестве DoS-атаки). Теоретически это такое же количество запросов, но не та же временная сложность.

person Ballon    schedule 24.08.2010

Это очень распространено, чтобы застрять здесь после создания сценария и тестовых случаев, нам нужно запустить с помощью JMeter, и мы должны исправить значение того, сколько пользователей или потоков разрешено использовать в JMeter Thread Group. Мы не хотим ограничивать ни наш генератор нагрузки, ни наш экземпляр JMeter, поэтому в обоих случаях требуется настройка. В противном случае результат теста будет бесполезным, и мы потеряем часы наше время. Итак, вот что нам нужно учитывать:

  • JMeter - это инструмент Java, который запускается с JVM. Чтобы получить максимальные возможности, нам нужно предоставить JMeter максимум ресурсов во время выполнения. Во-первых, нам нужно увеличить размер кучи (внутри каталога bin JMeter мы получаем jmeter.bat / sh)
HEAP=-Xms512m –Xmx512m

Это означает, что размер выделенной кучи по умолчанию составляет минимум 512 МБ, максимум 512 МБ. Настройте его в соответствии с конфигурацией вашего ПК. Имейте в виду, что ОС также требуется некоторый объем памяти, поэтому не выделяйте всю физическую оперативную память.

  • Затем добавьте скорость выделения памяти

NEW=-XX:NewSize=128m -XX:MaxNewSize=512m

Это означает, что объем памяти будет увеличиваться с этой скоростью. Вы должны быть осторожны, потому что, если ваша нагрузка вначале очень высока, может потребоваться ее увеличение. Имейте в виду, что если диапазон слишком велик, он фрагментирует ваше пространство кучи внутри JVM. Если это так, то сборщику мусора нужно усерднее работать над очисткой.

  • JMeter - это приложение с графическим интерфейсом пользователя Java. У него также есть версия без графического интерфейса, которая менее ресурсоемка (ЦП / ОЗУ). Если мы запустим JMeter в режиме без графического интерфейса, он будет потреблять меньше ресурсов, и мы сможем запустить больше потоков.

  • Отключить ВСЕ прослушиватели: во время выполнения теста. Они предназначены только для отладки и используются для разработки желаемого сценария.

Слушатели следует отключить во время нагрузочных тестов. Их включение вызывает дополнительные накладные расходы, которые потребляют ценные ресурсы, необходимые для более важных элементов вашего теста.

  • Всегда старайтесь использовать последнюю версию программного обеспечения. Следите за обновлениями Java и JMeter.

  • Не забывайте, что когда дело доходит до хранения запросов и заголовков ответов, результаты утверждений и данные ответов могут занимать много памяти! Поэтому старайтесь не хранить эти значения в JMeter, если в этом нет крайней необходимости.

Таким образом, если в сценарий JMeter не включены слушатели, отсутствует мониторинг внутри запущенного сервера JMeter, оптимизированы накладные расходы / барьеры сети и сценарии JMeter, то вот приблизительный расчет:

The total number of concurrent user = (total allocable memory)/(Size of all requests)

Вы должны оценить свое количество одновременных пользователей / потоков (активных потоков) только с точки зрения вашего сценария нагрузки.

Кроме того, вам необходимо следить за тем, Memory consumption, CPU usages на ваших серверах ниже 80% или нет. Если количество таких случаев превышает 80%, считайте эти тесты ненадежными, как отчет.

Для лучшего и более подробного понимания этих двух блогов Как много пользователей может поддерживать JMeter? и 9 простых решений при сбое« Недостаточно памяти »при нагрузочном тесте JMeter должны помочь.

person Adnan    schedule 02.07.2016
comment
Ответ @Adnan - лучший ответ), но, к вашему сведению, я запустил 1000 одновременных потоков на m4.2xlarge в AWS, не беспокоясь. - person Kevin Schroeder; 21.08.2017

1: Конечно, это во многом зависит от машины, на которой запущен JMeter, но если пробег имеет значение, я могу дать вам несколько советов. JMeter позволяет запускать несколько процессов в одном окне, и обычно он довольно надежно генерирует до 200 потоков на экземпляр JMeter. Если вам нужно больше, я бы рекомендовал использовать несколько экземпляров JMeter. Современная машина с некоторыми настройками может легко генерировать от 500 до 1000 потоков. При использовании Linux вам, вероятно, потребуется увеличить максимальное количество файловых дескрипторов (см. здесь).

Это очень помогает запускать JMeter без графического интерфейса, записывая отчетные / графические данные в файл для последующего рендеринга. Вы также должны обратить внимание на свои сетевые ограничения. Серверу в сети Гбит / с было бы легко сгенерировать несколько тысяч запросов, но ноутбук, использующий маршрутизатор со скоростью 54 Мбит / с, будет гораздо более ограниченным. Попробуйте разделить фактическое подключение к серверу по размеру запросов, и тогда вы узнаете, ограничит ли вас пропускная способность. Обратите особое внимание на конфигурацию JMeter, чтобы загружать или не загружать файлы, указанные в ответе HTML.

Надеюсь, я смог помочь.

2: Это именно то, что объяснил BlackGaff: «500 потоков, цикл 1» означает 500 потоков ОДНОВРЕМЕННО, выполняющих цикл ОДИН РАЗ. «50 потоков, цикл 10» означает, что только 50 потоков ОДНОВРЕМЕННО выполняют цикл ДЕСЯТЬ РАЗ.

person blpsilva    schedule 21.12.2012

В Jmeter нет ограничений на выполнение потоков. Поскольку это инструмент на основе Java, он использует возможности потока Java. В случае одновременного выполнения потока нам необходимо позаботиться о конфигурации машины (т.е. о размере памяти и ЦП).

Чтобы избежать OutOfMemory проблемы, попробуйте запустить jmeter в режиме NON-GUI с настраиваемыми аргументами времени выполнения java в jmeter скрипте внутри apache-jmeter/bin/jmeter. По умолчанию 512 МБ.

person Harit Kumar    schedule 21.10.2018

  1. Я не думаю, что для самого JMeter существует какое-либо ограничение потока, если ваша машина может с этим справиться. Основная идея тестирования должна заключаться в том, что переключение потока и время ожидания не должны слишком сильно влиять на фактические показатели производительности.

  2. Между этими двумя случаями огромная разница. В первом случае, худшем сценарии, у вас будет 500 одновременных пользователей. Во втором случае максимальное количество одновременных пользователей будет 50. Среднее время для сценария 1 будет больше, чем среднее время для сценария 2.

person Rajan    schedule 08.10.2013