Как получить высокие обороты с конечной точкой https для нагрузочного тестирования JMeter

Я пытаюсь проверить свою конечную точку https с помощью JMeter. Я хочу делать не менее 10000 запросов в секунду, но когда я устанавливаю количество потоков 10000, я получаю намного меньше rps, около 500.

Я пробовал установить количество потоков на 1000 и 100, но неожиданно получаю такое же количество оборотов в секунду. Я использую HTTP Sampler, и для параметра use Keep-Alive установлено значение true. Когда я смотрю статистику, я вижу, что при использовании 100 потоков он использует Keep-Alive и connect_time составляет около 100 мс, но когда количество потоков больше, connect_time растет, это похоже на то, что он перестает повторно использовать соединения.

Я знаю, что это не проблема сервера, потому что я пробовал протестировать ту же конечную точку с Яндекс.Танком и фантомом, и он может легко поддерживать 10000 запросов в секунду, проблема в том, что он не может использовать данные ответа для дальнейших запросов. , поэтому мне нужно использовать JMeter для этой задачи.


person Sergey Chernyaev    schedule 18.06.2019    source источник


Ответы (2)


Это можно сделать с помощью «Группы шаговых потоков». Это позволит вам отправлять 10000 запросов в секунду до указанного времени. См. Изображение ниже.

Шаговая группа потоков

Загрузите банку по ссылке ниже.

https://jmeter-plugins.org/wiki/SteppingThreadGroup/

person piyushpatel974    schedule 19.06.2019
comment
Спасибо за предложение, попробую. - person Sergey Chernyaev; 20.06.2019

Надеюсь, вы пытаетесь добиться этого на одной машине. Попробуйте использовать несколько машин или распределенный режим jmeter.

https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.pdf = "https://www.blazemeter.com/blog/how-to-perform-distributed-testing-in-jmeter/" rel = "nofollow noreferrer"> https://www.blazemeter.com/blog/how- для выполнения-распределенного-тестирования-в-jmeter / https://blazemeter.com/blog/3-common-issues-when-running-jmeter-scripts-and-how-solve-them/

Я предполагаю, что это проблема с машиной, которая не может генерировать такую ​​большую нагрузку. Обычно я использую максимум 300 потоков на машину, но это зависит от конфигурации машины. Просто проверьте, есть ли проблема на компьютере, и несколько компьютеров могут создавать дополнительную нагрузку, учитывая, что на сервере нет проблем.

Надеюсь это поможет.

Обновление: -Обычно на моих современных машинах может обрабатываться 200-500 машин. Пожалуйста, проверьте ссылку ниже, чтобы получить дополнительную информацию: -

1. Каким образом потоки и количество итераций влияют на тест, и каково максимальное значение JMeter. ограничение потока
2. https://www.blazemeter.com/blog/what%e2%80%99s-the-max-number-of-users-you-can-test-on-jmeter/.

person sunny_teo    schedule 19.06.2019
comment
Машина, которую я использую, достаточно мощная, у нее 4 ядра и 64 ГБ ОЗУ, но дело в том, что когда я запускаю JMeter только с 16 потоками, он уже использует весь доступный ЦП и только около 10% ОЗУ. . Кажется, что RPS не меняется, когда я меняю количество потоков с 50 на 100 или 1000. Сколько потоков, по вашему мнению, должна быть в состоянии обработать эта машина? Есть ли какая-то опция jmeter относительно номера потока, который мне не хватает? - person Sergey Chernyaev; 19.06.2019
comment
Пожалуйста, проверьте обновленные ссылки выше .... Для ясности, я давно не копаюсь в этой теме. Но я знаю свои ожидания от «нет». нить и RPS никогда не встречаются. - person sunny_teo; 19.06.2019