Добрый день!
У меня возникла потребность узнать сколько запросов может обрабатывать веб-сервер в секунду, тоесть узнать его производительность.
На примере apache или nginx, на системе Fedora 9.
Я пользовался утилитой ab, и локально решил проверить:ab -n 100000 -c 5 http://localhost/index.html
результаты получались в районе 4000 тысяч в секунду.
Подскажите правильно ли я делаю. Подскажите пожалуйста другие пути решения.с ув. Святослав
>ab -n 100000 -c 5 http://localhost/index.html
>результаты получались в районе 4000 тысяч в секунду.
>Подскажите правильно ли я делаю. Подскажите пожалуйста другие пути решения.это субъективный тест, т.к. index.html после первого запроса сразу попадает в кеш (в какой зависит от ОС, веб-сервера и настроек).
что именно вы хотите протестировать? работу веб-сервера или скриптов кот. отвечают на запросы, реврайты?
имхо самый простой и быстрый ответ да и способ тоже - написать скрипт, кот. именно в вашем случае выполнит необходимые тесты и выдаст результаты по задержкам. я, покрайней мере, других объективных способов не знаю.
>это субъективный тест, т.к. index.html после первого запроса сразу попадает в кеш
>(в какой зависит от ОС, веб-сервера и настроек).я думаю что разницы нет - берет сервер страничку из кеша или с диска. Главное же он обрабатывает запрос от клиента.
Тот же apache, ngixn или lighttpd сразу поместит страничку в кэш. тоесть если для всех троих серверов выполнить строку:ab -n 100000 -c 5 http://localhost/index.html
то все и apache, ngixn и lighttpd будут в равных условиях. Я правильно понимаю?
Я хочу узнать на сколько производительнее работают альтеранативы apache.
>то все и apache, ngixn и lighttpd будут в равных условиях. Я
>правильно понимаю?
>Я хочу узнать на сколько производительнее работают альтеранативы apache.для статики лучше всего подходят nginx и lighttpd, т.к. у них более оптимальный способ работы для этого. Если апач для каждого соединения создаёт новый процесс, отжирая оперативную память, то нгинксу этого не нужно - он может работать паралельно со множеством клиентов на одном рабочем процессе.
Для примера: если у сервера сразу 100 медленных клиентов (диалапщиков) запросят большой файл, то в памяти будет висеть 100 процессов апача до тех пор, пока клиенты не получат всё до последнего байта. Nginx же в этом случае обойдётся всего несколькими процессами и обслужит клиентов быстрее, т.к. не теряет время на форки.
Единственный недостаток у нгинкса - пока не реализован неблокирующий доступ к диску, т.е. надо создавать немного побольше процессов (с запасом). У lighttpd этого недостатка нет, AFAIK.