Как потоки и количество итераций влияют на тестирование и каково максимальное значение JMeter. предел потока - PullRequest
29 голосов
/ 20 августа 2010
  1. Не могли бы вы сказать мне максимальный предел нет. потоков, которые я могу использовать в JMeter 2.4 для проведения нагрузочного теста?

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

Пример:

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

совпадает ли это с

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

или есть разница в результатах?

Ответы [ 6 ]

21 голосов
/ 20 августа 2010
  1. Максимальное количество потоков определяется множеством факторов, см. Этот ответ https://stackoverflow.com/a/11922239/460802

  2. Существует большая разница в том, что вы предлагаете.

    • "500 потоков, цикл 1" означает 500 потоков в одно и то же время, выполняя цикл ОДИН РАЗ.
    • "50 потоков, цикл 10" означает только 50 потоков в одно и то же времяцикл ДЕСЯТЬ РАЗ.

Теоретически вы получаете такое же количество результатов (500), но вы попадаете на сервер совсем другим способом.

9 голосов
/ 24 августа 2010

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

5 голосов
/ 02 июля 2016

Это часто встречается, когда мы зацикливаемся после создания сценария и тестовых случаев, нам нужно работать с использованием JMeter, и мы должны зафиксировать значение того, сколько пользователей или потоков разрешено использовать в группе потоков JMeter.Мы не хотим ограничивать ни наш генератор нагрузки, ни наш экземпляр 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 Easy Solutionsдля теста нагрузки JMeter «Недостаточно памяти» сбой должен помочь.

5 голосов
/ 21 декабря 2012

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

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

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

2: Это именно то, что объяснил BlackGaff: "500 потоков, цикл1 "Означает 500 потоков в то же время делать цикл один раз.«50 потоков, цикл 10» Означает, что ТОЛЬКО 50 потоков одновременно выполняют цикл ДЕСЯТЬ РАЗ.

1 голос
/ 21 октября 2018

Существует без ограничения при выполнении потока в Jmeter.Так как это инструмент на основе Java, он использует возможности потока Java.В случае одновременного выполнения потока нам нужно позаботиться о конфигурации компьютера (т. Е. О размере памяти и процессоре).

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...