Jmeter Throughput Shaping Timer отправляет больше запросов, чем нужно - PullRequest
1 голос
/ 11 марта 2019

Я использую Jmeter 4.0 с таймером формирования пропускной способности, и я упомянул мою конфигурацию следующим образом:

bzm - группа потоков параллелизма:

  • Целевой параллелизм 1000
  • Время разгона: 1
  • Шаг разгона: 1
  • Целевая скорость удержания: 100 мин

jp @ gc - Запуск таймера формирования пропускной способности RPS: 333 ||Конец Rps: 333 ||Длительность (сек): 1200

Поскольку продолжительность теста упоминается как 1200 секунд, а число оборотов в секунду составляет 333 / сек, поэтому число обращений к запросу в ходе теста должно быть (333 * 1200) = 399600. Но фактическое количество попаданийв диапазоне 400000 - 410000 запросов в секунду.

Как ограничить пропускную способность таймера пропускной способности, чтобы не отправлять дополнительные запросы?

Ответы [ 2 ]

1 голос
/ 11 марта 2019

Ваша общая продолжительность теста isn't 1200 seconds. Что касается ваших конфигураций группы потоков параллелизма, то ваша продолжительность теста составляет ровно 6001 секунды (увеличение на 1000 пользователей составляет 1 секунду, а время удержания целевого показателя составляет 6000 секунд).

Чтобы получить желаемое число запросов в секунду, вы должны следовать приведенной ниже формуле, чтобы определить количество потоков в группах потоков параллелизма:

Размер пула потоков можно рассчитать как RPS * <max response time> / 1000

Если ваше время ответа 1 second, то 333 Threads достаточно для достижения этого RPS. Я думаю, вы использовали больше тем в этом случае.

Согласно вашему заданному плану тестирования, он работает, как будто 1000 пользователей активны в течение 1 секунды, а затем они будут пытаться достичь 333 оборотов в секунду в течение 1200 секунд, а затем будут поддерживать 1000 запросов пользователей в течение оставшегося времени (6001-1220 = 4801 секунд), как вы упомянули, 1000 пользователей будут держать нагрузку в течение 100 минут. По этой причине вы получаете больше запросов, чем нужно.

Итак, определите количество потоков и время нарастания соответствующим образом в ваших группах потоков, а также правильно синхронизируйте продолжительность теста (в этом случае время удержания загрузки может составлять 20 минут, а не 100 минут).

0 голосов
/ 11 марта 2019

JMeter не способен немедленно остановить 1000 потоков, когда Таймер формирования пропускной способности достигает своего предела продолжительности, JMeter "говорит" потокам остановить один проход в 1200 секунд, и может потребоваться некоторое время, чтобы изящно закрыть потокивниз.

Учитывая ваши настройки, единственный способ иметь ровно 399600 сэмплеров - это использовать Пропускной контроллер в режиме Total Executions, например:

enter image description here

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

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