Apache benchmark для windows

AB (Apache Benchmark) — тест производительности сервера

AB — это утилита для тестирования производительности вашего веб-сервера Apache. Она создана для того, чтобы вы могли определить производительность вашей текущей настройки Apache. В первую очередь, AB показывает сколько запросов в секунду ваш Apache способен обслужить.

Установка AB в Debian

Если вы хотите использовать apache ab в Debian, то вам необходимо установить пакет называемый «apache2-utils«.

Этот пакет содержит полезные утилиты для веб-серверов:

  • ab — Apache benchmark tool,
  • logresolve — разрешает IP-адреса в имена хостов в логах,
  • htpasswd — производит действия над файлами базовой аутентификации,
  • htdigest — действия над аутентификационными файлами в формате digest,
  • dbmmanage — то же для файлов с аутентификационными данными в формате DBM, использует perl,
  • htdbm — то же, что и утилита выше, но использует APR,
  • rotatelogs — периодически прекращает запись в лог-файл и создает новый,
  • split-logfile — делит единый лог-файл, включая множество виртуальных хостов,
  • checkgid — проверяет может ли вызывающий установить gid на определенную группу,
  • check_forensic — извлекает вывод mod_log_forensic из лог-файлов Apache.

Для установки данного пакета выполните следующую команду:

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

Эта команда откроет 10 соединений с использанием Keep-Alive и будет нагружать localhost в течение 60 секунд через эти соединения. Когда процесс завершится, вы получите некоторую информацию о результатах теста. Для получения более правильных результатов лучше воспользоваться утилитой AB с другой машины.

Некоторые параметры утилиты AB

-A auth-username:password — передать данные для базовой аутентификации. То есть, фактически можно тестировать даже если доступ закрыт с помощью базовой аутентификации (htpasswd).

-c concurrency — количество параллельных запросов в единицу времени. По умолчанию, один реквест в единицу времени (можно считать, что в секунду).

cookie-name=value — добавлять куки. Задается в виде пары имя=значение. Это поле можно повторять.

-f protocol — задает SSL/TLS протокол (SSL2, SSL3, TLS1, or ALL).

-h — отобразить краткую справку по параметрам

-k — включить KeepAlive, то есть осуществлять множество запросов в течение одной HTTP-сессии. По умолчанию данная возможность отключена.

-n requests — количество запросов, которое необходимо выполнить в течение сессии тестирования. По умолчанию, выполняется только один запрос, что не дает общей картины.

-q — подавляет вывод некоторых сообщений о процессе тестирования.

-t timelimit — максимальное количество секунд, которое необходимо затратить на тестирование. Это подразумевает значание параметра -n равное 50000. По умолчанию временной лимит не установлен.

-v verbosity — устанавливает уровень «разговорчивости»: 4 и выше отображает информацию о заголовках, 3 и выше — информацию о кодах ответа (404, 200 и т. д.), 2 и выше — выводить предупреждения и прочую информацию.

-V — отобразить версию и выйти.

-w — вывести результаты в виде HTML-таблицы. По умолчанию таблица состоит из двух колонок с белым фоном.

-x

-attributes — строка для использования в качестве атрибутов для
. Атрибуты вставляются
.

-y

-attributes — строка атрибутов для .

-z

-attributes — строка атрибутов для .

-X proxy[:port] — использовать прокси-сервер для запросов.

С полным набором параметров можно ознакомиться выполнив команду man ab в командной строке.

Пример использования

This is ApacheBench, Version 2.3
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 600 requests
Completed 1200 requests
Completed 1800 requests
Completed 2400 requests
Completed 3000 requests
Completed 3600 requests
Completed 4200 requests
Completed 4800 requests
Completed 5400 requests
Completed 6000 requests
Finished 6000 requests

Server Software: Apache/2.2.16
Server Hostname: localhost
Server Port: 8080

Document Path: /
Document Length: 13913 bytes

Concurrency Level: 10
Time taken for tests: 48.531 seconds
Complete requests: 6000
Failed requests: 1
(Connect: 0, Receive: 0, Length: 1, Exceptions: 0)
Write errors: 0
Total transferred: 84705880 bytes
HTML transferred: 83464087 bytes
Requests per second: 123.63 [#/sec] (mean)
Time per request: 80.884 [ms] (mean)
Time per request: 8.088 [ms] (mean, across all concurrent requests)
Transfer rate: 1704.50 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.9 0 33
Processing: 20 81 16.7 80 230
Waiting: 0 63 16.8 62 163
Total: 20 81 16.7 80 230

Percentage of the requests served within a certain time (ms)

50% 80
66% 87
75% 91
80% 93
90% 100
95% 107
98% 116
99% 124
100% 230 (longest request)

О чём говорит apache benchmark

Когда я первый раз столкнулся с задачей оптимизации скорости работы сайта, я начал рыскать по просторам интернета, чтобы получить хоть какое-то представление о том, как эта самая оптимизация делается. Именно тогда я в первый раз услышал об утилите “apache benchmark“, которая как сказано в описании официального сайта apache «главным образом показывает, как много запросов способен выполнить ваш сервер».

Прочитав документацию, я решил опробовать утилиту в действии, а в качестве подопытного использовать сайт самих разработчиков apache. После того как я прописал в консоль “ ab -c10 -n100 httpd.apache.org/ “, мне сообщили что «httpd.apache.org» бенчмаркетится (benchmarkering), что если верить словарю переводится как «тестируется». Также мне посоветовали быть терпеливым, что я собственно и сделал. Спустя некоторое время, утилита выдала информацию о результатах своего труда. Должен признать, что увидев данную таблицу впервые, я не понял ровным счетом ничего, и вынести для себя какую-то полезную информацию было достаточно тяжело. Потратив некоторое время я, конечно, во всем разобрался, и сейчас хочу поделиться тем, как я понимаю то, о чем нам говорит “apache benchmark“.

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

Server Port: 80 — при тестировании использовался 80-й порт.

Document Path: / — путь к документу. В нашем случае — основная директория.

Document Length: 13666 bytes — размер документа — 13,6Кб. Причем, это размер не учитывающий встроенные элементы, например, изображения. Сохранив страницу на локальный компьютер, можно увидеть, что на странице размещены два изображения общим размером 18Кб, а вот сам html файл страницы весит приблизительно 14Кб.

Concurrency Level: 10 — если перевести, то это будет звучать как «уровень параллелизма». О чем-нибудь говорит? Когда я увидел это впервые, мне это не говорило ни о чём. Немного поразмыслив, я предположил, что это количество одновременных запросов, которое выполнял сервер в процессе тестирования. Проделав еще несколько тестов, изменяя опцию “-cN”, я понял что оказался прав.

Time taken for tests: 28.252 seconds — тестирование выполнялось в течении 28-и с лишним секунд.

Complete requests: 100 — было выполнено 100 запросов.

Failed requests: 0 — неудачно выполненных запросов было 0.

Write errors: 0 — ошибок в журнал записано не было.

Total transferred: 1404503 bytes — общее количество информации, которое было получено от сайта httpd.apache.org.

HTML transferred: 1372882 bytes — похоже, что сюда не включены изображения, флеш-анимации и прочее. Если мы поделим «HTML transferred» на «Document Length», то получим 100 с копейками, что соответствует значению выполненных запросов «Complete requests».

Requests per second: 3.54 [#/sec] (mean) — количество запросов за секунду. Это среднее значение — результат деления «Complete requests» на «Time taken for tests».

Time per request: 2825.237 [ms] (mean) — время, в течении которого выполнялись 10 параллельных запросов.

Time per request: 282.524 [ms] (mean, across all concurrent requests) — время, в течении которого выполнялся один запрос. То есть значение «Time per request», разделённое на «Concurrency Level».

Transfer rate: 48.55 [Kbytes/sec] received — скорость, с которой apache benchmark получал информацию с тестируемого сервера.

Connection Times (ms) — таблица со временем соединения в миллисекундах. Здесь мы имеем таблицу с четырьмя строчками и четырьмя столбцами:

  • Строка Connect: — время, которое потратила утилита на соединение с сервером.
  • Строка Processing: — время выполнения запроса.
  • Строка Waiting: — время простоя запроса. То есть время, которое запрос ждал своей очереди для выполнения.
  • Строка Total: — общее время по строкам.
  • Столбец min — минимальное время.
  • Столбец mean[±sd] — по этому столбцу, к сожалению, информации не имею. Если, у кого-то есть сведения по нему, пожалуйста, поделитесь.
  • Cтолбец median — среднее время.
  • Стобец max — максимальное время.

Исходя из результатов тестирования видно, что самый быстрый запрос был выполнен за 1.194 секунды, а самый медленный за 10.614 секунд.

Percentage of the requests served within a certain time (ms) — доля запросов, выполненных в определенное время. То есть 80 процентов всех запросов выполнились в течении 2-х с небольшим секунд. А самый долгий запрос выполнялся 10 с лишним секунд.

AB (Apache Benchmark) — тест производительности сервера

AB — это утилита для тестирования производительности вашего веб-сервера Apache. Она создана для того, чтобы вы могли определить производительность вашей текущей настройки Apache. В первую очередь, AB показывает сколько запросов в секунду ваш Apache способен обслужить.

Установка AB в Debian

Если вы хотите использовать apache ab в Debian, то вам необходимо установить пакет называемый «apache2-utils«.

Этот пакет содержит полезные утилиты для веб-серверов:

  • ab — Apache benchmark tool,
  • logresolve — разрешает IP-адреса в имена хостов в логах,
  • htpasswd — производит действия над файлами базовой аутентификации,
  • htdigest — действия над аутентификационными файлами в формате digest,
  • dbmmanage — то же для файлов с аутентификационными данными в формате DBM, использует perl,
  • htdbm — то же, что и утилита выше, но использует APR,
  • rotatelogs — периодически прекращает запись в лог-файл и создает новый,
  • split-logfile — делит единый лог-файл, включая множество виртуальных хостов,
  • checkgid — проверяет может ли вызывающий установить gid на определенную группу,
  • check_forensic — извлекает вывод mod_log_forensic из лог-файлов Apache.

Для установки данного пакета выполните следующую команду:

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

Эта команда откроет 10 соединений с использанием Keep-Alive и будет нагружать localhost в течение 60 секунд через эти соединения. Когда процесс завершится, вы получите некоторую информацию о результатах теста. Для получения более правильных результатов лучше воспользоваться утилитой AB с другой машины.

Некоторые параметры утилиты AB

-A auth-username:password — передать данные для базовой аутентификации. То есть, фактически можно тестировать даже если доступ закрыт с помощью базовой аутентификации (htpasswd).

-c concurrency — количество параллельных запросов в единицу времени. По умолчанию, один реквест в единицу времени (можно считать, что в секунду).

cookie-name=value — добавлять куки. Задается в виде пары имя=значение. Это поле можно повторять.

-f protocol — задает SSL/TLS протокол (SSL2, SSL3, TLS1, or ALL).

-h — отобразить краткую справку по параметрам

-k — включить KeepAlive, то есть осуществлять множество запросов в течение одной HTTP-сессии. По умолчанию данная возможность отключена.

-n requests — количество запросов, которое необходимо выполнить в течение сессии тестирования. По умолчанию, выполняется только один запрос, что не дает общей картины.

-q — подавляет вывод некоторых сообщений о процессе тестирования.

-t timelimit — максимальное количество секунд, которое необходимо затратить на тестирование. Это подразумевает значание параметра -n равное 50000. По умолчанию временной лимит не установлен.

-v verbosity — устанавливает уровень «разговорчивости»: 4 и выше отображает информацию о заголовках, 3 и выше — информацию о кодах ответа (404, 200 и т. д.), 2 и выше — выводить предупреждения и прочую информацию.

-V — отобразить версию и выйти.

-w — вывести результаты в виде HTML-таблицы. По умолчанию таблица состоит из двух колонок с белым фоном.

-x

-attributes — строка для использования в качестве атрибутов для
. Атрибуты вставляются
.

-y

-attributes — строка атрибутов для .

-z

-attributes — строка атрибутов для .

-X proxy[:port] — использовать прокси-сервер для запросов.

С полным набором параметров можно ознакомиться выполнив команду man ab в командной строке.

Пример использования

This is ApacheBench, Version 2.3
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 600 requests
Completed 1200 requests
Completed 1800 requests
Completed 2400 requests
Completed 3000 requests
Completed 3600 requests
Completed 4200 requests
Completed 4800 requests
Completed 5400 requests
Completed 6000 requests
Finished 6000 requests

Server Software: Apache/2.2.16
Server Hostname: localhost
Server Port: 8080

Document Path: /
Document Length: 13913 bytes

Concurrency Level: 10
Time taken for tests: 48.531 seconds
Complete requests: 6000
Failed requests: 1
(Connect: 0, Receive: 0, Length: 1, Exceptions: 0)
Write errors: 0
Total transferred: 84705880 bytes
HTML transferred: 83464087 bytes
Requests per second: 123.63 [#/sec] (mean)
Time per request: 80.884 [ms] (mean)
Time per request: 8.088 [ms] (mean, across all concurrent requests)
Transfer rate: 1704.50 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.9 0 33
Processing: 20 81 16.7 80 230
Waiting: 0 63 16.8 62 163
Total: 20 81 16.7 80 230

Percentage of the requests served within a certain time (ms)

50% 80
66% 87
75% 91
80% 93
90% 100
95% 107
98% 116
99% 124
100% 230 (longest request)

Читайте также:  Rockchip linux upgrade tool
Оцените статью