Автор
Тема:

Создание нагрузки на сервер - тесты с siege

 (Прочитано 324 раз)

saitikdev

  • Administrator
  • Неплохо разбираюсь в сайтах
  • *****
  • Сообщений: 2073
  • Karma: +1000/-0
    • Просмотр профиля
Создание нагрузки на сервер -

Посылая большое количество запросов на сервер - можно выяснить сколько нагрузки он может выдержать

тесты с siege

Для начала надо установить эту утилиту:

CentOS
Добавляем сторонний репозиторий epel:
yum install epel-release
После устанавливаем Siege:
 yum install siege

Debian/Ubuntu

Обновляем список доступных пакетов и репозиториев:
apt update
Устанавливаем Siege:
apt install siege

Пример запуска:

можно с параметрами по умолчанию:
siege example.com
или со своими параметрами:
siege -c10 -t60S -b http://domen.ru
Означает запусти 10 юзеров на данный домен и пусть "долбят" запросами 60 секунд.

siege <параметры>
Программа может принимать следующие параметры:
  • '-h' — вывод справочной информации.
  • '-V' — вывод на экран текущей версии.
  • '-С' — показывает текущую конфигурацию. Вы можете их менять в файле ~/.siegerc.
  • '-v ' — подробный вывод информации. Если этот ключ указан, то Siege будет выводить на экран детальную информацию обо всех обращениях к серверу, а именно: тип HTTP-протокола, код ответа и адрес обращения.

-C покажет что-то такое:

CURRENT  SIEGE  CONFIGURATION
Mozilla/5.0 (pc-x86_64-linux-gnu) Siege/4.0.4
Edit the resource file to change the settings.
----------------------------------------------
version:                        4.0.4
verbose:                        false
color:                          true
quiet:                          false
debug:                          false
protocol:                       HTTP/1.1
HTML parser:                    enabled
get method:                     HEAD
connection:                     close
concurrent users:               25
time to run:                    n/a
repetitions:                    n/a
socket timeout:                 30
cache enabled:                  false
accept-encoding:                gzip, deflate
delay:                          0.000 sec
internet simulation:            false
benchmark mode:                 false
failures until abort:           1024
named URL:                      none
URLs file:                      /etc/siege/urls.txt
thread limit:                   255
logging:                        false
log file:                       /var/log/log/siege.log
resource file:                  /root/.siege/siege.conf
timestamped output:             false
comma separated output:         false
allow redirects:                true
allow zero byte data:           true
allow chunked encoding:         true
upload unique files:            true
no-follow:
 - ad.doubleclick.net
 - pagead2.googlesyndication.com
 - ads.pubsqrd.com
 - ib.adnxs.com

как видим по умолчанию 25 юзеров атакуют

'-c NUM '  — количество имитируемых пользователей. Опция позволяет производить тестирование веб-сервера с количеством одновременных пользователей указанных в NUM.


'-d NUM ' — эта опция указывает задержку между обращениями имитируемых пользователей к серверу. Время задержки вычисляется от единицы до введённого числа. При проведении тестирования на ресурсоёмких участках приложения желательно  ставить задержку, равную секунде ( -d1 ). По умолчанию задержка происходит от 1 секунды до 3. Эта опция позволяет как бы накрывать сервер волнами запросов.       

'-f FILE ' — конфигурационный файл, содержащий ссылки (SIEGE_HOME/etc/urls.txt). Вы можете использовать эту опцию для того, чтобы указывать другой путь к нему. Например: siege –file=serverb.txt

'-g URL'  — совершает обращение к указанной ссылке. Получает заголовки с сервера и выводит их на экран. Отличный инструмент для точечного тестирования.

'-i ' — эта опция используется с конфигурационным файлом, содержащим множество ссылок. При её включении Siege случайно выбирает адреса обращений и производит к ним запросы. В реальности вы не можете сказать пользователям, на какие страницы и в какой последовательности они должны заходить. Они будут делать это всегда по-разному. Режим имитации Интернета пытается эмулировать такое поведение. Обратите внимание на то, что в процессе тестирования к некоторым адресам из файла может не произойти обращений вообще, ведь они выбираются случайно.

'-l’ — эта опция указывает Siege, что она должна записывать всю информацию в лог-файл SIEGE_HOME/var/siege.log. При каждом новом тестировании файл будет дописан.

'-m MESSAGE ' — эта опция позволяет указать выражение, которым будут разделяться записи о разных тестированиях в лог-файле. Вместе с ней не обязательно использовать опцию -l, т.к. она будет включена автоматически. Если выражение в MESSAGE содержит пробелы, не забудьте поместить его в кавычки.

'-t NUMm ' — время, за которое должно пройти тестирование. Указывается в формате «NUMm», где NUM — это количество единиц времени, а «m» — это модификатор S, M, или H для секунд, минут и часов соответственно. Например, для того чтоб запустить тестирование на час вы можете воспользоваться следующими комбинациями: -t3600S, -t60M, -t1H. Модификатор не чувствителен к регистру, но между ним и числом не должно быть пробелов.


Сами настройки siege находятся тут:
nano ~/.siege/siege.conf
там можно раскомментировать logfile и time


Вкратце еще раз параметры выше:
-C – указать свой собственный файл конфигурации.
-b – нет задержек между запросами.
-c – количество одновременных пользователей, по умолчанию 25.
-d – случайная задержка перед каждым запросом.
-t – сколько времени будет выполняться тест. Вы можете указать S, M или H. Пример: –time=10S на 10 секунд.

-g – получить, снять заголовки HTTP и отобразить транзакцию. Полезно для отладки.

-r – сколько раз выполнить тест.

-i – пользовательская симуляция. Используется для проверки случайных URL.
-f – проверить URL из указанного файла.
-l – файл журнала.
-q – подавляет вывод siege.
-H – добавить заголовок к запросу.
-А – указать пользовательского агента.
-T – устанавливает Content-Type в запросе.
–no-parser – NO PARSER, отключить анализатор HTML-страницы.
–no-follow – не переходить по HTTP-перенаправлениям.

« Последнее редактирование: Апреля 18, 2023, 06:26:21 pm от saitikdev »
Качественное SeoСео консультации - от специалиста с опытом более 10 лет | Рекомендуем - Лучший хостинг

 

Новые темы IT

Новые темы по Маркетингу