Поиск по сайту:

Нагрузочное тестирование веб-серверов с помощью инструмента Siege Benchmarking


Знание того, какой объем трафика ваш веб-сервер может обработать в условиях стресса, важно для планирования будущего роста вашего веб-сайта или приложения. Используя инструмент под названием siege, вы можете запустить нагрузочный тест на своем сервере и посмотреть, как ваша система работает в различных обстоятельствах.

Вы можете использовать siege, чтобы оценить объем переданных данных, время ответа, скорость транзакций, пропускную способность, параллелизм и количество раз, когда сервер возвращал ответы. Инструмент имеет три режима, в которых он может работать – регрессия, интернет-симуляция и грубая сила.

Важно: Осаду следует запускать только на серверах, которыми вы владеете или на которых у вас есть явное разрешение на тестирование. В некоторых странах использование Siege на неавторизованных веб-сайтах может считаться преступлением.

Установка утилиты нагрузочного тестирования Siege HTTP в Linux

Siege является мультиплатформенным и может быть установлен в дистрибутивах Ubuntu/Debian и CentOS/RHEL с помощью следующих команд.

Чтобы установить Siege в Debin/Ubuntu, вы можете запустить:

sudo apt install siege

Для CentOS/RHEL вам необходимо установить и включить репозиторий для установки Siege с помощью:

yum install epel-release
yum install siege

Альтернативно, вы можете собрать Siege из исходного кода. Для этого вам потребуется установить build-essential и пакеты разработки.

sudo apt install build-essential       #Ubuntu/Debian
yum groupinstall 'Development Tools'   #CentOS/RHEL

Затем вы можете загрузить Siege с помощью команды wget и установить из исходных кодов, как показано.

wget http://download.joedog.org/siege/siege-latest.tar.gz
tar -zxvf siege-latest.tar.gz
cd siege-*/
sudo ./configure --prefix=/usr/local --with-ssl=/usr/bin/openssl
sudo make && make install

Настройка утилиты нагрузочного тестирования Siege HTTP в Linux

После завершения установки вы можете изменить файл конфигурации siege. Он расположен в /etc/siege/siegrc. Если вы решили собрать пакет из исходного кода, вам придется запустить:

sudo siege.config

При этом будет создан файл siege.conf, расположенный в домашнем каталоге ~/.siege/siege.conf вашего пользователя.

Содержимое файла должно выглядеть примерно так. Обратите внимание, что я раскомментировал директивы logfile и time:

cat siegerc |egrep -v "^$|#"
Пример вывода
logfile = $(HOME)/var/log/siege.log
verbose = false
color = on
quiet = false
show-logfile = true
logging = false
gmethod = HEAD
parser = true
nofollow = ad.doubleclick.net
nofollow = pagead2.googlesyndication.com
nofollow = ads.pubsqrd.com
nofollow = ib.adnxs.com
limit = 255
protocol = HTTP/1.1
chunked = true
cache = false
connection = close
concurrent = 25
time = 1M
delay = 0.0
internet = false
benchmark = false
accept-encoding = gzip, deflate
url-escaping = true
unique = true

При текущей конфигурации siege будет имитировать 25 одновременных пользователей в течение 1 минуты.

Теперь вы готовы начать осаду.

Тестирование загрузки веб-сайта с помощью утилиты сравнительного анализа Siege

Запустить siege довольно просто, вам нужно только указать веб-сайт, который вы хотите протестировать, следующим образом:

siege example.com

Если доступность остается на уровне 100% и нет сбойных подключений, ваша система работала нормально и проблем не было. Также следует следить за временем отклика.

Запустите Siege против нескольких веб-сайтов

Вы можете протестировать несколько URL-адресов, установив siege для чтения их из файла. Вы можете описать URL-адреса в /usr/local/etc/urls.txt следующим образом:

Теперь, чтобы указать siege проверить URL-адреса из файла, используйте опцию -f следующим образом:

siege -f /usr/local/etc/urls.txt

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

  • -C — указать свой файл конфигурации.
  • -q — подавляет вывод Siege.
  • -g – GET, извлекает заголовки HTTP и отображает транзакцию. Полезно для отладки.
  • -c — количество одновременно работающих пользователей, по умолчанию — 10.
  • -r — сколько раз запускать тест.
  • -t — сколько времени выполнять тест. Вы можете указать S, M или H, например: –time=10S на 10 секунд.
  • -d — случайная задержка перед каждым запросом.
  • -b – отсутствие задержек между запросами.
  • -i – симуляция пользователя. Используется для попадания по случайным URL-адресам.
  • -f – проверить URL-адреса из указанного файла.
  • -l – файл журнала.
  • -H — добавить заголовок к запросу.
  • -A – указать пользовательский агент.
  • -T — устанавливает тип контента в запросе.
  • --no-parser — НЕТ ПАРСЕРА, отключить парсер HTML-страниц.
  • --no-follow – не следовать HTTP-перенаправлениям.
Заключение

Siege — мощный инструмент для измерения надежности вашей системы при высокой нагрузке. Веб-разработчики могут использовать его для тестирования своего кода, когда сайт находится под давлением. Всегда следует выполнять тесты с осторожностью, поскольку тестируемый сервер может стать недоступным во время оценки.