Сравнение тестов Wrk и Gatling - PullRequest
0 голосов
/ 24 марта 2020

С помощью wrk я запускаю следующую команду:

wrk -t10 -c10 -d30s http://localhost:8080/myService --latency -H "Accept-Encoding: gzip"

В результате я получаю запросы / se c: 15000 без ошибок

Я пытаюсь воспроизвести такой же тест с Гатлингом. Поэтому я попробовал следующее:

scn.inject(
      rampUsersPerSec(1) to 15000 during (30 seconds)
    )

Но в результате я получаю ошибки:

---- Ошибки -------------- -------------------------------------------------- ----

в c .AbstractChannel $ AnnotatedSocketException: Невозможно назначить r 573 (42,44%) эквивалентного адреса: localhost / 127.0.0.1: 8080 в c .AbstractChannel $ AnnotatedSocketException: ресурсный темп 530 (39,26%) крайне недоступен: localhost / 0: 0: 0: 0: 0: 0: 0: 1: 8080 jiIOException: преждевременное закрытие 247 (18,30%)

Из wrk я считаю, что мой сервер может обрабатывать 15000 запросов / с, но с Gatling это не так. У вас есть идея, почему такая разница?

1 Ответ

3 голосов
/ 24 марта 2020

Отказ от ответственности: создатель Гатлинга здесь

Вы сравниваете яблоки и апельсины.

С помощью wrk вы открываете 10 соединений и зацикливаетесь как можно быстрее в течение 30 с.

С вашей текущей настройкой Gatling вы создаете 225 015 виртуальных пользователей ((1 + 15 000) / 2 * 30), каждый из которых пытается открыть свое собственное соединение.

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

Если вы действительно хотите сделать то же самое, что и wrk здесь, вам нужно обернуть свой сценарий в течение (30) l oop и измените свой профиль инъекции на atOnceUsers (10).

У вас также есть возможность использовать общий пул соединений .

Тогда вы не можете ожидать любой другой, чтобы загрузить инструмент тестирования, чтобы быть таким же быстрым, как WRK, для такого вида логического теста.

. Также обратите внимание, что:

  • есть ошибка в конфигурации JVM Гатлинга (будет исправлено в следующем выпуске), что вредит Perfo Романтика в этом виде минималистических тестов со сверхвысокой пропускной способностью, см. выпуск
  • Gatling запускается на JVM, следовательно, со временем выполнения, поэтому ему нужно прогреться, пропускная способность загрузки будет ниже, чем теплый
...