Привет!
Имеются 2 одинаковых по ресурсам стенда: 16 vCPUs, 2.4 GHz, Intel Xeon E5-2676v3, 64 GiB memory.
На одном генерируется нагрузка, на другом она обрабатывается.
Конфиг load.ini:[phantom]
address=0.0.0.0 ;target's address(намеренно изменен, конечно)
port=443 ;target's port
rps_schedule=step(1000,10000,1000,15s) ;load scheme
ssl=1
header_http = 1.1
headers = [Host: api.somehost.io]
[Content-Type: application/json]
[Connection: close]
uris = /api/test
Ожидается:
Нагрузка будет генерировать ступенчано, начиная с 1 000 RPS, каждые 15 секунд добавляя еще 1 000 RPS и так до 10 000 RPS.
Имеем:
Ожидаем 1000, имеем ~1000 (среднее время отклика 7 мс):
Ожидаем 2000, имеем ~2000 (среднее время отклика 30 мс):
Ожидаем 3000, имеем ~2700 (среднее время отклика 250 мс):
Ожидаем 4000, имеем ~2700 (среднее время отклика 250 мс)::
Распределение времени отклика:
Далее, сколько бы ни увеличивалось планируемое число RPS, фактическое остается в пределах ~ 2700.
Есть предположения:
1. Яндекс Танк "понимает", что сервер перестает справляться с нагрузкой, поэтому далее не увеличивает ее.
2. Не может создать больше подключений к серверу (как проверить?)
Тестируемый url = /api/test обрабатывается rails приложением и проксируется nginx.
Проводил тестирование на статике, чтобы проверить прдположение 2, что сервер не может создать больше подключений. Результаты:
https://overload.yandex.net/8175
Подключений больше, ~200 000, но снова требуемая нагрузка const(500000,15s) не была сгенерирована.
Вопрос: почему Яндекс Танк не генерирует указанную нагрузку? или я неправильно трактую результаты?