| Раздел 8. HTTP-сервер Apache и вспомогательные программы
Пункт 64. Страница руководства: ab 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 ]
[ -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
- Предоставьте серверу учетные данные BASIC Authentication. Имя пользователя и пароль разделяются одинарной точкой
: и отправляются по кабелю в кодировке 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'; так как результаты уже «сложены».
-
-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 . Значение по умолчанию 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)
Выход
В следующем списке описаны значения, возвращаемые ab :
- Серверное программное обеспечение
- Значение, если оно есть, возвращенное в HTTP-заголовке сервера первого успешного ответа. Это включает в себя все символы в заголовке от начала до точки обнаружения символа с десятичным значением 32 (в первую очередь: пробел или CR/LF).
- Имя хоста сервера
- DNS или IP-адрес, указанный в командной строке
- Порт сервера
- Порт, к которому подключается ab. Если порт не указан в командной строке, по умолчанию используется 80 для http и 443 для https.
- SSL/TLS-протокол
- Параметры протокола согласовываются между клиентом и сервером. Это будет напечатано только в том случае, если используется SSL.
- Путь к документу
- URI запроса, извлеченный из строки командной строки.
- Длина документа
- Это размер в байтах первого успешно возвращенного документа. Если длина документа изменяется во время тестирования, ответ считается ошибкой.
- Уровень параллелизма
- Количество одновременных клиентов, использованных во время теста
- Время, затраченное на тесты
- Это время, прошедшее с момента создания первого сокетного соединения до момента получения последнего ответа.
- Завершить запросы
- Количество полученных успешных ответов
- Неудачные запросы
- Количество запросов, которые были признаны неудачными. Если число больше нуля, будет напечатана другая строка, показывающая количество запросов, которые не удалось выполнить из-за подключения, чтения, неправильной длины содержимого или исключений.
- Ошибки записи
- Количество ошибок, которые завершились сбоем во время записи (сломан канал).
- Не-2xx ответы
- Количество ответов, не входящих в серию 200 кодов ответов. Если все ответы равны 200, это поле не печатается.
- Поддерживающие запросы
- Количество подключений, которые привели к запросам Keep-Alive.
- Всего тело отправлено
- Если настроена отправка данных в рамках теста, это общее количество байтов, отправленных во время тестов. Это поле опускается, если тест не включает тело для отправки.
- Всего передано
- Общее количество байтов, полученных от сервера. Это число, по сути, является количеством байтов, отправленных по сети.
- HTML передан
- Общее количество байтов документа, полученных от сервера. Это число не включает байты, полученные в заголовках HTTP.
- Запросов в секунду
- Это количество запросов в секунду. Это значение является результатом деления количества запросов на общее время.
- Время на запрос
- Среднее время, потраченное на запрос. Первое значение рассчитывается по формуле,
concurrency * timetaken * 1000 / done
а второе значение рассчитывается по формуле
timetaken * 1000 / done
- Скорость передачи
- Скорость передачи, рассчитанная по формуле
totalread / 1024 / timetaken
Ошибки
Существуют различные статически объявленные буферы фиксированной длины. В сочетании с ленивым анализом аргументов командной строки, заголовков ответа от сервера и других внешних входных данных это может вас укусить.
Он не полностью реализует HTTP/1.x; принимает только некоторые «ожидаемые» формы ответов. Довольно интенсивное использование strstr(3) показывает вверху профиля, что может указывать на проблемы с производительностью; т.е. вы бы измеряли ab производительность, а не сервер.
|
|