Почему Яндекс Танк не генерирует необходимую нагрузку

У меня есть 2 аналогичных сервера: 16 виртуальных ЦП, 2,4 ГГц, Intel Xeon E5-2676v3, 64 ГБ памяти.

Первый из них генерирует нагрузку, второй обрабатывает запросы.

Конфиг load.ini:

[phantom]
address=0.0.0.0 ;target's address(chanched, of course)
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 в качестве прокси.

Я провел тестирование, используя статические файлы, чтобы проверить второе предложение. Результаты: https://overload.yandex.net/8175

Количество соединений более 2700 = ~200 000. Но это число меньше требуемого в файле load.ini - const(500000,15s).

Вопрос: почему яндекс танд не генерирует необходимую нагрузку? или может я неправильно понимаю результаты?

1 ответ

При среднем времени ответа сервера 250 мс в течение одной секунды каждый фантомный экземпляр может отправлять около 4 запросов в секунду. Таким образом, при заданном по умолчанию количестве фантомных экземпляров (1000) танк физически не может отправить> ~4000rps - у него нет доступных экземпляров, все они заняты отправкой и ожиданием данных.

Вы можете попытаться использовать больше экземпляров, например, определение в [phantom] раздел instances=10000 Он упоминается в https://yandextank.readthedocs.io/en/latest/core_and_modules.html

Другие вопросы по тегам