Как смоделировать нагрузочный тест 500tps с помощью JMeter
Я использую JMeter для тестирования моего REST API. API должен обрабатывать около 100 т / с нагрузки. Я использую следующее оборудование для генерации нагрузки:
CPU - 8 Cores
RAM - 16 Gb
3.0 GHz Intel Xeon Platinum Processor
_JAVA_OPTIONS = -Xms1g -Xmx12g
Теперь у меня есть один запрос HTTP GET. Моя конфигурация JMeter:
number of users - 10000
ramp up time - 100 seconds
Вышеуказанная конфигурация означает 100 одновременных пользователей в секунду, и этот один запрос равен 1 транзакции в секунду. Я правильно понимаю? Кроме того, как я должен планировать тестировать мой API для загрузки 500tps? Моему серверу не хватает памяти, если я увеличу количество потоков.
1 ответ
Вышеуказанная конфигурация не означает 100 одновременных пользователей. Это тоже не значит one request is equal to 1 trasaction per second
что бы вы ни имели в виду под этим.
Вышеуказанная конфигурация означает, что
- JMeter будет запускать 100 пользователей каждую секунду
- Пользователи начнут выполнять запрос так быстро, как могут
- Как только виртуальный пользователь завершит запрос, он будет закрыт
Фактическое число одновременных пользователей и транзакций в секундах зависит от времени отклика вашего сервера, т.е. если время отклика будет 1 секунда - у вас будет 100 транзакций в секунду, если время отклика будет 2 секунды - у вас будет 50 транзакций в секунду, если время отклика будет 0,5 секунды - у вас будет 200 транзакций в секунду.
Если ваша цель - набрать 100 или 500 т / с, я бы рекомендовал использовать комбинацию " Пропускная способность" и " Группа потоков параллелизма". Их можно объединить с помощью функции обратной связи, чтобы JMeter автоматически запускал новые потоки для достижения / поддержания определенного параллелизма.
Оба тестовых элемента могут быть установлены с помощью JMeter Plugins Manager