JMETER |Максимальная емкость виртуальных пользователей - PullRequest
0 голосов
/ 07 февраля 2019

Могут ли некоторые быть достаточно любезны, чтобы сообщить мне, сколько максимальных нагрузок виртуального пользователя может обрабатывать машина JMeter?

Если мы рассмотрим машину с неограниченным ПРОЦЕССОРОМ, ОЗУ.

Ответы [ 4 ]

0 голосов
/ 13 февраля 2019

Давайте проверим это на практике:

  1. Для простейшего пустого плана тестирования добавьте Debug Sampler .
  2. Установите Number of Threads на 2147483648 (Integer.MAX + 1) и запустите тест.JMeter показывает журнал:

    INFO o.a.j.e.StandardJMeterEngine: Starting 0 threads for group Thread Group.

  3. Установите Number of Threads на 2147483647 ( Целочисленное максимальное значение ).Тестовый запуск успешно

    INFO o.a.j.e.StandardJMeterEngine: Starting 2147483647 threads for group Thread Group.

Итак, 2147483647 - это то, сколько потоков JMeter может запустить на одном компьютере.

Но что если мы запустим Удаленное тестирование , учитывая, что вы можете масштабировать свой тест JMeter в облачных сервисах:

Примечание: один и тот же план тестирования выполняется всеми серверами.JMeter не распределяет нагрузку между серверами, каждый выполняет полный план тестирования.Таким образом, если вы установили 1000 потоков и имеете 6 серверов JMeter, вы в конечном итоге добавите 6000 потоков.

0 голосов
/ 07 февраля 2019

Не существует «неограниченного ПРОЦЕССОРА, ОЗУ», но даже если бы он существовал, было бы как минимум 3 дополнительных фактора:

  • Диск
  • Сеть
  • Потенциальная проблема в этом масштабе

Теоретически, поскольку число потоков - это целое число, возможное максимальное значение - Integer.MAX_VALUE, но это абсурд.

Невозможно ответить на ваш вопроспоскольку число потоков зависит от многих факторов, см. этот ответ:

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

Затем вы можете увеличить количество машин с помощью облачного решения или распределенного тестирования.

Если вы хотите больше узнать о нагрузочном тестировании, эта книга может вам помочь.

0 голосов
/ 09 февраля 2019

Согласен, здесь слишком много переменных, чтобы дать ответ.Поскольку каждый виртуальный пользователь в игре потребляет некоторое количество ресурсов из конечного пула ресурсов CPU, DISK, MEMORY и NETWORK, то, как устроен ваш виртуальный пользователь, имеет существенное значение.

Ваше базовое оборудование оказывает влияние какЧто ж.Например, для Ethernet, если вы находитесь в домене коллизий по сравнению с коммутируемым, вы можете обнаружить, что, если вы превысите 35% своего пула ресурсов для сети, ваши показатели ошибок и занятости увеличатся, что приведет к снижению пропускной способности там, где у вас могут быть другие доступные ресурсы.

В других примерах вы, как правило, испытываете некоторый уровень постановки в очередь на ЦП после того, как достигнете 85% ЦП.Будет ли это заметно?Возможно, если хост занят, то ваши виртуальные пользователи замедляются.Черт, я даже наблюдал плохо сконструированный дисковый интерфейс для передачи прерываний по оптоволоконному каналу на нулевой процессор на 8-контактной коробке.После того, как ноль был насыщен, все остальные масштабируемые возможности были выполнены.

В общем случае, максимальный размер блока является плохой идеей из-за проблемы задержек, налагаемых на виртуальных пользователей при уменьшении пула ресурсов, когда ОС вынужденау брокера более высокий доступ к ограниченному оставшемуся пулу.Это верно для всех конечных предметов.Как правило, я никогда не запускаю тест с менее чем тремя хостами: два для основной нагрузки и один для набора элементов управления одного виртуального пользователя каждого типа.Это помогает мне понять в цикле выполнения теста, вызывают ли мои хосты задержки у моих виртуальных пользователей, поскольку и контрольная группа, и неуправляемые хосты должны ухудшаться с одинаковой скоростью.Если они этого не делают, значит, существует проблема с хостом, которую необходимо решить.

Еще одно практическое правило, которого я стараюсь придерживаться, - это не более 50% доступного пула ресурсов, используемого на хостах генератора нагрузки.во время выполнения теста.В этом случае я более консервативен, чем мои сверстники, которые часто подталкивают к 75-80%.Я хочу, чтобы тесты были непротиворечивыми, повторяемыми и очень надежными, когда я обнаружил проблему.Разработчики похожи на родителей - когда вы обнаруживаете проблему с их кодом, для них становится естественным обвинять тест.Они могут разбирать мои тесты в течение всего дня и найдут хорошо документированные контрольные факторы, повторяемость, задокументированные начальные условия, проверку ожидаемых результатов данных (не только HTTP 200).Тесту не нужны очки, ваш код (ребенок) безобразен.

0 голосов
/ 07 февраля 2019

Это будет что-то вроде 2,147,483,647 (максимальное значение 32-разрядное целое число со знаком ) для одного экземпляра.

Если вы пойдете на Распределенное тестирование - вы сможете получить столько же для каждого подчиненного движка JMeter.

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