3

Я использую 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 ответ1

2

Вышеуказанная конфигурация не означает 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .