Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Нагрузочное тестирование web-сервера при помощи ab Apache HTTP server benchmarking tool

Лекция



Привет, Вы узнаете о том , что такое нагрузочное тестирование web-сервера при помощи ab apache http server benchmarking tool, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое нагрузочное тестирование web-сервера при помощи ab apache http server benchmarking tool , настоятельно рекомендую прочитать все из категории Качество и тестирование программного обеспечения. Quality Assurance..

Пока ваш веб-сервер работает стабильно и стабильно отдает посетителям запрошенный контент — все в порядке. Но задавали ли вы себе вопрос: а что будет, если нагрузка на сервер возрастет? Что, если количество запросов на единицу времени увеличится вдвое? Втрое? В десять раз? Как узнать ответ на это злободневное «а что если?». В сегодняшней заметке мы рассмотрим основы нагрузочного тестирования веб-серверов при помощи утилиты ab — Apache HTTP server benchmarking tool, инструмента, который позволит вам определить максимально возможное количество одновременных запросов, которые сможет обработать ваша инсталляция веб-сервера.

Нагрузочное тестирование web-сервера при помощи ab Apache HTTP server benchmarking tool

 

Приготовления

Утилита ab поставляется в комплекте с Apache, так что если он у вас установлен — у вас есть уже все необходимое. В сегодняшней заметке мы будем упражняться на установленном в конфигурации по умолчанию Apache 2.2.14 в Ubuntu Server 10.04.2 LTS. Конфигурацию оборудования (кому интересно — оно довольно слабенькое) и настроек Apache приводить не буду, ибо нет смысла в рамках данной статьи. Целью данной заметки является небольшой обзор утилиты ab, а не анализ производительности конкретного ПО на конкретном железе. В рамках примера произведем тест отдачи сервером:

  • HTML-файла test.html размером 177 байт;
  • небольшого PHP-сценария test.php, код которого приведен ниже.

Все файлы размещены в корне DocumentRoot сервера. Код PHP-сценария использовался такой:

 

 

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

Запрос html-файла

Итак, начнем. Для начала давайте организуем нагрузку нашему серверу в одну тысячу последовательных запросов. Для указания числа запросов используется опция '-n'. Номер порта можно не указывать, если он не отличен от 80-го:

 

 

Итак, что у нас получилось (вывод привожу не полностью, опуская несущественные пока моменты). В процессе тестирования утилита будет сообщать вам о ходе работы:

 

 

Далее вы увидите информацию о версии ПО сервера, его имени, какой документ загружался и каков его размер:

 

 

И далее, собственно, результаты:

 

 

Как видно:

  • Concurrency Level: количество одновременно-отправляемых запросов — 1;
  • Time taken for tests: тысяча запросов к серверу заняла 1,5 секунды;
  • Complete requests: успешно получен ответ на всю тысячу запросов;
  • Failed requests: неудавшихся запросов — ноль;
  • Write errors: ошибок записи — ноль;
  • Total transferred: общий объем переданных данных: 453000 байт;
  • HTML transferred: из них «полезного» HTML — 177000 байт;
  • Requests per second: среднее количество запросов в секунду составило 666.58
  • Time per request: среднее время на один запрос 1,5 миллисекунды
  • Transfer rate: скорость обмена данными с сервером составила 294.88 килобайта в секунду.

Далее в выводе идет информация о времени, затраченном на сетевые подключения:

 

И на обслуживание запросов сервером:

 

 

Как видим, сервер успешно справился с тысячей последовательных загрузок статического файла небольшого размера. Об этом говорит сайт https://intellect.icu . Давайте теперь посмотрим, как сервер поведет себя, если вся эта тысяча запросов будет направлена к нему одновременно, указав это при помощи опции '-c':

 

 

Здесь тест не смог быть завершен по причине того, что после одновременной отправки 804 запросов сервер перестал принимать входящие соединения. Опытным путем, снижая количество одновременных запросов, было установлено что безболезненно мой Apache в текущей конфигурации может обрабатывать  примерно 300 одновременных не Keep-Alive запросов.

 

 

Естественно, с Keep-Alive запросами дело будет обстоять еще хуже, поскольку занимаемые Apache'м ресурсы сервера освобождаются не так быстро. Для выполнения теста с Keep-Alive-соединениями просто добавьте опцию '-k':

 

 

Запрос PHP-сценария

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

Попробуем запросить наш простенький скрипт тысячу раз, делая 300 запросов одновременно:

 

 

Как видим, сервер успешно справился с запросами, однако время их обработки существенно возросло, составив в среднем 44 миллисекунды на запрос, в то время как отдача небольшого HTML-файла примерно такого же размера составляла всего лишь 13 миллисекунд.

Прочтение данной статьи про нагрузочное тестирование web-сервера при помощи ab apache http server benchmarking tool позволяет сделать вывод о значимости данной информации для обеспечения качества и оптимальности процессов. Надеюсь, что теперь ты понял что такое нагрузочное тестирование web-сервера при помощи ab apache http server benchmarking tool и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Качество и тестирование программного обеспечения. Quality Assurance.

создано: 2016-10-08
обновлено: 2021-03-13
112



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Качество и тестирование программного обеспечения. Quality Assurance.

Термины: Качество и тестирование программного обеспечения. Quality Assurance.