Бенчмарк веб сервера. | Выделенный сервер своими руками

Бенчмарк веб сервера.

Одним из наиболее важных показателей правильности настройки веб сервера (будь то apache или nginx или любой другой веб сервер) безусловно, является его производительность. Для оценки производительности и были разработаны специальные инструменты.

Одним из самых распространенных методов оценки является утилита самого apache - ab (Apache HTTP server benchmarking tool). Идет она в комплекте с самим веб сервером apache, и устанавливается тоже вместе с ним. Поэтому вопрос установки опустим. Типовой запуск выглядит примерно так:
ab -c10 -n500 http://mydomen.dom/index.php
где:
-с10 - количество конкурентных запросов (по 10 запросов одновременно посылается веб серверу);
-n500 - общее количество запросов в тесте;
http://mydomen.dom/index.php - адрес тестируемого ресурса.

Еще одним из тестов производительности веб сервера является утилита siege.
Качаем, распаковываем и ставим:
cd /usr/local/src
wget ftp://ftp.joedog.org/pub/siege/siege-latest.tar.gz
tar zxvf siege-latest.tar.gz
cd siege-2.66/
./configure
make
make install

Типичное использование:
siege http://mydomen.dom/index.php -d1 -r50 -c10

где:
http://mydomen.dom/index.php - адрес тестируемого ресурса;
-d1 - это задержка в секундах между посылками запросов. По умолчанию это значение 3 и означает, что запросы будут посылаться в случайные промежутки времени от 1 до 3 секунд. Мы выставляем 1 секунду;
-r50 - это количество повторов теста. В нашем случае 50 повторов.
-с10 - это количество конкурентных запросов (по 10 запросов одновременно (вернее почти одновременно) посылаем веб серверу);
То есть 50 подходов по 10 конкурентных запросов к веб серверу.

По результатам тестов можно оценить производительность сервера. Но только оценить. Говорить об абсолютных величинах производительности некорректно. Потому что очень многое зависит от того какой конкретно сайт мы проверяем. Какого типа там страницы, каков их обьем, статическая она или динамическая и так далее. Поэтому оценивать нужно грубо говоря одни и те же ресурсы. Либо хотябы на одном движке.

P.S. Если кому-нибудь нужны мои заметки, пожалуйста берите. Только оставьте ссылку на http://dedicatesupport.com

Хорошая статья. Вот еще

Хорошая статья. Вот еще немного про AB: http://plutov.by/post/apache_bench_easy_tool

Конечно лучше тестировать

Конечно лучше тестировать несколько раз. Раз 5 достаточно. А потом с помощью теории ошибок найдем почти абсолютную производительность!

Здравствуйте. У меня ab

Здравствуйте. У меня ab глючит.

Ошибка
apr_poll: The timeout specified has expired (70007)

сервер apache 2.2.14, php5.2.11, eaccelerator, zend optimizer

резко растет нагрузка. процессы апача не завершаются и так до бесконечности, load average доходит до 200 и продолжает расти.
команда для запуска:
ab -c10 -n500 http://mydomen.dom/index.php

если поменять на
ab -c5 -n500 http://mydomen.dom/index.php
то все нормально.

запросы идут к сайту на базе wordpress.
если делать запросы к обычному скрипту на php - никаких проблем.

также при отключении eAccelerator никаких проблем не наблюдается ни с wordpres ни с другими скриптами.

Думаю лучше проотестировать

Думаю лучше проотестировать несколько раз. Все-таки каждый раз они показывают разные результаты.

Полезные утилиты, жаль что не

Полезные утилиты, жаль что не всегда есть ssh под рукой. Может есть какие-либо он-лайн бенчмарки или утилиты под windows?

И главный вопрос - как эту

И главный вопрос - как эту самую производительность увеличить ?

Все искуственные тесты дают

Все искуственные тесты дают искусственные результаты... увы.

Спасибо за ценную информацию.

Спасибо за ценную информацию. Правда мой блог про linux, но FreeBSD я тоже очень уважаю. :-)

При установке из портов во

При установке из портов во FreeBSD siege требует создания конфигурационного файла. Делается командой siege.config, о чем он и сообщает :)