Close

Нагрузочное тестирование. WRK

В этой статье я расскажу о простом способе протестировать нагрузкой какое-либо веб-приложение с использованием утилиты wrk.
Репозиторий программы находится тут https://github.com/wg/wrk
Для установки нужно загрузить себе исходники и скопмилировать программу, для этого нужны компиллятор, git и ssl библиотеки.

После полученный исполняемый файл можно перенести в директорию с бинарниками:

 

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

Параметры:

-t8: Устанавливает работу в восемь потоков.

-c200: Открывает 200 соединений.

-d30s: Продолжительность теста 30 секунд.

—timeout 2s: Таймаут на запросы по 2 секунды.

http://localhost:8080/api Приложение, которое мы тестируем (слушает порт 8080, path /api).

 

Получаем следующий результат:

Опишем какие значения что демонстрируют. Первые две строки описывают конфигурацию теста.

Дальше идут статистические данные о запросах. Среднее, максимальное время и другие.

Следом идут данные о количестве запросов, ошибках, полученных данных.

Как можно понять, всего было сделано 785314 запроса за 30 секунд, тоесть 26177.13 запросов в секунду.

 

Обычно тесты запускаются для нескольких конфигурациях приложения, с использованием различных модулей и библиотек и т.п. Лучший результат теста показывает высокое значение Requests/sec и в то же время низкое Latency.

Помимо wrk существуют и другие утилиты для нагрузочного тестирования, например, yandex-tank. https://github.com/yandex/yandex-tank.

Поделиться: