Using-Apache-Bench-for-Simple-Load-Testing

Использование Apache Bench для тестирования нагрузки на веб-сервер

Новости

Если у вас есть доступ к серверу Mac или Linux, скорее всего, у вас также установлен простой инструмент для генерации HTTP трафика, который называется Apache Bench, или ab. Если вы используете Windows и у вас установлен Apache, вы также можете найти ab.exe в папке apache/bin.

 

Важно: Apache Bench следует запускать только на тех серверах, которыми вы владеете или на которых у вас есть явное разрешение на тестирование. В некоторых странах использование Apache Bench на несанкционированных сайтах может считаться преступлением и уголовно наказуемо.

 

Предположим, мы хотим увидеть, как быстро сервер сможет обрабатывать 100 запросов к Yahoo, при этом одновременно выполняя не более 10 запросов:

ab -n 100 -c 10 http://www.yahoo.com/

 

Вывод этой команды будет генерировать выходные данные следующим образом:

Concurrency Level: 10
Time taken for tests: 1.889 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 1003100 bytes
HTML transferred: 949000 bytes
Requests per second: 52.94 [#/sec] (mean)
Time per request: 188.883 [ms] (mean)
Time per request: 18.888 [ms] (mean, across all concurrent requests)
Transfer rate: 518.62 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 57 59 1.7 59 64
Processing: 117 126 7.5 124 162
Waiting: 57 62 7.0 60 98
Total: 175 186 8.0 184 224

Percentage of the requests served within a certain time (ms)
50% 184
66% 186
75% 187
80% 188
90% 192
95% 203
98% 216
99% 224
100% 224 (longest request)

 

 

Как вы видите, это очень полезная информация, сервер возвращал запросы со скоростью 52,94 запросов в секунду, самый быстрый запрос составлял 175 мс, самый медленный 224 мс.

Поэтому в следующий раз, когда у вас возникнет соблазн воспользоваться cfloop и GetTickCount, чтобы выполнить бенчмаркинг кода, попробуйте ab, он прост в использовании и даст гораздо более реалистичные результаты.

Поскольку ab поддерживает одновременность выполнения, это даёт два больших преимущества перед cfloop. Главное, что он позволяет вам проверять одновременность выполнения кода, это может помочь вам определить любые возможные условия: гонки или проблемы с блокировкой. Одновременные запросы также представляют собой более естественное моделирование нагрузки, чем циклические проверки.

Предположим, вы хотели протестировать одновременно несколько URL-адресов. Вы можете сделать это, создав сценарий оболочки с несколькими вызовами ab. В конце каждой строки укажите &, что укажет команде запускаться в фоновом режиме. Вы также захотите перенаправить вывод в файл для каждого URL, используя > filename. Например:

#!/bin/sh

ab -n 100 -c 10 http://127.0.0.1:8300/test.cfm > test1.txt &
ab -n 100 -c 10 http://127.0.0.1:8300/scribble.cfm > test2.txt &

 

 

Информация об использовании из ab, установленной на моем Mac (v2.3), приведена ниже. Как вы видите, есть много полезных опций для вывода результатов и отправки дополнительных данных в запрос.

Usage: ab [options] [http[s]://]hostname[:port]/path
Options are:
-n requests Number of requests to perform
-c concurrency Number of multiple requests to make
-t timelimit Seconds to max. wait for responses
-b windowsize Size of TCP send/receive buffer, in bytes
-p postfile File containing data to POST. Remember also to set -T
-T content-type Content-type header for POSTing, eg.
'application/x-www-form-urlencoded'
Default is 'text/plain'
-v verbosity How much troubleshooting info to print
-w Print out results in HTML tables
-i Use HEAD instead of GET
-x attributes String to insert as table attributes
-y attributes String to insert as tr attributes
-z attributes String to insert as td or th attributes
-C attribute Add cookie, eg. 'Apache=1234. (repeatable)
-H attribute Add Arbitrary header line, eg. 'Accept-Encoding: gzip'
Inserted after all normal header lines. (repeatable)
-A attribute Add Basic WWW Authentication, the attributes
are a colon separated username and password.
-P attribute Add Basic Proxy Authentication, the attributes
are a colon separated username and password.
-X proxy:port Proxyserver and port number to use
-V Print version number and exit
-k Use HTTP KeepAlive feature
-d Do not show percentiles served table.
-S Do not show confidence estimators and warnings.
-g filename Output collected data to gnuplot format file.
-e filename Output CSV file with percentages served
-r Don't exit on socket receive errors.
-h Display usage information (this message)
-Z ciphersuite Specify SSL/TLS cipher suite (See openssl ciphers)
-f protocol Specify SSL/TLS protocol (SSL2, SSL3, TLS1, or ALL)

 

 

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

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University.

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
Новости

Больше похожих постов

Новая атака BLESA угрожает миллиардам Bluetooth-устройств, курсы переподготовки по информационной безопасности Минск

Новая атака BLESA угрожает миллиардам Bluetooth-устройств, курсы переподготовки по информационной безопасности Минск

49
0
Исследователи обнаружили новый метод атаки уязвимых Bluetooth-устройств. Если хакеры начнут ее эксплуатировать, но смогут заразить миллиарды приборов по всему миру.…
Российские хакеры похитили почти 17 миллионов долларов, курс по кибербезопасности секреты хакеров Минск

Российские хакеры похитили почти 17 миллионов долларов, курс по кибербезопасности секреты хакеров Минск

48
0
Власти США предъявили обвинения двум российским хакерам во взломе криптовалютных бирж. Более того, правоохранительные органы смогли собрать достаточно улик. Исследователи,…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Most Viewed Posts
Меню