Spec-Zone.ru › Apache HTTP Server

ab — инструмент тестирования производительности веб-сервера Apache HTTP

ab — инструмент для тестирования производительности вашего сервера Apache Hypertext Transfer Protocol (HTTP). Он предназначен для того, чтобы дать вам представление о производительности вашей текущей установки Apache. В частности, с его помощью можно узнать, сколько запросов в секунду способна обслуживать ваша установка Apache.

Краткое описание

ab [ -A auth-username:password ] [ -b windowsize ] [ -B local-address ] [ -c concurrency ] [ -C cookie-name=value ] [ -d ] [ -e csv-file ] [ -E client-certificate file ] [ -f protocol ] [ -g gnuplot-file ] [ -h ] [ -H custom-header ] [ -i ] [ -k ] [ -l ] [ -m HTTP-method ] [ -n requests ] [ -p POST-file ] [ -P proxy-auth-username:password ] [ -q ] [ -r ] [ -s timeout ] [ -S ] [ -t timelimit ] [ -T content-type ] [ -u PUT-file ] [ -v verbosity] [ -V ] [ -w ] [ -x <table>-attributes ] [ -X proxy[:port] ] [ -y <tr>-attributes ] [ -z <td>-attributes ] [ -Z ciphersuite ] [http[s]://]hostname[:port]/path

Параметры

-A auth-username:password
Передать серверу учетные данные для базовой аутентификации. Имя пользователя и пароль разделяются одним символом : и передаются по сети в кодировке base64. Строка отправляется независимо от того, нужны ли они серверу (т. е., отправил ли он ответ 401 с запросом аутентификации).
-b windowsize
Размер буфера отправки/приема TCP в байтах.
-B local-address
Адрес для привязки при установлении исходящих соединений.
-c concurrency
Количество запросов, выполняемых одновременно. По умолчанию запросы выполняются по одному.
-C cookie-name=value
Добавить в запрос строку Cookie:. Аргумент обычно имеет формат пары name=value. Этот параметр можно указывать несколько раз.
-d
Не отображать таблицу «процент запросов, обслуженных за XX [мс]». (Для обратной совместимости.)
-e csv-file
Записать файл со значениями, разделенными запятыми (CSV), содержащий для каждого процента (от 1% до 100%) время (в миллисекундах), за которое была обслужена соответствующая доля запросов. Обычно это полезнее, чем файл «gnuplot», поскольку результаты уже сгруппированы.
-E client-certificate-file
При подключении к веб-сайту SSL для аутентификации на сервере использовать предоставленный клиентский сертификат в формате PEM. Ожидается, что файл содержит клиентский сертификат, за которым следуют промежуточные сертификаты, а затем закрытый ключ. Доступно начиная с версии 2.4.36.
-f protocol
Указать протокол SSL/TLS (SSL2, SSL3, TLS1, TLS1.1, TLS1.2 или ALL). Поддержка TLS1.1 и TLS1.2 доступна начиная с версии 2.4.4.
-g gnuplot-file
Записать все измеренные значения в файл формата «gnuplot» или TSV (значения, разделенные табуляцией). Этот файл можно легко импортировать в такие приложения, как Gnuplot, IDL, Mathematica, Igor и даже Excel. Подписи находятся в первой строке файла.
-h
Показать справку по использованию.
-H custom-header
Добавить к запросу дополнительные заголовки. Аргумент обычно представляет собой корректную строку заголовка с парой поле-значение, разделенной двоеточием (т. е., "Accept-Encoding: zip/zop;8bit").
-i
Выполнить HEAD запросов вместо GET.
-k
Включить функцию HTTP KeepAlive, т. е., выполнять несколько запросов в рамках одного сеанса HTTP. По умолчанию KeepAlive отключен.
-l
Не сообщать об ошибках, если длина ответов непостоянна. Это может быть полезно для динамических страниц. Доступно начиная с версии 2.4.7.
-m HTTP-method
Пользовательский метод HTTP для запросов. Доступно начиная с версии 2.4.10.
-n requests
Количество запросов, выполняемых в ходе сеанса тестирования производительности. По умолчанию выполняется только один запрос, что обычно приводит к нерепрезентативным результатам тестирования.
-p POST-file
Файл с данными для POST-запроса. Не забудьте также задать -T.
-P proxy-auth-username:password
Передать учетные данные для базовой аутентификации промежуточному прокси-серверу. Имя пользователя и пароль разделяются одним символом : и передаются по сети в кодировке base64. Строка отправляется независимо от того, нужны ли они прокси-серверу (т. е., отправил ли он ответ 407 с запросом аутентификации на прокси-сервере).
-q
При обработке более 150 запросов ab выводит в stderr счетчик выполнения примерно каждые 10% или 100 запросов. Флаг -q отключает эти сообщения.
-r
Не завершать работу при ошибках приема данных из сокета.
-s timeout
Максимальное время ожидания до истечения тайм-аута сокета, в секундах. Значение по умолчанию — 30 секунд. Доступно начиная с версии 2.4.4.
-S
Не отображать медиану и стандартное отклонение, а также предупреждения и сообщения об ошибках, если среднее значение и медиана различаются более чем на одно или два стандартных отклонения. Вместо этого по умолчанию отображаются минимальное/среднее/максимальное значения. (Для обратной совместимости.)
-t timelimit
Максимальное время тестирования производительности в секундах. Внутренне это подразумевает -n 50000. Используйте этот параметр, чтобы тестировать сервер в течение заданного общего времени. По умолчанию ограничение по времени отсутствует.
-T content-type
Заголовок Content-Type для данных POST/PUT, например application/x-www-form-urlencoded. По умолчанию используется text/plain.
-u PUT-file
Файл с данными для PUT-запроса. Не забудьте также задать -T.
-v verbosity
Задать уровень подробности: 4 и выше выводят сведения о заголовках, 3 и выше выводят коды ответов (404, 200 и т. д.), 2 и выше выводят предупреждения и информационные сообщения.
-V
Показать номер версии и завершить работу.
-w
Вывести результаты в таблицах HTML. По умолчанию таблица состоит из двух столбцов и имеет белый фон.
-x <table>-attributes
Строка атрибутов для <table>. Атрибуты вставляются <table here >.
-X proxy[:port]
Использовать прокси-сервер для запросов.
-y <tr>-attributes
Строка атрибутов для <tr>.
-z <td>-attributes
Строка атрибутов для <td>.
-Z ciphersuite
Указать набор шифров SSL/TLS (см. openssl ciphers)

Вывод

В следующем списке описаны значения, возвращаемые ab:

Программное обеспечение сервера
Значение, если оно есть, возвращенное в HTTP-заголовке server первого успешного ответа. Оно включает все символы заголовка от начала до первого символа с десятичным значением 32 (чаще всего это пробел или CR/LF).
Имя хоста сервера
DNS-имя или IP-адрес, указанный в командной строке
Порт сервера
Порт, к которому подключается ab. Если порт не указан в командной строке, по умолчанию используется 80 для http и 443 для https.
Протокол SSL/TLS
Параметры протокола, согласованные клиентом и сервером. Выводится только при использовании SSL.
Путь к документу
URI запроса, разобранный из строки командной строки.
Размер документа
Размер первого успешно полученного документа в байтах. Если размер документа меняется во время тестирования, ответ считается ошибочным.
Уровень параллелизма
Количество одновременно работающих клиентов во время тестирования
Время выполнения тестов
Время от момента создания первого соединения с сокетом до получения последнего ответа
Завершенные запросы
Количество полученных успешных ответов
Неудачные запросы
Количество запросов, завершившихся с ошибкой. Если это число больше нуля, будет выведена дополнительная строка с количеством запросов, завершившихся ошибкой подключения, чтения, неверной длины содержимого или исключением.
Ошибки записи
Количество ошибок, возникших при записи (разрыв канала).
Ответы, отличные от 2xx
Количество ответов, код которых не относится к серии 200. Если все ответы имеют код 200, это поле не выводится.
Запросы Keep-Alive
Количество соединений, в которых выполнялись запросы Keep-Alive
Всего отправлено данных в теле
Если настроена отправка данных в рамках теста, это общее количество байтов, отправленных во время тестирования. Это поле не выводится, если тест не включал отправку тела запроса.
Всего передано
Общее количество байтов, полученных от сервера. По существу, это количество байтов, переданных по сети.
Передано HTML-данных
Общее количество байтов документа, полученных от сервера. Это число не включает байты, полученные в заголовках HTTP.
Запросов в секунду
Количество запросов в секунду. Это значение вычисляется делением количества запросов на общее время выполнения.
Время на запрос
Среднее время, затраченное на один запрос. Первое значение вычисляется по формуле concurrency * timetaken * 1000 / done, а второе — по формуле timetaken * 1000 / done
Скорость передачи
Скорость передачи, вычисленная по формуле totalread / 1024 / timetaken

Ошибки

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

Реализация HTTP/1.x неполная: поддерживаются только некоторые «ожидаемые» формы ответов. Значительная нагрузка, создаваемая strstr(3), заметна в верхней части профиля, что может указывать на проблему с производительностью; т. е., вы будете измерять производительность ab, а не сервера.

© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/programs/ab.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API