Знание того, сколько трафика может выдержать ваш веб-сервер при критических нагрузках, важно для планирования будущего масштабирования вашего сайта или приложения. Используя инструмент под названием Siege Benchmarking Tool, вы можете запустить нагрузочный тест на вашем сервере и посмотреть, как ваша система работает в различных условиях.
Вы можете использовать siege, чтобы оценить объем передаваемых данных, время отклика, скорость транзакции, пропускную способность, сколько раз сервер возвращал ответы/терял пакеты. У инструмента siege есть три режима, в которых он может работать — regression, internet simulation и brute force.
Важно: Siege следует запускать только на тех серверах, которыми вы владеете или на которых у вас есть явное разрешение на тестирование. В некоторых странах использование siege на несанкционированных сайтах может считаться преступлением и уголовно наказуемо.
Установка утилиты Siege HTTP Load Testing в 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 и development:
$ 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 Load Testing Utility в Linux
После завершения установки вы можете настроить файл конфигурации siege. Он находится в /etc/siege/siegerc. Если вы решили собрать пакет из исходного кода, вам необходимо выполнить следущее:
$ 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 Benchmarking Utility
Работать с siege довольно просто, вам нужно только указать веб-сайт, который вы хотите проверить, следующим образом:
# siege example.com
Если доступность поле «availability» было на уровне 100% и у вас нет неудачных соединений, значит, ваша система работала хорошо и проблем не возникло. Также рекомендуем вам следить за временем отклика.
Запуск siege для нескольких веб-сайтов
Вы можете проверить несколько URL-адресов, используя siege. Для этого вам необходимо прочитать эти URL прямо из файла. Вы можете указать URL в /usr/local/etc/urls.txt следующим образом:
Теперь, чтобы указать siege проверить URL-адреса из файла, используйте параметр -f, например:
# siege -f /usr/local/etc/urls.txt
Вы также можете использовать различные параметры командной строки, если хотите попробовать настройки, отличные от описанных в файле конфигурации:
- -C — указать свой собственный файл конфигурации.
- -q — подавляет вывод siege.
- -g — получить, снять заголовки HTTP и отобразить транзакцию. Полезно для отладки.
- -c — количество одновременных пользователей, по умолчанию 10.
- -r — сколько раз выполнить тест.
- -t — сколько времени будет выполняться тест. Вы можете указать S, M или H. Пример: –time=10S на 10 секунд.
- -d — случайная задержка перед каждым запросом.
- -b — нет задержек между запросами.
- -i — пользовательская симуляция. Используется для проверки случайных URL.
- -f — проверить URL из указанного файла.
- -l — файл журнала.
- -H — добавить заголовок к запросу.
- -А — указать пользовательского агента.
- -T — устанавливает Content-Type в запросе.
- —no-parser — NO PARSER, отключить анализатор HTML-страницы.
- —no-follow — не переходить по HTTP-перенаправлениям.
Итоги
Siege — это мощный инструмент для измерения надежности вашей системы в условиях высокой нагрузки. Siege может быть использован веб-разработчиками для проверки своего кода, когда сайт находится на этапе разработки/тестирования. Всегда выполняйте любые тесты с осторожностью, поскольку тестируемый сервер может стать недоступным на время тестирования.
Cпасибо за уделенное время на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco и Linux с трудоустройством!
- Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
- Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
- Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
- Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
- Если хотите индивидуальный график — обсудим и осуществим.
- Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- отредактировать резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.