Siege (программное обеспечение)
Siege — утилита для нагрузочного тестирования и бенчмаркинга веб-серверов по протоколам HTTP и HTTPS, разработанная Джеффри Фулмером. Она предназначена для веб-разработчиков, чтобы измерять производительность собственного кода под нагрузкой и оценивать устойчивость сервисов в реальных условиях работы в интернете.
Siege распространяется по открытой лицензии GNU GPL, что позволяет свободно использовать, изменять и распространять программу[2].
Что важно знать
| Siege | |
|---|---|
| Тип | инструмент нагрузочного тестирования |
| Разработчики | Jeffrey Fulmer и др. |
| Языки интерфейса | английский |
| Последняя версия | 3.0.9 |
| Репозиторий | github.com/JoeDog/siege/ |
| Лицензия | GPLv3[1] или более поздняя |
| Сайт | joedog.org/siege-home |
Возможности
Siege может подвергать нагрузке как один отдельный URL, так и множество адресов, прочитанных из файла, одновременно. Поддерживаются базовая аутентификация, cookie, протоколы HTTP, HTTPS и FTP[3].
Оценка производительности
В число измеряемых показателей входят затраченное время, объём переданных данных (включая заголовки), время отклика сервера, частота транзакций, пропускная способность, средний уровень параллелизма и количество удачных ответов (код 200). Все эти метрики отображаются в итоговом отчёте после теста[4]
Пример вывода Siege:
Ben: $ siege -u shemp.whoohoo.com/Admin.jsp -d1 -r10 -c25 ..Siege 2.65 2006/05/11 23:42:16 ..Preparing 25 concurrent users for battle. The server is now under siege...done Transactions: 250 hits Elapsed time: 14.67 secs Data transferred: 448,000 bytes Response time: 0.43 secs Transaction rate: 17.04 trans/sec Throughput: 30538.51 bytes/sec Concurrency: 7.38 Status code 200: 250 Successful transactions: 250 Failed transactions: 0
Siege поддерживает три основных режима работы: регрессионный, имитация интернет-трафика и «brute force». В первом случае адреса проходят последовательно (regression), во втором — в случайном порядке (internet simulation); возможна и нагрузка одного URL с заданными параметрами через командную строку (brute force).[4].


