Решил потестировать PHP в разных связках, а именно – Apache + mod_php, Apache + mod_fcgid + php, Lighttpd + mod_fastcgi + php. Все это еще в двух вариантах – с APC (Advanced PHP Cache) и без него.
Тестировал выполнением вот такой команды:
Выполнял команду на другом сервере чтобы снизить влияние случайных факторов.
И вот что получилось в результате:
![]()
Вот полный вывод в текстовом виде:
testing results
UPD: вот на том же сервере решил протестировать приложение-блогодвижек (Записки айтишника) на рельсах той же командой.
Concurrency Level: 5
Time taken for tests: 15.141659 seconds
Complete requests: 500
Failed requests: 0
Write errors: 0
Total transferred: 6743500 bytes
HTML transferred: 6588000 bytes
Requests per second: 33.02 [#/sec] (mean)
Time per request: 151.417 [ms] (mean)
Time per request: 30.283 [ms] (mean, across all concurrent requests)
Transfer rate: 434.89 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 1
Processing: 6 100 1126.2 7 15141
Waiting: 4 98 1126.1 5 15139
Total: 6 100 1126.2 7 15141
Percentage of the requests served within a certain time (ms)
50% 7
66% 8
75% 9
80% 10
90% 11
95% 13
98% 110
99% 211
100% 15141 (longest request)
UPD: по коментариям Вадима сделал более жесткий тест:
testing results, heavy testing
Без APC mod_fcgid отлетает (2 запроса). Подскажите как подтюнинговать.
Что-то у вас не то – цифры какие-то уж очень небольшие(даже до 7ми запросов в секунду не доходит!).
Около проводил аналогичные тесты с параметрами:
от
ab -c300 -n3000 http://…./ – на действующих серверах
до
ab -c1000 -n1000000 http://…./ – на тестовых площадках
Получалось что с apache+mod_php+eaccelerator больше 800 запросов/сек “выжать” не удалось. На других связках числа были куды выше, но это совсем другая история
Скорее всего у вас узкое место – СУБД и в результате тестируете вы именно её, а никак не web-сервера и не php-интерпретатор.
Или же у вас в коде sleep()-ов вражеской разведкой наставлено
Я бы посоветовал повторить тесты существенно увеличив общее количество запросов (500 запросов – это смешно). Если сервер потянет, то увеличить количество паралельниых запросов и исключить работу с СУБД.
Vadim Voituk
February 3rd, 2008
Кстати обратите внимаение на то, что там где есть APC – общее время выполнения “крутится” вокрух 73 сек, а без APC – около 120 сек, при этом от сервера не зависят
Vadim Voituk
February 3rd, 2008
Время выполнения – работа скрипта. Факт заметного ускорения – налицо. И это радует.
Насчет производительности – платформа не шибко зверская:
AMD Athlon 64 Processor 3500+
1GB RAM
Брал и тестил главную страницу блога на вордпрессе. Как скажете – сейчас погоняю синтетический echo Hello world на всех трех.
Не удивляйтесь если сайт будет тормозить ближайшие несколько минут
dm
February 3rd, 2008
Протестил, запостил.
dm
February 3rd, 2008
а самое главное где – выводы?
как бы лабораторные эксперименты хорошо, но их интерпретация – то, ради чего они вообще проводятся
результаты-то интересные – например mod_fcgid не любит кеш?
COTOHA
February 3rd, 2008
Если посмотреть на второй тест – то можно сделать вывод: lighttpd + php + apc рулит.
dm
February 3rd, 2008
Собственно результат можно было вполне предугадать, но вцелом спасибо – полезно
ACID Jesus
February 3rd, 2008
апач рулит настройкой своей. но прогрывает как мы видим в скорости очень.
Интересно еще по топу посмотреть, что было в момент теста.
интернет бизнес
February 3rd, 2008
не дадите ссылку на “Advanced PHP Cache” в нунло какая то херня вылезает по нему.
на почтарь пожалуйста если не сложно
интернет бизнес
February 3rd, 2008
http://pecl.php.net
http://ua.php.net/apc
В консоли сервера с установленным PEAR надо сделать
dm
February 4th, 2008
Поправка: Alternative PHP Cache
dm
February 4th, 2008
Попробуйте повторить сравнение с помощью какого-нибудь другого синтетического теста, ab далеко не самую правдоподобную проверку производительности выполняет, возможно ситуация несколько изменится.
Мне, например, больше siege по душе в этом плане, или в крайнем случае httperf.
Иван Блинков
March 22nd, 2008
Будет время – повторю обязательно. Особенно меня интересует тест Lighttpd 1.5.0
dm
March 22nd, 2008
Аха, тесты lightspeed webserver было бы интересно посмотреть…
Jeurey
April 2nd, 2008
Было бы интересно их увидеть предоставь кто-нибудь на litespeed лицензию, не ограничивающую его в 150 одновременных коннектов (именно такое ограничение имеет Standart edition).
Да, можно в течение 15 дней потестить полную версию (скорее всего при следующем тесте так и поступлю), но далеко не всякий стартап захочет покупать лицензию за минимум $249.
Тем более, я подозреваю что его производительность будет весьма близка к lighttpd.
Но попробуем, так и быть.
dm
April 2nd, 2008