Я хочу сделать нагрузочный тест для моего API с вызовами API 500k.
Я сделал тест JMeter, который читает из CSV-файла токен доступа и с этим токеном выполняет вызов API.
Конечно, с одного компьютера я не могу выполнить столько запросов, поэтому я реализую распределение серверов JMeter, поэтому у меня на AWS один главный и 500 серверов, которые являются подчиненными (t3.medium).
На тесте я установил циклы: 1000 (не очень большое число)
Разгон: 5 секунд. Я хочу, чтобы тест длился 5 секунд. Таким образом, общая загрузка вызовов API 500k должна быть сделана в течение 5 секунд. Неважно, когда тест начнется, но мне нужно сделать все запросы от всех подчиненных серверов в течение этого 5-секундного интервала.
А вот проблема в том, что тест всегда занимает больше времени. Например, для выполнения всех запросов требуется около 3 минут, а средний ответ от сервера составляет около 50 мс.
Как я могу настроить JMeter или что я должен использовать, чтобы гарантировать, что все вызовы API 500k выполняются в течение 5-секундного интервала?
Это пример вывода от мастера:
Starting remote engines
Starting the test @ Thu Nov 08 18:28:02 UTC 2018 (1541701682517)
summary + 1 in 00:00:00 = 4.8/s Avg: 106 Min: 106 Max: 106 Err: 0 (0.00%) Active: 76 Started: 24 Finished: 0
summary + 286890 in 00:00:27 = 10817.9/s Avg: 66 Min: 44 Max: 1363 Err: 0 (0.00%) Active: 2837 Started: 22851 Finished: 25632
summary = 286891 in 00:00:27 = 10732.9/s Avg: 66 Min: 44 Max: 1363 Err: 0 (0.00%)
summary + 40389 in 00:00:30 = 1344.8/s Avg: 67 Min: 45 Max: 1630 Err: 0 (0.00%) Active: 6607 Started: 27937 Finished: 24366
summary = 327280 in 00:00:57 = 5765.6/s Avg: 66 Min: 44 Max: 1630 Err: 0 (0.00%)
summary + 47986 in 00:00:30 = 1600.6/s Avg: 70 Min: 45 Max: 1618 Err: 0 (0.00%) Active: 2847 Started: 70360 Finished: 70549
summary = 375266 in 00:01:27 = 4326.1/s Avg: 67 Min: 44 Max: 1630 Err: 0 (0.00%)
summary + 8420 in 00:00:31 = 274.6/s Avg: 62 Min: 45 Max: 335 Err: 0 (0.00%) Active: 1231 Started: 77129 Finished: 78934
summary = 383686 in 00:01:57 = 3267.9/s Avg: 66 Min: 44 Max: 1630 Err: 0 (0.00%)
summary + 9173 in 00:00:30 = 305.1/s Avg: 59 Min: 45 Max: 1107 Err: 0 (0.00%) Active: 166 Started: 80976 Finished: 83846
summary = 392859 in 00:02:27 = 2663.8/s Avg: 66 Min: 44 Max: 1630 Err: 0 (0.00%)
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary + 107131 in 00:01:11 = 1504.3/s Avg: 72 Min: 45 Max: 1230 Err: 0 (0.00%) Active: -484 Started: 86185 Finished: 88700
summary = 499990 in 00:03:39 = 2286.2/s Avg: 68 Min: 44 Max: 1630 Err: 0 (0.00%)
Tidying up remote @ Thu Nov 08 18:31:41 UTC 2018 (1541701901996)
А вот так выглядит тест JMeter