Проверка нагрузки на web-сервер с ab для Linux и Unix

Проверка нагрузки на web-сервер с ab для Linux и Unix

Хочу рассказать в теме «Проверка нагрузки на web-сервер с ab для Linux и Unix» как можно протестировать нагрузку на сервер. Сделать можно это с утилитой Apache benchmark – это одна из самых простых утилит для тестирования нагрузки на сайты. Поставляется она вместе с веб сервером apache и не нуждается в настройке. Основной задачей apache benchmark (ab)–  это показать каким количеством запросов можно «положить» веб-сервер и как быстро они выполняются.

Для того чтобы воспользоваться утилитой ab, нужно выполнить следующее:

# ab -c 10 -n 100  http://linux-notes.org/

Сейчас я поясню где и что, параметр «-с 10» – задает количество параллельных запросов, «-n 100» — это параметр который задает общее число запросов, а http://linux-notes.org/ – это мой сайт для тестирования.

Сайт для тестирования должен быть вводится в формате :
ab [options] [http[s]://]hostname[:port]/path

утилита ab с опиями

утилита ab с опиями

Все что выдаст можно увидеть у меня на рисунке ниже — это отчёт по нагрузке тестирующего сайта  с помощью утилиты Apache benchmark:

Отчет о проведенной работе утилиты ab

Отчет о проведенной работе утилиты ab

Как видно с рисунка, я использую макбук и тестирую свой сайт. УБЕДИТЕЛЬНАЯ ПРОСЬБА, НЕ ТЕСТИРУЙТЕ ПОЖАЛУЙСТА ДАННЫЙ САЙТ и не выводите его из работы.

Сейчас поговорим о параметрах которые особо важны:

  • Concurrency Level (количество одновременно-отправляемых запросов) — у меня их 10;
  • Time taken for tests (тысяча запросов к серверу ) заняла 103 секунды (полное время на тестирование);
  • Complete requests: успешно получены ответы (100) на всю тысячу запросов;
  • Failed requests (не выполненные запросы) — у меня их 0;
  • Write errors (ошибки записи) — у меня их 0;
  • Total transferred (суммарный объем переданных данных) 8856700 байт;
  • HTML transferred (из них «нужного» HTML) — 8800300 байт;
  • Requests per second [#/sec] (mean)- это среднее количество запросов в секунду и заняло у меня 0.91 сек
  • Time per request: 602.307 [ms] (mean) – втечении этого времени выполнились 10 параллельных запросов
  • Time per request: 60.231 [ms] (mean, across all concurrent requests) – среднее время выполнения одного запроса
  • Transfer rate: это скорость обмена данными с сервером и составила 79.2 кБ за секунду.
  • Percentage of the requests served within a certain time (ms) – доля запросов на единицу времени. Тут видно, что 50% запросов выполнились менеее чем за пол секунды, а самый долгий запрос выполнялся 2 секунды(100% 2044 ms).

Изменяя параметры -n и -c можно отслеживать поведение сервера под нагрузкой.

Параметры ab

  • -c — С данной опцией можно определить количество параллельных запросов.
  • -n —С данной опцией можно определять количество отправляемых запросов на сайт.
  • -t —С данной опцией можно задавать максимальное количество секунд.
  • -C cookie-name=value —С данной опцией можно добавлять cookie в каждый запросу.
  • -H — С данной опцией можно задававть заголовок для запроса.
  • -T —С данной опцией можно задать Content-type.
  • -p —С данной опцией можно задавать файл содержащий тело POST запроса.

Вот и все, моя статья «Проверка нагрузки на web-сервер с ab для Linux и Unix» подошла к завершению.

 

One thought on “Проверка нагрузки на web-сервер с ab для Linux и Unix

  1. Apache Bench, Httperf и Tsung отлично подходят для тестирования нагрузки на большие и маленькие сайты. Но только tsung сможет выжать все соки из веб-сервера и показать на что он способен в условиях, приближенных к реальности. Не забывайте, что сначала все тесты нужно провести для одного пользователя, чтобы проследить зависимость и иметь точку отсчета.

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.