Назад | Перейти на главную страницу

Linux + apache + mpm_worker + mod_fcgid + php5

Я использую хостинг на основе VPS для веб-сайта и обнаружил, что apache2 + prefork + mod_php по умолчанию является слишком ресурсоемким для моего VPS для достижения приемлемого параллелизма. (Ест RAM)

Итак, я недавно перешел на apache2 + mpm_worker + mod_fcgid + php5

Ниже представлена ​​моя конфигурация соответствующих модулей.

<IfModule mpm_worker_module>
    StartServers       4
    MinSpareThreads    10
    MaxSpareThreads    200
        ThreadLimit          200
        ThreadsPerChild      25
    MaxClients        200
        MaxRequestsPerChild   1000
</IfModule>

<IfModule mod_fcgid.c>
    AddHandler fcgid-script .fcgi .php
    # Where to look for the php.ini file?
    DefaultInitEnv PHPRC        "/etc/php5/apache2"
    # Maximum requests a process handles before it is terminated
    MaxRequestsPerProcess       1000
    # Maximum number of PHP processes
    MaxProcessCount             10
    # Number of seconds of idle time before a process is terminated
    IPCCommTimeout              240
    IdleTimeout                 240
    #Or use this if you use the file above
    FCGIWrapper /usr/bin/php5-cgi-wrapper .php
</IfModule>

Проблема в том, что при нагрузочном тестировании моего веб-сайта я не могу перегружать процессор моего сервера. Также доступна большая пропускная способность сети. Использование памяти ниже 20% от моего 1 ГБ VPS. Но все же время загрузки увеличивается.

Я не знаю, что делаю не так.

Я медленно увеличиваю количество одновременных запросов / соединений с 50 до 200. Это нагрузка на сервер.

Я использовал iotop для измерения io диска. там нет ничего значительного. 3-5к / сек в пиковом режиме.

Что ж, если это Disk IO, у меня очень мало места для игры в качестве размещенного VPS.

Я просто попытался загрузить простой html-файл, кэшированный из вывода php, чтобы исключить любые задержки на фронте php. Узкое место - не php. График такой же.

Это должно быть проблемой параллелизма!