Bierteufel
Registered User
Hallo,
ich habe ein "kleines" Problem mit PHP als FCGI mit folgenden System:
- CENTOS 5.4
- PHP 5.2.13
- PLESK 9.2.x
- PHP FCGI mit eigner PHP.INI je Domain (via Wrapper Script)
- das ganze auf einen VSERVER
Die gestarteten PHP FCGI Prozesse scheinen sich nicht zu beenden. So, dass beim Zugriff auf die jeweiligen Webseiten, im Laufe
der Zeit immer mehr Prozesse gestartet werden.
Nun dachte ich mir ich umgehe das in dem ich PHP mit SUPHP betreibe. Das funktioniert auch, jedoch ist die Performance bei einigen
CMS schlechter da ja keine OP Caches (EAC, XCACHE etc.) damit laufen. Mit FCGI tut Sie dies aber sehr schön.
Mein Ziel ist/muss es also sein, die Ursache zu finden warum, die FCGI Prozesse nicht beendet werden und halt immer mehr RAM aufbrauchen.
Hier noch die notwendigen Logs, evtl. kann ja jemand einen Tip geben.
HTTPD.CONF
SWTUNE.CONF
FCGID.CONF
WRAPPER SCRIPT
ich habe ein "kleines" Problem mit PHP als FCGI mit folgenden System:
- CENTOS 5.4
- PHP 5.2.13
- PLESK 9.2.x
- PHP FCGI mit eigner PHP.INI je Domain (via Wrapper Script)
- das ganze auf einen VSERVER
Die gestarteten PHP FCGI Prozesse scheinen sich nicht zu beenden. So, dass beim Zugriff auf die jeweiligen Webseiten, im Laufe
der Zeit immer mehr Prozesse gestartet werden.
Nun dachte ich mir ich umgehe das in dem ich PHP mit SUPHP betreibe. Das funktioniert auch, jedoch ist die Performance bei einigen
CMS schlechter da ja keine OP Caches (EAC, XCACHE etc.) damit laufen. Mit FCGI tut Sie dies aber sehr schön.
Mein Ziel ist/muss es also sein, die Ursache zu finden warum, die FCGI Prozesse nicht beendet werden und halt immer mehr RAM aufbrauchen.
Hier noch die notwendigen Logs, evtl. kann ja jemand einen Tip geben.
HTTPD.CONF
Code:
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers 1
MinSpareServers 1
MaxSpareServers 3
ServerLimit 15
MaxClients 15
MaxRequestsPerChild 4000
</IfModule>
# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule worker.c>
StartServers 1
MaxClients 10
MinSpareThreads 1
MaxSpareThreads 1
ThreadsPerChild 10
MaxRequestsPerChild 4000
</IfModule>
SWTUNE.CONF
Code:
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule prefork.c>
StartServers 1
MinSpareServers 1
MaxSpareServers 3
ServerLimit 15
MaxClients 15
MaxRequestsPerChild 4000
</IfModule>
# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule worker.c>
StartServers 1
MaxClients 10
MinSpareThreads 1
MaxSpareThreads 1
ThreadsPerChild 10
MaxRequestsPerChild 4000
</IfModule>
FCGID.CONF
Code:
# added by psa-mod-fcgid-configurator
LoadModule fcgid_module /usr/lib64/httpd/modules/mod_fcgid.so
<IfModule mod_fcgid.c>
SocketPath /var/lib/httpd/fcgid/sock
</IfModule>
# added by psa-mod-fcgid-configurator
<IfModule mod_fcgid.c>
IdleTimeout 30
IdleScanInterval 15
BusyScanInterval 15
ErrorScanInterval 6
ZombieScanInterval 6
ProcessLifeTime 1800
MaxProcessCount 64
DefaultMaxClassProcessCount 8
IPCConnectTimeout 30
IPCCommTimeout 45
DefaultInitEnv RAILS_ENV production
</IfModule>
WRAPPER SCRIPT
Code:
#!/bin/sh
#
# Custom PHP FCGID wrapper for Plesk domains
#
PHPRC="/etc/php-ini.d/php-${UID}.ini"
[ -f ${PHPRC} ] || PHPRC="/etc/php.ini"
export PHPRC
exec /usr/bin/php-cgi.app