Создание нагрузки на сервер -
Посылая большое количество запросов на сервер - можно выяснить сколько нагрузки он может выдержать
тесты с 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-перенаправлениям.