FcgidProcessLifeTime без эффекта
Я бегу PHP обработчик fcgid
LoadModule fcgid_module modules/mod_fcgid.so
FcgidMaxRequestsPerProcess 3000
FcgidMaxProcesses 3000
FcgidMaxProcessesPerClass 16
FcgidMinProcessesPerClass 1
FcgidProcessLifeTime 7200
FcgidIOTimeout 180
IPCConnectTimeout 60
FcgidIdleTimeout 600
FcgidIdleScanInterval 30
FcgidBusyTimeout 3600
FcgidBusyScanInterval 30
FcgidErrorScanInterval 3
FcgidZombieScanInterval 3
FcgidFixPathinfo 0
FcgidMaxRequestInMem 419430400
FcgidMaxRequestLen 1073741824
Процессы прекращаются каждые 10 минут или более, также я установил FcgidProcessLifeTime 7200
я использую mpm_worker
также:
Timeout 50
<IfModule worker.c>
StartServers 16
ServerLimit 1800
MaxClients 1728
MinSpareThreads 75
MaxSpareThreads 250
ThreadLimit 600
ThreadsPerChild 64
MaxRequestsPerChild 10000
KeepAlive On
MaxKeepAliveRequests 50
KeepAliveTimeout 5
</IfModule>
Процессор: двойной Intel Xeon E5630, оперативная память: 32 ГБ DDR3, PHPv5.3.14
Как я могу решить эту проблему.? и сохранить время жизни процесса.
2 ответа
Это очень старый вопрос, но недавно пришлось обратиться к нему.
У тебя есть FcgidIdleTimeout 600
,
Это означает, что если процесс простаивает в течение 10 минут, он будет остановлен независимо от того, что вы установили в FcgidProcessLifeTime
,
Я не проверял это, но если вы хотите подтвердить, вы можете установить FcgidMaxProcessesPerClass 1
а затем отправлять запросы каждые 5 минут. Это должно держать этот процесс для FcgidProcessLifeTime
потому что это никогда не будет праздным для FcgidIdleTimeout
,
Таким образом, оптимизированная конфигурация будет зависеть от вашей рабочей нагрузки.
Я бы порекомендовал перейти на php-fpm с помощью mod_fastcgi или mod_proxy_fcgi (требуется Aapache 2.4). PHP-FPM осуществляет свое собственное управление процессами, и вы даже можете выбрать различные менеджеры процессов, подходящие для вашего сайта.
php-fpm становится все более и более стандартным способом развертывания приложений php.