Как сравнить WebServer с Apache Bench в CentOS 8

12 set 2022 4 min di lettura
Как сравнить WebServer с Apache Bench в CentOS 8
Indice dei contenuti

Введение

Apache Bench — это инструмент, используемый для измерения производительности веб-сервера.Несмотря на то, что в его названии есть слово «Apache», его можно использовать для тестирования любого типа веб-сервера. В этом руководстве мы будем следовать инструкциям по использованию Apache Bench и тому, как интерпретировать его отчет о производительности веб-сервера. Apache Bench работает, отправляя различное количество HTTP-запросов на веб-сервер и регистрируя время ответа. Он может сказать вам, с какой перегрузкой сервер может справиться, прежде чем он будет перегружен и производительность упадет.

Используйте учетную запись root или пользователя с привилегиями sudo.

Если вы намерены протестировать сервер удаленно, читайте дальше, в противном случае пропустите первый абзац «Подключение к серверу» и прочитайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh root@IP_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:

ssh nome_utente@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh nome_utente@IP_DEL_SERVER -p PORTA

Как установить Apache Bench

Apache Bench является частью пакета apache2-utils, который можно установить с помощью системного менеджера пакетов. Запустите эти команды.

Если Apache еще не установлен в вашей системе, установите его с помощью следующей команды:

sudo dnf install httpd

Установите пакет, необходимый для использования Apache Bench:

sudo dnf install httpd-tools

Как использовать Apache Bench

Чтобы использовать Apache Bench, вам нужно знать свое имя хоста.

Чтобы просмотреть имя хоста, введите следующую команду:

hostname

Вы должны увидеть выходное сообщение с вашим именем хоста, например:

TEST-SERVER-1

Самый простой синтаксис для использования Apache Bench выглядит следующим образом:

ab TEST-SERVER-1/

Вы должны увидеть выходное сообщение, подобное следующему:

This is ApacheBench, Version 2.3 <$Revision: 1843412 $>
 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/Licensed to The Apache Software Foundation, http://www.apache.org/Benchmarking TEST-SERVER-1 (be patient).....done


 Server Software: Apache/2.4.37
 Server Hostname: TEST-SERVER-1
 Server Port: 80

 Document Path: /Document Length: 328 bytes

 Concurrency Level: 1
 Time taken for tests: 0.003 seconds
 Complete requests: 1
 Failed requests: 0
 Non-2xx responses: 1
 Total transferred: 508 bytes
 HTML transferred: 328 bytes
 Requests per second: 314.17 [#/sec] (mean)
 Time per request: 3.183 [ms] (mean)
 Time per request: 3.183 [ms] (mean, across all concurrent requests)
 Transfer rate: 155.86 [Kbytes/sec] received

 Connection Times (ms)
 min mean[+/-sd] median max
 Connect: 0 0 0.0 0 0
 Processing: 2 2 0.0 2 2
 Waiting: 2 2 0.0 2 2
 Total: 2 2 0.0 2 2

ab требует завершающей косой черты после имени хоста имя hostname/. Эта базовая команда бесполезна без дополнительных опций, поэтому давайте добавим некоторые параметры.

Apache Bench имеет множество доступных опций, но некоторые из наиболее полезных:

  • -n (число): используется для указания количества запросов, которые ab должен отправить apache.
  • -t (время ожидания): используется для указания (в секундах), как долго ab должен продолжать отправлять запросы
  • -c (concurrent): используется для указания количества одновременных запросов, которые должен сделать ab

Вы можете попробовать эти варианты, чтобы смоделировать более реалистичный трафик для вашего веб-сервера и посмотреть, как он ведет себя при различных нагрузках, например:

ab -t 10 -n 10000 -c 100 TEST-SERVER-1/

Эта команда будет тестировать наш веб-сервер в течение 10 секунд, отправив максимум 10 000 запросов и одновременно отправив 100 из этих запросов.

Соображения

Есть несколько вещей, которые следует учитывать при использовании Apache Bench. Когда сервер получает тысячи HTTP-запросов из одного источника за считанные секунды, многие брандмауэры интерпретируют это как отказ в обслуживании и пытаются блокировать повторные подключения на некоторое время. Мы рекомендуем использовать Apache Bench только в локальной сети и тестировать на хосте, которым вы управляете. Однако это не идеальная имитация реального трафика. При подключении к веб-серверу где-то в мире пользователи будут иметь различные уровни задержки и hops (путь, который проходит их соединение с веб-сервером), которые играют важную роль в воспринимаемой скорости вашего веб-сайта. вы запускаете команду ab) может быть узким местом. Если вы подозреваете, что в вашей системе нет необходимых ресурсов для инициирования такого большого количества подключений, вы можете проверить это с помощью команды top для мониторинга использования ЦП и памяти во время выполнения теста ab. Если вы получаете Connection timed out об ошибке «Превышено время ожидания соединения», возможно, ваши соединения были заблокированы брандмауэром или сервер Apache был перегружен и не смог обрабатывать дальнейшие запросы.

Интерпретация результатов Apache Bench

Первые несколько строк предоставляют только общую информацию о веб-сервере. Полезная информация начинается со строки Time taken for tests. Time taken for tests, указывает, сколько времени потребовалось команде ab для завершения теста. Если мы не указали тайм-аут, в этой строке будет указано, сколько времени потребовалось для завершения отправки указанного количества запросов. После применения оптимизаций к вашему веб-серверу вы должны увидеть сокращение времени, необходимого для завершения тестов (если вы не укажете тайм-аут). Complete requests показывают, сколько запросов было отправлено и возвращено успешно. Failed requests указывают количество неудачных запросов. Очевидно, вы захотите увидеть очень маленькое число, в идеале нулевое. Если эта строка сообщает о некоторых неудачных запросах, это может означать, что веб-сервер перегружен и не может вовремя ответить на все запросы.

Total transferred и передано в HTML transferred — отчет о том, сколько данных в байтах было отправлено на веб-сервер. Requests per second — это среднее количество запросов, которые веб-сервер смог обработать за одну секунду. Это полезно для определения производительности вашего веб-сервера, когда к нему одновременно обращаются многие пользователи. Time per request — это среднее время, необходимое для обработки запроса. Значения выражаются в миллисекундах. Второй time per request просто умножается на значение параллелизма. Transfer rate — это скорость, с которой он мог передавать данные, что не должно приводить к каким-либо узким местам в локальной сети. Если вы тестируете в Интернете, ограничения маршрутизации и пропускной способности могут повлиять на это гораздо раньше, чем сам Apache. В разделе «Время Connection Times (ms) » указано время ответа для различных этапов HTTP-запросов.

Connect указывает время, необходимое ab для установления соединения с веб-сервером. Processing — это количество времени, которое требуется Apache для обработки запросов. Поскольку ab на самом деле не может его измерить, он просто записывает, как долго соединение открыто после его запуска. Waiting — это время, которое ab должен ждать между отправкой запроса и получением ответа от веб-сервера. Total указывает общее время, прошедшее с момента установления соединения с сервером, получения ответа и окончательного закрытия соединения. Последняя метрика Apache Bench Percentage предлагает более точный взгляд на среднее время отклика веб-сервера путем сортировки времени подключения в процентах.

Вывод

В этой статье мы увидели, как установить Apache Bench на CentOS 8 и использовать его для тестирования производительности веб-сервера. Мы также узнали, как интерпретировать вывод Apache Bench. После дальнейшей оптимизации веб-сервера снова запустите Apache Bench и ожидайте повышения производительности, если были внесены улучшения.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.