Бенчмаркинг (пытки) сервера ab(.exe)

Прислано: sashka

чт, 22/02/2007 - 23:50

Другие статьи по теме:

Читнув эту
http://buytaert.net/drupal-vs-joomla-performance
статью, решил помучить и свой сервер. Муки-муками, пытки-пытками — это всё конечно весело, но сохраняя во время разработки ресурса на локальной машине промежуточные результаты, можно точно и объективно наблюдать насколько снижется производительность сайта и при его "набивке" теми или иными фичами. Это главная практическая цель :)
Прошу в студию: ab! (ab — Apache HTTP server benchmarking tool).

Кривой перевод краткого варианта опций командной строки (много ключей опущенно)...

ab [ -A имя:пароль ]
[ -c параллелизм ]
[ -C имяплюшки=значение ]
[ -H свой заголовок  (аля "Accept-Encoding: zip/zop;8bit") ]
[ -i HEAD запрос вместо GET]
[ -k включение HTTP KeepAlive по умолчанию отключено ]
[ -n количество запросов ]
[ -q тихий режим]
[ -s https ]
[ -t лимит времени (сек.) ]
[ -T заголовок Content-type для содержимого POST]
[ -v подробный вывод]
[ -V сообщить версию и выйти :) ]
[ -w вывод в html]
[ -X proxy[:port] ]
[http://]имяхоста[:port]/path

примеры коммандной строки (скучаю по никсовому шеллу):

ab.exe <a href="http://drupal1/
ab.exe" title="http://drupal1/
ab.exe">http://drupal1/
ab.exe</a> -n 100 <a href="http://drupal1/" title="http://drupal1/">http://drupal1/</a> ...количество запросов 100 штук
ab.exe -n 100 -c 5 <a href="http://drupal1/" title="http://drupal1/">http://drupal1/</a> ...тоже + паралельно 5
ab.exe -n 100 -c 5 -w <a href="http://drupal1/" title="http://drupal1/">http://drupal1/</a> ...вывод в хтмл
ab.exe -n 100 -c 5 -w <a href="http://drupal1/" title="http://drupal1/">http://drupal1/</a> > tests#1.html ...тоже самое только в файл ;)
ab.exe -n 100 -c 5 -w -t 30 <a href="http://drupal1/" title="http://drupal1/">http://drupal1/</a> ...30 секунд на всё про всё не больше...

Полное руководство по пыткам серевера:
http://httpd.apache.org/docs/2.0/programs/ab.html

Пример того, что эта вещь выдаёт:

D:\usr\apache\bin>ab.exe -n 500 -c 5 drupal1/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, <a href="http://www.zeustech.net
Copyright" title="http://www.zeustech.net
Copyright">http://www.zeustech.net
Copyright</a> 2006 The Apache Software Foundation, <a href="http://www.apache.org
 
Benchmarking" title="http://www.apache.org
 
Benchmarking">http://www.apache.org
 
Benchmarking</a> drupal1 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Finished 500 requests
 
 
Server Software:        Apache/1.3.29
Server Hostname:        drupal1
Server Port:            80
 
Document Path:          /
Document Length:        4999 bytes
 
Concurrency Level:      5
Time taken for tests:   265.375000 seconds
Complete requests:      500
Failed requests:        0
Write errors:           0
Total transferred:      2728500 bytes
HTML transferred:       2499500 bytes
Requests per second:    1.88 [#/sec] (mean)
Time per request:       2653.750 [ms] (mean)
Time per request:       530.750 [ms] (mean, across all concurrent requests)
Transfer rate:          10.04 [Kbytes/sec] received
 
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    6  11.2      0      78
Processing:  1375 2636 304.8   2546    4359
Waiting:     1328 2554 295.7   2484    4046
Total:       1375 2643 305.7   2546    4359
...

Утилита идёт со вторым апачем, но работает и с первым. Для тех кому лень качать весь дистр ради утилиты в 64кб выкладываю. Осторожно exe :D

Формат ввода немного подкаверкал ввод, но ничего...

Прикрепленный файлРазмер
ab.zip30.53 кб

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано Shedko в пт, 23/02/2007 - 00:01.

Блин, не знаю почему, но у меня эта утилита вызывает желание устроить атаку на любой сервер, запустили 10 экземляров из cmd файла и уложили сервер :-)


Опубликовано sashka в пт, 23/02/2007 - 00:24.

Ну зачем же так? Если можно просто запустить с ключом `-c 50 -n 1500` думаю и ось ляжет :-D если админы не прописали ограничение на количество запросов.


Опубликовано qman в вс, 25/02/2007 - 12:13.

Огромное спасибо за статью. Проверю на работе сколько запросов выдерживает сервер microsoft internet information server.


Опубликовано kiev1 в вс, 25/02/2007 - 15:45.

запросы выдерживает не сервер а то что этим сервером запускается - php mysql запросы и тд, а сам сервер может выдержать очень много - от 100 до 300 запросов в секунду.

> если админы не прописали ограничение на количество запросов

правильные админы конечно прописали ограничение на количество запросов с одного IP
а так-же есть кажется модуль к апачу который вообще запрещает коннекты с общеизвестных опен-прокси


Опубликовано tsippa в пн, 26/02/2007 - 18:17.

http://hostinfo.ru/articles/439

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


Опубликовано vadbars@drupal.org в вс, 11/03/2007 - 09:16.

Вот здесь подборка статей (англ.яз.) по тюнингу и оптимизации Drupal для "больших" сайтов: http://2bits.com/articles/drupal-performance-tuning-and-optimization-for...


Я ставлю строчку "php_value error_reporting 7" в файл .htaccess, а вы? :) Полный русский перевод Drupal 5.x и еще некоторых модулей.


Опубликовано sashka в пн, 12/03/2007 - 23:06.

Большое спасибо за дополнительные утилиты и приведённые ссылки.
Думаю тема глумления раскрыта полностью :D


Ссылки партнёров