Apache benchmark – одна из самых простых утилит для нагрузочного тестирования сайта. Поставляется она вместе с веб сервером apache и не нуждается в настройке. Главная задача apache benchmark – показать, как много запросов сможет выполнить веб сервер и как быстро они выполняются.
Пример запуска теста на основе apache benchmark:
ab -c 10 -n 10 http://mysitename.local/
Пример запуска теста apache benchmark для denwer:
z:
cd /usr/local/apache/bin/
ab -c 10 -n 10 http://mysitename.local/
Где -с 10 - количество параллельных запросов, -n 10 - общее число запросов, http://mysitename.local/ – тестируемый сайт.
Пример выполнения:
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking mysitename.local (be patient).....done
Server Software: Apache/2.2.22
Server Hostname: mysitename.local
Server Port: 80
Document Path: /
Document Length: 110881 bytes
Concurrency Level: 10
Time taken for tests: 1.733 seconds
Complete requests: 10
Failed requests: 9
(Connect: 0, Receive: 0, Length: 9, Exceptions: 0)
Write errors: 0
Total transferred: 1112916 bytes
HTML transferred: 1108836 bytes
Requests per second: 5.77 [#/sec] (mean)
Time per request: 1733.099 [ms] (mean)
Time per request: 173.310 [ms] (mean, across all concurrent requests)
Transfer rate: 627.10 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.3 0 1
Processing: 1261 1477 199.6 1567 1732
Waiting: 1248 1461 197.9 1553 1723
Total: 1261 1477 199.7 1568 1732
Percentage of the requests served within a certain time (ms)
50% 1568
66% 1640
75% 1641
80% 1724
90% 1732
95% 1732
98% 1732
99% 1732
100% 1732 (longest request)
Тут нас интересуют следующие строки:
Time taken for tests - общее время тестирования.
Complete requests - количество выполненных запросов.
Failed requests - количество неудачных запросов, 0 - сервер выдержал заданную нагрузку
Requests per second - количество запросов в секунду.
Time per request - втечении этого времени выполнились 10 параллельных запросов
Time per request - среднее время выполнения одного запроса
Percentage of the requests served within a certain time (ms) - доля запросов на единицу времени. Тут видно, что 50% запросов выполнились за 1,5 секунды, а самый долгий запрос выполнялся 1,7 секунды.
Изменяя параметры -n и -c можно отслеживать поведение сервера под нагрузкой.
Наиболее полезные Ключи:
-n | requests | Количество запросов, которое надо выполнить |
-c | concurrency | Кол-во одновременных запросов |
-t | timelimit | Максимальное время ожидания ответа |
-b | windowsize | Размер буфера TCP send/receive, в байтах |
-p | postfile | Файл, содержащий данные для построения POST-запроса. Требуется использование ключа -T |
-u | putfile | Файл, содержащий данные для построения PUT-запроса. Требуется использование ключа -T |
-T | content-type | Заголовок с указанием content-type, например: 'application/x-www-form-urlencoded'. По-умолчанию используется 'text/plain' |
-v | verbosity | How much troubleshooting info to print |
-w | Выводить результат в HTML | |
-i | Использовать HEAD вместо GET | |
-X | proxy:port | Использовать прокси-сервер |
-V | Показать версию Apache Bench и выйти | |
-h | Показать список ключей |
Больше информации на странице разработчика здесь
Комментарии
Комментарии отсутствуют, Вы можете быть первым