Приложение для нагрузочного тестирования siege
Статья давно не обновлялась, поэтому информация могла устареть.
Siege — это консольное мультипотоковое приложение для нагрузочного тестирования сайтов и серверов. Является мультиплатформенным и доступно под всеми современными ОС. Автор siege - Джеффри Фалмер.
Содержание |
Установка
CentOS
Для установки на Centos потребуется добавить сторонний репозитарий epel
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum update yum install siege
Debian/Ubuntu
apt-get update apt-get install siege
Параметры запуска
Формат запуска siege такой: siege <параметры> Программа может принимать следующие параметры:
'-V'
Вывод на экран текущей версию.
'-h'
Вывод справочной информации.
'-c'
Показывает текущую конфигурацию. Вы можете их менять в файле ~/.siegerc.
'-v '
Подробный вывод информации. Если этот ключ указан, то Siege будет выводить на экран детальную информацию о всех обращениях к серверу, а именно - тип HTTP-протокола, код ответа и адрес обращения. Пример:
HTTP/1.1 200 OK: /cgi-bin/whoohoo.cgi?first=Homer&last=simpson
Эта опция особенно полезна в случае регрессионного тестирования или имитации Интернета, когда программа обращается в широкому кругу адресов.
'-g URL' Совершает обращение к указанной ссылке. Получает заголовки с сервера и выводит их на экран. Отличный инструмент для точечного тестирования.
'-c NUM ' Количество имитируемых пользователей. Опция позволяет производить тестирование веб-сервера с количеством одновременных пользователей указанных в NUM. Фактически это число ограничивается лишь ресурсами компьютера, но на практике для хорошего результата требуется имитировать всего пару сотен пользовательских сессий. Помните, что при любой конфигурации вы всё равно не сымитируйте поведение настоящих людей. Хотя бы потому, что они задерживаются на каждой странице, читая информацию, а не перебирают ссылки одну за другой.
'-i ' Эта опция используется с конфигурационным файлом, содержащим множество ссылок. При её включении Siege случайно выбирает адреса обращений и производит к ним запросы. В реальности вы не можете сказать пользователям, на какие страницы и в какой последовательности они должны заходить. Они будут делать это всегда по-разному. Режим имитации Интернета пытается эмулировать такое поведение. Обратите внимание на то, что в процессе тестирования к некоторым адресам из файла может не произойти обращений вообще, ведь они выбираются случайно.
'-t NUMm ' Время, за которое должно пройти тестирование. Указывается в формате «NUMm», где NUM - это количество единиц времени, а «m» - это модификатор S, M, или H для секунд, минут и часов соответственно. Например, для того чтоб запустить тестирование на час вы можете воспользоваться следующими комбинациями: -t3600S, -t60M, -t1H. Модификатор не чувствителен к регистру, но между ним и числом не должно быть пробелов.
'-f FILE ' Конфигурационный файл содержащий ссылки (SIEGE_HOME/etc/urls.txt). Вы можете использовать эту опцию для того, чтобы указывать другой путь к нему. Например:
siege –file=serverb.txt
'-l’ Эта опция указывает Siege, что она должна записывать всю информацию в лог-файл SIEGE_HOME/var/siege.log. При каждом новом тестировании файл будет дописан.
'-m MESSAGE ' Эта опция позволяет указать выражение, которым будут разделяться записи о разных тестированиях в лог-файле. Вместе с ней не обязательно использовать опцию -l, т.к. она будет включена автоматически. Если выражение в MESSAGE содержит пробелы, не забудьте поместить его в кавычки.
'-d NUM ' Эта опция указывает задержку между обращениями имитируемых пользователей к серверу. Время задержки вычисляется от единицы до введённого числа. При проведении тестирования на ресурсоёмких участках приложения желательно ставить задержку равную секунде ( -d1 ). По умолчанию задержка происходит от 1 секунды до 3. Эта опция позволяет как бы накрывать сервер волнами запросов.
Конфигурационный файл
В случае регулярного использования с практически одинаковыми параметрами, можно использовать конфигурационный файл. Создается он комадой «siege.config» и располагается в корневой директории пользователя «~/.siegerc» Сам конфигурационный файл хорошо прокомментирован.
Примеры запуска
siege -c10 -t60S -b http://domen.ru
Имитирует подключение 10 пользователей к сайту в течение одной минуты. Запросы будут идти даже в случае отсутствия ответов с сервера.
Статистика тестирования
Из всего вывода статистики следует обратить внимание эти пункты:
- Transactions – количество обращений к серверу от всех пользователей.
- Elapsed time – общая продолжительность тестирования с момента первого запроса к серверу и до последнего ответа на последний запрос.
- Data transferred – суммарное количество данных, переданное всеми имитируемыми пользователями. Оно включает в себя как тела запросов, так и их заголовки.
- Response time – среднее время, за которое сервер успел ответить клиенту.
- Transaction rate – среднее число обращений, которые сервер успел обработать за секунду. Оно получается путём деления общего числа запросов на затраченное время.
- Throughput – среднее количество данных, передаваемых ежесекундно от сервера к пользователям.
- Concurrency – количество одновременных подключений, при которых сервер отвечает без задержек.
- Successful transactions – количество запросов на которые сервер ответил.
Ссылки
- Официальный сайт: http://www.joedog.org/index/siege-manual
- Siege для Windows: https://code.google.com/p/siege-windows/