Интерпретация результатов для простого сценария Гатлинга с 1 пользователем и охватом 20000 рупий


Помещение

  1. Rest API в scala / spray
  2. Простой метод, который всегда возвращает ОК
  3. Я стараюсь достичь в среднем 20 тыс. Запросов в секунду
  4. Обе машины (тестирующая и протестированная) хорошо настроены (выделенные серверы EC2, каждый со своим API и Gatling, файлы конфигурации sudo sysctl -w net.ipv4.ip_local_port_range = "1025 65535" echo 300000 | sudo tee / proc / sys / fs / nr_open echo 300000 | sudo tee / proc / sys / fs / file-max, /etc/security/limits.conf, ulimit -a -> 65535)

Это мой простой сценарий тестового файла, всего 1 пользователь:

    setUp(scn.inject(constantUsersPerSec(1) during(60 seconds)))
    .throttle(
              //reachRps(20000) in (60 seconds),
              //holdFor(1 minute)
              //,
              jumpToRps(20000),
              holdFor(1 minutes)
             )
    .protocols(httpConf)

Я пытаюсь достичь 20k rqs (максимум) за 60 секунд или сразу перескакиваю на 20k и поддерживаю его в течение 1 минуты.

Это всегда мои результаты после выполнения скрипта Гатлинга:

Simulation finished
Parsing log file(s)...
Parsing log file(s) done
Generating reports...

================================================================================
---- Global Information --------------------------------------------------------
> request count                                         60 (OK=60     KO=0     )
> min response time                                      0 (OK=0      KO=-     )
> max response time                                      2 (OK=2      KO=-     )
> mean response time                                     1 (OK=1      KO=-     )
> std deviation                                          0 (OK=0      KO=-     )
> response time 50th percentile                          1 (OK=1      KO=-     )
> response time 75th percentile                          2 (OK=2      KO=-     )
> mean requests/sec                                  1.017 (OK=1.017  KO=-     )
---- Response Time Distribution ------------------------------------------------
> t  800 ms  t > 1200 ms                                            0 (  0%)
> failed                                                 0 (  0%)

Я не понимаю, что именно означают эти результаты ... или, возможно, я не настраиваю правильный сценарий для своей цели.

Я пробовал несколько сценариев:

    //setUp(scn.inject(atOnceUsers(20000)).protocols(httpConf))         
    //setUp(scn.inject(Users(200000).ramp(10)).protocols(httpConf))
    //setUp(scn.inject(constantUsersPerSec(20000) during(1 seconds)).protocols(httpConf))           
    //setUp(scn.inject(constantUsersPerSec(20000) during(1 seconds))).protocols(httpConf)
   //setUp(scn.inject(rampUsers(1500) over (60 seconds)))
   //setUp(scn.inject(atOnceUsers(50000)))
   //      .throttle(jumpToRps(50000),
   //                holdFor(1 minutes))
   //      .protocols(httpConf)

   setUp(scn.inject(constantUsersPerSec(1000) during(30 seconds)))
    .throttle(
              reachRps(20000) in (30 seconds),
              holdFor(1 minute)
              //,
              //jumpToRps(20000),
              //holdFor(1 minutes)  
             )
    .protocols(httpConf)

Итак, я не знаю, как настроить мой тестовый файл scala для простого получения такого значения:

> mean requests/sec                                  20000 (OK=20000  KO=-     )

person Lope Roa    schedule 12.08.2015    source источник


Ответы (1)


У вас не получается дроссельная заслонка. Из документации:

Вам по-прежнему нужно вводить пользователей на уровне сценария. Регулирование пытается обеспечить целевую пропускную способность с заданными сценариями и их профилями внедрения (количество пользователей и продолжительность). Это узкое место, то есть верхний предел. Если у вас недостаточно пользователей, вы не дойдете до дроссельной заслонки. Если ваша инъекция длится меньше, чем дроссельная заслонка, ваша симуляция просто остановится, когда все пользователи закончат. Если ваш впрыск длится дольше, чем дроссельная заслонка, симуляция остановится в конце дроссельной заслонки.

Как можно ожидать достижения 20000 оборотов в секунду при только инъекции 1 пользователю в секунду?

person Stephane Landelle    schedule 13.08.2015
comment
Дорогой Стефан, большое спасибо за ваше объяснение. Просто я не понимал концепции Throttle. Тем не менее, я все еще ищу правильную конфигурацию для простого ›получения 20000 средних запросов в секунду (OK = 20000 KO = -). Итак, я пробовал разные примеры, как показывает мой отредактированный вопрос. И продолжаю попытки безуспешно ... - person Lope Roa; 14.08.2015