Siege и тестирование сайта.

Siege — простая, но функциональная утилита для проведения нагрузочного тестирования сайта, умеющая выполнять POST запросы, работать как по http, так и по https, и выполнять авторизацию на сайтах.

В CentOS устанавливаем siege из EPEL репозитория:

# yum install epel-release
# yum install siege

Простой тест запускается командой:

# siege https://sysadmin.pm/

В рамках теста, генерируются подключения от 25 пользователей, по мере выполнения\остановки теста, можно получить отчёт о работе вида:

Конфигурация.

По умолчанию, максимальное количество подключений ограничено 255 пользователями, однако в конфиге можно увеличить это ограничение параметром limit. Также, в конфигурационном файле можно выполнить дополнительную настройку утилиты:

  • Указать, по каким ссылкам на сайте переходить не нужно;
  • Настроить работу с кешированным содержимым;
  • Задать альтернативный useragent;
  • Выбрать конкретную версию HTTP протокола;
  • Включить рандомизацию посещения URL адресов при работе с их списком;
  • Определить параметры для авторизации;
  • Подключить proxy при необходимости.

В CentOS, конфиг siege доступен в /root/.siege/siege.conf

Пишем файл для теста.

Администратор может создать файл для проведения теста, в котором опишет, какие конкретно адреса посещать, в каких скриптах выполнять авторизацию и т. п. Пример такого конфига:

# Формат адресов для siege:
# --
# https://sysadmin.pm/
# https://sysadmin.pm/index.php
# http://www/index.html
# www/index.html
# https://sysadmin.pm/hidepid/
#
# Можно сделать так же и POST запрос напрямую:
# --
# https://sysadmin.pm/post.php POST req=1&cat=2
#
# Либо POST запрос из файла:
# https://sysadmin.pm/post.php POST < /var/sysadmin/post
# -------------------------------------------------------
https://sysadmin.pm/
https://sysadmin.pm/
https://sysadmin.pm/category/budni/
https://sysadmin.pm/page/11/

Далее, остаётся просто запустить тест:

# siege -f sysadmin.pm.txt

Для того, что бы указать количество клиентов при подключении во время тестирования, можно использовать опцию -c:

# siege -c 300 -f sysadmin.pm.txt
# siege -c 100 https://sysadmin.pm

К сожалению, мир так устроен, что обязательно находятся ребята, которые полезный инструмент начинают применять не совсем по назначению. В этом случае, администратору сервера, на сайт которого прилетело большое количество запросов «нагрузочного тестирования» от доброжелателя, стоит как минимум заглянуть в логи, и заблокировать проблемный IP (а возможно и юзерагент). Либо и вовсе настроить ограничение на количество подключений в определённый промежуток времени. Об этом поговорим отдельно.

@SysadminNotes | https://sysadmin.pm

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *