Человек с нотбуком (pentarh) wrote in ru_highload,
Человек с нотбуком
pentarh
ru_highload

php-fpm VS apache2+mod_php

Вот говорят, php-fpm рулит...

Тестировал я намедни оба варианта на своем любимом кластере отдачи :)


Кластер держит в среднем 50 обращений в секунду к пхп-скрипту.

Пхп скрипт выполняет коннект к удаленной базе, делает SELECT, читает файл, делает операции с регекспами (preg_match), выплевывает результат и делает INSERT.

Апач:

# httpd -l
Compiled in modules:
core.c
mod_access.c
mod_auth.c
mod_auth_anon.c
mod_log_config.c
mod_logio.c
mod_env.c
mod_expires.c
mod_headers.c
mod_setenvif.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_asis.c
mod_info.c
mod_dir.c
mod_actions.c
mod_alias.c
mod_so.c
==============================

Основной конфиг:
Timeout 20
KeepAlive Off
StartServers 50
MinSpareServers 5
MaxSpareServers 10
ServerLimit 2500
MaxClients 1024
MaxRequestsPerChild 10000
LoadModule php4_module libexec/apache2/libphp4.so

==============================
Результат (1 из трех зеркал):
21.3 requests/sec - 152.4 kB/second - 7.2 kB/request
3 requests currently being processed, 7 idle workers


PHP-FPM:

<value name="listen_address">127.0.0.1:9000</value>
<value name="backlog">-1</value>
<value name="style">apache-like</value>
<value name="max_children">512</value>
<value name="StartServers">100</value>
<value name="MinSpareServers">5</value>
<value name="MaxSpareServers">35</value>


Последний обосрался по полной. Мало того, что количество процессов никогда не снижал ниже установленных max_children (512), отъедая хороший кусок памяти, так еще и дропал каждое второе-третье соединение (Nginx выдавал 502 Bad Gateway)

А апач живет себе, держит в памяти штук 10 детишек и обрабатывает все на ура.
Subscribe
  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 83 comments