← Ко всем open source проектам

wrk

wg/wrk

wrk — современная утилита для нагрузочного тестирования HTTP на одной многоядерной машине.

Форки 3,031
Автор wg
Язык C
Лицензия NOASSERTION
Обновлено 2026-06-27

Что это такое

wrk — утилита для нагрузочного тестирования HTTP. Она рассчитана на то, чтобы с одной многоядерной машины создавать значительную нагрузку на тестируемый сервис.

Проект сочетает многопоточную модель и масштабируемые механизмы уведомлений вроде epoll и kqueue. Благодаря этому wrk не пытается быть большой платформой мониторинга, а делает одну задачу быстро и предсказуемо.

Его часто используют перед релизом сервиса, при сравнении настроек веб-сервера, после оптимизации кода или при проверке, выдерживает ли локальный стенд заданное число соединений.

Что внутри

Основная команда задает количество потоков, число соединений, длительность теста и адрес. На выходе пользователь получает задержки, число запросов и пропускную способность.

Отдельная возможность — LuaJIT-скрипты. Они позволяют генерировать разные HTTP-запросы, обрабатывать ответы и добавлять собственные отчеты, когда простого GET-запроса недостаточно.

wrk не хранит долгую историю и не строит красивые панели. Его сила в коротком эксперименте: запустить нагрузку, увидеть цифры, изменить параметр и повторить.

Как используют

Типичный сценарий — локальная проверка API или страницы перед более тяжелыми испытаниями. Инженер запускает wrk с понятной длительностью, сравнивает несколько вариантов и смотрит не только среднее время, но и хвост задержек.

Инструмент хорошо подходит для сравнения конфигураций: число процессов сервера, размер пула соединений, кеширование, сжатие, работа прокси или изменение обработчика.

Ограничение в том, что wrk легко запустить неправильно. Если машина-клиент слабее сервера, сеть узкая или сценарий не похож на реальный трафик, цифры будут красивыми, но бесполезными.

Пример теста

Команда запускает 30-секундный тест с 12 потоками и 400 открытыми соединениями — классический базовый пример для быстрой оценки.

Базовый HTTP-тест

Пример фиксирует поток, соединения и длительность, чтобы результат можно было повторить после изменения сервера.

Язык: Bash
wrk -t12 -c400 -d30s http://127.0.0.1:8080/index.html

Сильные стороны и ограничения

Сильная сторона wrk — малый вес и честная фокусировка на HTTP-нагрузке. Он быстро дает ориентир и хорошо подходит для повторяемых сравнений.

Для полноценной проверки продукта одного wrk мало. Нужны реальные сценарии пользователей, данные, авторизация, прогрев кешей, наблюдение за сервером и проверка ошибок.

wrk подойдет разработчикам серверов, администраторам и тем, кто оптимизирует HTTP-слой. Если нужно моделировать долгую пользовательскую сессию с браузером, стоит брать инструмент другого класса.