ab - справочное руководство, опции, примеры команд


ИМЯ

ab - Инструмент для тестирования HTTP-сервера 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

КРАТКОЕ СОДЕРЖАНИЕ

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

ПАРАМЕТРЫ

-A auth-username:password

Предоставьте серверу учетные данные BASIC Authentication. Имя пользователя и пароль разделяются одним : и отправляются по сети в кодировке base64. Строка отправляется независимо от того, нужна ли она серверу (т. е., отправил запрос на проверку подлинности 401).

-b windowsize

Размер буфера отправки/получения TCP в байтах.

-B local-address

Адрес для привязки при исходящих соединениях.

-c concurrency

Количество нескольких запросов, которые нужно выполнить одновременно. По умолчанию — один запрос за раз.

-C cookie-name=value

Добавьте в запрос строку Cookie:. Аргумент обычно имеет форму пары имя=значение. Это поле повторяется.

-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 или ВСЕ). Поддержка 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

Предоставьте учетные данные BASIC Authentication прокси-серверу в пути. Имя пользователя и пароль разделяются одним : и отправляются по сети в кодировке base64. Строка отправляется независимо от того, нужна ли она прокси-серверу (т. е., отправил запрос 407 для проверки подлинности прокси-сервера).

-q

При обработке более 150 запросов ab выводит счетчик выполнения на stderr каждые 10 % или примерно 100 запросов. Флаг -q подавляет эти сообщения.

-r

Не завершайте работу при ошибках получения сокета.

-s timeout

Максимальное количество секунд ожидания до истечения времени ожидания сокета. По умолчанию 30 секунд. Доступно в версии 2.4.4 и более поздних.

-S

Не отображать значения медианы и стандартного отклонения, а также не отображать предупреждения/сообщения об ошибках, если среднее значение и медиана отличаются более чем в один или два раза от стандартного отклонения. И по умолчанию используются минимальные/средние/максимальные значения. (устаревшая поддержка).

-t timelimit

Максимальное количество секунд, затрачиваемое на бенчмаркинг. Это подразумевает внутренний -n 50000. Используйте это для тестирования сервера в течение фиксированного общего времени. По умолчанию нет ограничения по времени.

-T content-type

Заголовок типа содержимого для использования для данных POST/PUT, например. application/x-www-form-urlencoded. По умолчанию используется текстовый/обычный.

-u PUT-file

Файл, содержащий данные для PUT. Не забудьте также установить -T.

-v verbosity

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

-V

Показать номер версии и выйти.

-w

Распечатайте результаты в таблицах HTML. Таблица по умолчанию имеет ширину в два столбца с белым фоном.

-x <table>-attributes

Строка для использования в качестве атрибутов для table. Атрибуты вставляются таблица здесь.

-X proxy[:port]

Используйте прокси-сервер для запросов.

-y <tr>-attributes

Строка для использования в качестве атрибутов для .

-z <td>-attributes

Строка для использования в качестве атрибутов для .

-Z ciphersuite

Укажите набор шифров SSL/TLS (см. шифры openssl)

ВЫХОД

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

Server Software

Значение, если оно есть, возвращенное в HTTP-заголовке server первого успешного ответа. Это включает в себя все символы в заголовке от начала до точки обнаружения символа с десятичным значением 32 (в первую очередь: пробел или CR/LF).

Server Hostname

DNS или IP-адрес, указанный в командной строке

Server Port

Порт, к которому подключается ab. Если порт не указан в командной строке, по умолчанию используется 80 для http и 443 для https.

SSL/TLS Protocol

Параметры протокола согласовываются между клиентом и сервером. Это будет напечатано только в том случае, если используется SSL.

Document Path

URI запроса, извлеченный из строки командной строки.

Document Length

Это размер в байтах первого успешно возвращенного документа. Если длина документа изменяется во время тестирования, ответ считается ошибкой.

Concurrency Level

Количество одновременных клиентов, использованных во время теста

Time taken for tests

Это время, прошедшее с момента создания первого сокетного соединения до момента получения последнего ответа.

Complete requests

Количество полученных успешных ответов

Failed requests

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

Write errors

Количество ошибок, которые завершились сбоем во время записи (сломан канал).

Non-2xx responses

Количество ответов, не входящих в серию 200 кодов ответов. Если все ответы равны 200, это поле не печатается.

Keep-Alive requests

Количество подключений, которые привели к запросам Keep-Alive.

Total body sent

Если настроена отправка данных в рамках теста, это общее количество байтов, отправленных во время тестов. Это поле опускается, если тест не включает тело для отправки.

Total transferred

Общее количество байтов, полученных от сервера. Это число, по сути, является количеством байтов, отправленных по сети.

HTML transferred

Общее количество байтов документа, полученных от сервера. Это число не включает байты, полученные в заголовках HTTP.

Requests per second

Это количество запросов в секунду. Это значение является результатом деления количества запросов на общее время.

Time per request

Среднее время, потраченное на запрос. Первое значение рассчитывается по формуле параллелизм * затраченное время * 1000/выполнено, а второе значение рассчитывается по формуле затраченное время * 1000/выполнено.

Transfer rate

Скорость передачи, рассчитанная по формуле общее чтение/1024/затраченное время.

ОШИБКИ

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

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