<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.webko.net.ua/index.php?action=history&amp;feed=atom&amp;title=Apache_Bench</id>
	<title>Apache Bench - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.webko.net.ua/index.php?action=history&amp;feed=atom&amp;title=Apache_Bench"/>
	<link rel="alternate" type="text/html" href="https://wiki.webko.net.ua/index.php?title=Apache_Bench&amp;action=history"/>
	<updated>2026-05-03T16:43:18Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.webko.net.ua/index.php?title=Apache_Bench&amp;diff=116&amp;oldid=prev</id>
		<title>Sol: Новая страница: «== Установка на CentOS ==   yum install httpd-tools  == Установка на FreeBSD ==   /usr/ports/benchmarks/siege  make install cleam    == Apac…»</title>
		<link rel="alternate" type="text/html" href="https://wiki.webko.net.ua/index.php?title=Apache_Bench&amp;diff=116&amp;oldid=prev"/>
		<updated>2015-04-21T19:16:28Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «== Установка на CentOS ==   yum install httpd-tools  == Установка на FreeBSD ==   /usr/ports/benchmarks/siege  make install cleam    == Apac…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Установка на CentOS ==&lt;br /&gt;
&lt;br /&gt;
 yum install httpd-tools&lt;br /&gt;
&lt;br /&gt;
== Установка на FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
 /usr/ports/benchmarks/siege&lt;br /&gt;
 make install cleam&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Apache Bench – простая утилита для нагрузочного тестирования веб-серверов. ==&lt;br /&gt;
&lt;br /&gt;
Здравствуйте. В этой статье я расскажу об одном интересном инструменте — Apache Bench (далее AB). Данная утилита входит в стандартный дистрибутив Apache. Кроме того, имеется почти во всех готовых сборках типа Denwer, XAMMP и т.д. Как сказано в названии статьи, AB предназначается для нагрузочного тестирования веб-серверов. Суть его в том что бы посылать на сервер определённое количество http-запросов, замеряя при этом время их обработки. С его помощью можно выявить те участи сайта которые выполняются дольше других, и могут являться целью DoS-атаки или просто причиной большой нагрузки на сервер при нормальной активности пользователей.&lt;br /&gt;
Возьмёмся сразу за практику. Найти AB Вы можете в установочной директории Apache, в папке «bin». Он имеет имя «ab» (или ab.exe для Windows) Запуск и работа с ним происходит через командную строку. Просто запустите его, без указания каких-либо опций, и покажется справка. Для рабочего старта AB требуется как минимум одно — URI к которому нужно произвести обращение. Будет послан всего 1&lt;br /&gt;
GET-запрос, после чего Вы увидите отчёт о проделанной работе. Что бы осуществить несколько&lt;br /&gt;
запросов Вам нужно задать параметр -n, в котором и указать их количество. То есть при вот таком&lt;br /&gt;
запуске&lt;br /&gt;
&lt;br /&gt;
 ab -n 100 http://site.ru/search.php?q=one&lt;br /&gt;
&lt;br /&gt;
утилита произведёт 100 запросов по URI http://site.ru/search.php?q=one. Причём проходить они будут по&lt;br /&gt;
очереди. Для более продуктивного анализа следует использовать параметр -c, определяющий количество одновременно посылаемых обращений. Например запуск AB следующей строкой проделает то же самое что и в предыдущем примере, но запросы будут уходить не поочерёдно, а пачками по 10 штук.&lt;br /&gt;
&lt;br /&gt;
 ab -n 100 -с 10 http://site.ru/search.php?q=one&lt;br /&gt;
&lt;br /&gt;
Легко подсчитать что в случае такого обращения к ресурсоёмкому участку сайта нагрузка значительно&lt;br /&gt;
возрастёт, что будет отчётливо отражено в результатах работы утилиты. Такое многопоточное&lt;br /&gt;
тестирование предпочтительнее т.к. может имитировать более-менее реальные условия (не DoS-атаки конечно, простого поведения нескольких пользователей). К тому же оно даём возможность обнаружить «тяжёлые» участки сайта быстрее.&lt;br /&gt;
При работе с POST используется опция -T, указывающая поле «content-type» в заголовке запроса&lt;br /&gt;
и опция -p, содержащая имя файла с POST-данными. Для осуществления простейшего POST-запроса в&lt;br /&gt;
параметре -Т, как и в браузере, указывается строка «application/x-www-form-urlencoded». Файл, содержащий отправляемые данные, может иметь любое расширение. Главное что бы данные там были&lt;br /&gt;
расположены в том виде, в котором они помещаются в запрос. То есть&lt;br /&gt;
&lt;br /&gt;
 параметр1=значение1&amp;amp;параметр2=значение2&amp;amp;......&amp;amp;параметрN=значениеN&lt;br /&gt;
&lt;br /&gt;
Допустим нам нужно послать 10 POST-запросов к URI http://site.ru/search.php, данные для которых&lt;br /&gt;
хранятся в файле request.txt, на диске «C». Тогда строка запуска программы будет следующая:&lt;br /&gt;
&lt;br /&gt;
 ab -T &amp;quot;application/x-www-form-urlencoded&amp;quot; -p &amp;quot;C:\request.txt&amp;quot; -n 10 http://site.ru/search.php&lt;br /&gt;
&lt;br /&gt;
Как видите — ничего сложного.&lt;br /&gt;
Рассмотрим теперь результат работы AB. Ниже приведён пример отчёта о посылке 1000 запросов&lt;br /&gt;
на URI «http://e107/signup.php» по 10 запросов за один раз &lt;br /&gt;
 (строка запуска: «ab -n 1000 -c 10 http://e107/signup.php») .&lt;br /&gt;
&lt;br /&gt;
 This is ApacheBench, Version 2.0.40-dev &amp;lt;$Revision: 1.146 $&amp;gt; apache-2.0&lt;br /&gt;
 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/&lt;br /&gt;
 Copyright 2006 The Apache Software Foundation, http://www.apache.org/&lt;br /&gt;
 Benchmarking e107 (be patient)&lt;br /&gt;
 Completed 100 requests&lt;br /&gt;
 Completed 200 requests&lt;br /&gt;
 Completed 300 requests&lt;br /&gt;
 Completed 400 requests&lt;br /&gt;
 Completed 500 requests&lt;br /&gt;
 Completed 600 requests&lt;br /&gt;
 Completed 700 requests&lt;br /&gt;
 Completed 800 requests&lt;br /&gt;
 Completed 900 requests&lt;br /&gt;
 Finished 1000 requests&lt;br /&gt;
 Server Software: Apache/2.2.4&lt;br /&gt;
 Server Hostname: e107&lt;br /&gt;
 Server Port: 80&lt;br /&gt;
 Document Path: /signup.php&lt;br /&gt;
 Document Length: 26036 bytes&lt;br /&gt;
 Concurrency Level: 10&lt;br /&gt;
 Time taken for tests: 149.937500 seconds&lt;br /&gt;
 Complete requests: 1000&lt;br /&gt;
 Failed requests: 38&lt;br /&gt;
 (Connect: 0, Length: 38, Exceptions: 0)&lt;br /&gt;
 Write errors: 0&lt;br /&gt;
 Total transferred: 25253856 bytes&lt;br /&gt;
 HTML transferred: 25059058 bytes&lt;br /&gt;
 Requests per second: 6.67 [#/sec] (mean)&lt;br /&gt;
 Time per request: 1499.375 [ms] (mean)&lt;br /&gt;
 Time per request: 149.938 [ms] (mean, across all concurrent requests)&lt;br /&gt;
 Transfer rate: 164.48 [Kbytes/sec] received&lt;br /&gt;
 Connection Times (ms)&lt;br /&gt;
 min mean [+/-sd] median max&lt;br /&gt;
 Connect: 15 42 17.8 46 125&lt;br /&gt;
 Processing: 484 1435 384.5 1437 3047&lt;br /&gt;
 Waiting: 484 1419 381.3 1406 3046&lt;br /&gt;
 Total: 515 1477 383.4 1468 3140&lt;br /&gt;
 Percentage of the requests served within a certain time (ms)&lt;br /&gt;
 50% 1468&lt;br /&gt;
 66% 1625&lt;br /&gt;
 75% 1718&lt;br /&gt;
 80% 1781&lt;br /&gt;
 90% 1968&lt;br /&gt;
 95% 2093&lt;br /&gt;
 98% 2296&lt;br /&gt;
 99% 2437&lt;br /&gt;
 100% 3140 (longest request)&lt;br /&gt;
&lt;br /&gt;
С самого начала выводятся авторские права на утилиту и её версия. Дальше располагается множество строчек типа «Complited *00 requests». Так программа сообщает о выполнении каждой сотни запросов.&lt;br /&gt;
&lt;br /&gt;
В конце этого списка находится строка с сообщением об окончании проверки. &lt;br /&gt;
&lt;br /&gt;
И теперь начинается основная информативная часть отчёта. Первые 3 строки — тип и версия веб-сервера, тестируемый хост и порт. Дальше идёт информация о запрашиваемом URL – путь и размер данных получаемых в ответ. Затем следуют данные о произведённых запросах. Поочерёдно: количество&lt;br /&gt;
запросов посылаемых одновременно, время потраченное на тестирование, общее количество запросов и число неудачных обращений (сервер не ответил, время ожидания ответа истекло). Следующим блоком показана информация о передаче данных между клиентом и сервером. По порядку. Количество ошибок при отправке данных. Сколько всего данных было передано, сколько всего HTML-данных былопередано. Второе всегда меньше первого по двум причинам — за общий объём данных считаются&lt;br /&gt;
заголовки запроса и HTML-код, за общий объём считается любая информация если Вы производили&lt;br /&gt;
обращения не к HTML-документам. Дальше указано среднее количество запросов в секунду и среднее&lt;br /&gt;
время в миллисекундах, затрачиваемое на один запрос. Здесь 2 значения затраченного времени - фактически и без учёта конкурентных запросов. Эти значения всегда отличаются не сильно и большого значения разница между ними не имеет. Ну и кончается этот блок записью о среднем объёме передаваемых данных за секунду.&lt;br /&gt;
Предпоследняя часть отчёта — информация о проведённых во время тестирования соединениях.&lt;br /&gt;
В левой части находятся названия строк — соединение, обработка, ожидание, общее время. А в самой&lt;br /&gt;
таблице содержится минимальное, среднее, и максимальное время прохождения этих событий.&lt;br /&gt;
Последняя информация, помещаемая в отчёт, содержит соотношения времени выполнения запросов к их процентам. То есть указано сколько процентов запросов было выполнено за определённое время. В&lt;br /&gt;
нашем случае эти данные будут читаться так — 50% запросов было выполнено в пределах 1468 миллисекунд, 66% - в пределах 1625 миллисекунд, 75% - в пределах 1718 миллисекунд и т.д.&lt;br /&gt;
Вот такой простой, но полезный инструмент. В умелых руках может быть крайне эффективным. Главное&lt;br /&gt;
он очень прост и лёгок в освоении, что хорошо для новичков. Последней версией AB поддерживается&lt;br /&gt;
25 параметров, часть из которых чисто «косметические». Единственный недостаток который я бы отметил это отсутствие возможности производить запросы сразу по нескольким URL. Но это нужно не&lt;br /&gt;
всегда. В конце концов для серьёзных тестирований есть соответствующий софт. Удачи!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ab – Утилита для нагрузочного тестирования Apache-серверов. MAN ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AB — это утилита для нагрузочного тестирования веб-серверов Apache. Он специально создан для того&lt;br /&gt;
что бы Вы могли проанализировать стойкость своего веб-сервера к большим нагрузкам. В частности он&lt;br /&gt;
может показать сколько одновременных запросов сервер может выдержать.&lt;br /&gt;
Синтаксис запуска&lt;br /&gt;
ab [ -A логин:пароль ] [ -c кол-во_параллельных_запросов ] [ -C имя_cookie=значчение ] [ -d ] [ -e csv-&lt;br /&gt;
файл ] [ -g gnuplot-файл ] [ -h ] [ -H заголовок ] [ -i ] [ -k ] [ -n кол-во_запросов ] [ -p POST-файл ] [ -P&lt;br /&gt;
proxy-логин:пароль ] [ -q ] [ -s ] [ -S ] [ -t лимит_времени ] [ -T content-type ] [ -v&lt;br /&gt;
режим_вывода_отчётности] [ -V ] [ -w ] [ -x параметры_тега_&amp;lt;table&amp;gt; ] [ -X proxy[ort] ] [ -y&lt;br /&gt;
параметры_тега_&amp;lt;tr&amp;gt; ] [ -z параметры_тега_&amp;lt;td&amp;gt; ] [http://]хост[:порт]/путь&lt;br /&gt;
&lt;br /&gt;
Допустимые опции&lt;br /&gt;
 -A логин:пароль&lt;br /&gt;
Опция позволяет включить поддержку аутентификации. Имя пользователя и пароль разделяются&lt;br /&gt;
одиночным символом «:» и при передаче кодируются по алгоритму base64. Строка с данными&lt;br /&gt;
авторизации посылается серверу всегда, вне зависимости от его требований (например ответе «401&lt;br /&gt;
требуется авторизация»)&lt;br /&gt;
 -c количество&lt;br /&gt;
Количество запросов посылаемых параллельно за один раз. По умолчанию этот параметр равен&lt;br /&gt;
единице.&lt;br /&gt;
 -C имя-cookie=значение&lt;br /&gt;
Устанавливает строку Cookie в заголовке запроса. Значение этого параметра должно передаваться&lt;br /&gt;
в виде «имя=значение». Параметр может быть использован несколько раз.&lt;br /&gt;
 -d&lt;br /&gt;
Не показывать таблицу соотношения количества запросов к времени их выполнения.&lt;br /&gt;
(Поумолчанию она выводится в конце отчёта).&lt;br /&gt;
 -e имя-csv-файла&lt;br /&gt;
Записывает в CSV-виде (значения разделённые запятой) данные о времени выполнения каждого&lt;br /&gt;
запроса. Опция будет более полезной если Вы создаёте отчёт в виде 'gnuplot'-файла.&lt;br /&gt;
 -g имя-gnuplot-файла&lt;br /&gt;
Записать всю полученную информацию в файл в формате 'gnuplot' или TSV (значения разделённые&lt;br /&gt;
tab`ом) . Файл может быть легко импортировав в следующие пакеты: Gnuplot, IDL, Mathematica,&lt;br /&gt;
Igor или даже Excel. Названия колонок помещаются в самой первой строке файла.&lt;br /&gt;
 -h&lt;br /&gt;
Показ справки.&lt;br /&gt;
 -H заголовок&lt;br /&gt;
Добавляет какое-либо поле в заголовок запроса. Значение этого параметра должно быть в виде&lt;br /&gt;
правильного заголовочного поля и значения, отделённого двоеточием (например &amp;quot;Accept-Encoding:&lt;br /&gt;
zip/zop;8bit&amp;quot;).&lt;br /&gt;
 -i&lt;br /&gt;
Использовать HEAD-запросы вместо GET.&lt;br /&gt;
 -k&lt;br /&gt;
Использовать HTTP KeepAlive. То есть производить множество запросов в рамках одной HTTP-&lt;br /&gt;
сессии. По умолчанию эта опция отключена.&lt;br /&gt;
 -n количество запросов&lt;br /&gt;
Количество запросов которое будет отправлено при тестировании. По умолчанию этот параметр&lt;br /&gt;
равен единице, что может использоваться для проверки работоспособности AB и доступности для&lt;br /&gt;
него сервера.&lt;br /&gt;
 -p путь-к-файлу-с-POST-данными&lt;br /&gt;
Путь к файлу содержащему данные для POST-запроса.&lt;br /&gt;
 -P имя-пользователя:пароль&lt;br /&gt;
Включение авторизации для Proxy-серверов. Логин и пароль разделяются одиночным двоеточием&lt;br /&gt;
(«:») и посылаются в виде закодированной base64-строки. Строка посылается всегда, вне&lt;br /&gt;
зависимости от требований сервера (например ответа с заголовком «407 требуется авторизация&lt;br /&gt;
для proxy-сервера»).&lt;br /&gt;
 -q&lt;br /&gt;
Когда при тестировании требуется отправить больше 150 запросов AB показывает подробный ход&lt;br /&gt;
их отправки. Как только отправляется 10% из них (минимальный порог — 100 запросов) то&lt;br /&gt;
программа выводит соответствующее уведомление. Данная опция отключает этот вывод.&lt;br /&gt;
 -s&lt;br /&gt;
Если AB собран с поддержкой SSL (это можно увидеть вызвав утилиту с опцией -h) то эта опция&lt;br /&gt;
указывает ему использовать HTTPS вместо HTTP. Функция сейчас находится в стадии&lt;br /&gt;
тестирования, поэтому мы не рекомендуем её использовать.&lt;br /&gt;
 -S&lt;br /&gt;
Не показывать информацию об ошибках, предупреждениях и отклонениях в поведении. (В точном&lt;br /&gt;
переводе этой опции я не уверен. Обратитесь пожалуйста к официальной документации. - п.п)&lt;br /&gt;
 -t timelimit&lt;br /&gt;
Максимальное время проведения тестирования. Например эту опцию можно использовать с&lt;br /&gt;
указанием количества запросов в 50000. За указанное время программа постарается произвести&lt;br /&gt;
заданное количество обращений. По умолчанию этот лимит не устанавливается.&lt;br /&gt;
 -T content-type&lt;br /&gt;
Поле «Content-type» при отправке POST-запросов.&lt;br /&gt;
 -v уровень-вывода-отчётов&lt;br /&gt;
Устанавливает уровень вывода отчётности. При уровне 4 выводится информация о заголовках. При&lt;br /&gt;
уровне 3 - код ответа (404, 200, и т.д.). При уровне 2 - информация о различных предупреждениях/&lt;br /&gt;
ошибках и т.д.&lt;br /&gt;
 -V&lt;br /&gt;
Показать номер текущей версии и выйти.&lt;br /&gt;
 -w&lt;br /&gt;
Печатать ответ в виде HTML-таблицы. По умолчанию таблица состоит из 2 колонок и имеет белый&lt;br /&gt;
фон.&lt;br /&gt;
 -x &amp;lt;table&amp;gt;-параметры&lt;br /&gt;
Строка параметров для тега &amp;lt;table&amp;gt;. Они вставляются в тег следующим образом - «&amp;lt;table здесь &amp;gt;».&lt;br /&gt;
 -X адрес-прокси[:порт]&lt;br /&gt;
Использовать PROXY-сервер&lt;br /&gt;
 -y &amp;lt;tr&amp;gt;-параметры&lt;br /&gt;
Строка с параметрами для тега &amp;lt;tr&amp;gt; (аналогично -х).&lt;br /&gt;
 [b]-z &amp;lt;td&amp;gt;-параметры&lt;br /&gt;
Строка параметров для тега &amp;lt;td&amp;gt; (аналогично -х).&lt;br /&gt;
&lt;br /&gt;
[[Category:Web]]&lt;/div&gt;</summary>
		<author><name>Sol</name></author>
	</entry>
</feed>