Siege — это утилита для нагрузочного тестирования и бенчмаркинга серверов по протоколам HTTP и HTTPS под высокой нагрузкой.
Базовое использование
# Бенчмарк с 10 параллельными соединениями в течение 1 минуты
siege -c 10 -t 1m https://example.com/
Часто используемые параметры командной строки
| Опция | Флаг | Описание |
|---|---|---|
-c N |
--concurrent=N |
Количество одновременно симулируемых пользователей |
-t MINm |
--time=MINm |
Общая длительность теста (напр. 30s, 5m, 1h) |
-r N |
--reps=N |
Количество запросов на пользователя до завершения |
-b |
--benchmark |
Режим бенчмарка (без искусственных пауз между запросами) |
-i |
--internet |
Случайный порядок обхода URL из файла |
-f <file> |
--file=<file> |
Чтение списка целевых URL из файла |
-H <hdr> |
--header=<hdr> |
Добавление пользовательского HTTP-заголовка к запросам |
Тестирование со списком URL из файла
Создайте файл urls.txt:
https://example.com/
https://example.com/api/items
https://example.com/about
Запустите случайную симуляцию интернет-трафика по URL:
siege -i -c 25 -t 2m -f urls.txt
Пояснение выходных метрик
- Availability: Доля успешно обработанных запросов (желательно 100%).
- Elapsed time: Общее время выполнения теста.
- Transaction rate: Обработано запросов в секунду (RPS / пропускная способность).
- Throughput: Объем переданных полезных данных в мегабайтах в секунду.
- Concurrency: Среднее число активных одновременных соединений.