Fork me on GitHub

The WebDevil

Enjoy development

Решил потестировать PHP в разных связках, а именно – Apache + mod_php, Apache + mod_fcgid + php, Lighttpd + mod_fastcgi + php. Все это еще в двух вариантах – с APC (Advanced PHP Cache) и без него.

Тестировал выполнением вот такой команды:

ab -c 5 -n 500 http://dmitry.shaposhnik.name/

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

И вот что получилось в результате:
testing results, table
Вот полный вывод в текстовом виде:
testing results

UPD: вот на том же сервере решил протестировать приложение-блогодвижек (Записки айтишника) на рельсах той же командой.

Document Length:        13176 bytes

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: по коментариям Вадима сделал более жесткий тест:

ab -c300 -n3000 http://dmitry.shaposhnik.name/test.php

testing results, heavy testing
Без APC mod_fcgid отлетает (2 запроса). Подскажите как подтюнинговать.

15 Responses to “Webservers benchmark”

  1. Что-то у вас не то – цифры какие-то уж очень небольшие(даже до 7ми запросов в секунду не доходит!).
    Около проводил аналогичные тесты с параметрами:
    от
    ab -c300 -n3000 http://…./ – на действующих серверах
    до
    ab -c1000 -n1000000 http://…./ – на тестовых площадках

    Получалось что с apache+mod_php+eaccelerator больше 800 запросов/сек “выжать” не удалось. На других связках числа были куды выше, но это совсем другая история :)

    Скорее всего у вас узкое место – СУБД и в результате тестируете вы именно её, а никак не web-сервера и не php-интерпретатор.
    Или же у вас в коде sleep()-ов вражеской разведкой наставлено :)

    Я бы посоветовал повторить тесты существенно увеличив общее количество запросов (500 запросов – это смешно). Если сервер потянет, то увеличить количество паралельниых запросов и исключить работу с СУБД.

    Vadim Voituk

  2. Кстати обратите внимаение на то, что там где есть APC – общее время выполнения “крутится” вокрух 73 сек, а без APC – около 120 сек, при этом от сервера не зависят :)

    Vadim Voituk

  3. Время выполнения – работа скрипта. Факт заметного ускорения – налицо. И это радует.

    Насчет производительности – платформа не шибко зверская:
    AMD Athlon 64 Processor 3500+
    1GB RAM

    Брал и тестил главную страницу блога на вордпрессе. Как скажете – сейчас погоняю синтетический echo Hello world на всех трех.
    Не удивляйтесь если сайт будет тормозить ближайшие несколько минут ;)

    dm

  4. Протестил, запостил.

    dm

  5. а самое главное где – выводы?
    как бы лабораторные эксперименты хорошо, но их интерпретация – то, ради чего они вообще проводятся :)

    результаты-то интересные – например mod_fcgid не любит кеш?

    COTOHA

  6. Если посмотреть на второй тест – то можно сделать вывод: lighttpd + php + apc рулит.

    dm

  7. Собственно результат можно было вполне предугадать, но вцелом спасибо – полезно 8-)

    ACID Jesus

  8. апач рулит настройкой своей. но прогрывает как мы видим в скорости очень.

    Интересно еще по топу посмотреть, что было в момент теста.

    интернет бизнес

  9. не дадите ссылку на “Advanced PHP Cache” в нунло какая то херня вылезает по нему.
    на почтарь пожалуйста если не сложно

    интернет бизнес

  10. http://pecl.php.net
    http://ua.php.net/apc
    В консоли сервера с установленным PEAR надо сделать

    pecl install apc

    dm

  11. Поправка: Alternative PHP Cache

    dm

  12. Попробуйте повторить сравнение с помощью какого-нибудь другого синтетического теста, ab далеко не самую правдоподобную проверку производительности выполняет, возможно ситуация несколько изменится.

    Мне, например, больше siege по душе в этом плане, или в крайнем случае httperf.

    Иван Блинков

  13. Будет время – повторю обязательно. Особенно меня интересует тест Lighttpd 1.5.0

    dm

  14. Аха, тесты lightspeed webserver было бы интересно посмотреть…

    Jeurey

  15. Было бы интересно их увидеть предоставь кто-нибудь на litespeed лицензию, не ограничивающую его в 150 одновременных коннектов (именно такое ограничение имеет Standart edition).
    Да, можно в течение 15 дней потестить полную версию (скорее всего при следующем тесте так и поступлю), но далеко не всякий стартап захочет покупать лицензию за минимум $249.
    Тем более, я подозреваю что его производительность будет весьма близка к lighttpd.

    Но попробуем, так и быть.

    dm