I run a fairly busy site with a Wordpress blog and vBulletin forums. I
recently dumped Apache and and using nginx for everything (which has been
incredible and I would never go back). I'm using PHP as fastCGI and have a
wrapper script to start the process. We average about 1,000 concurrent users
at any given time. Usually anywhere from 800 to 1200+.
This is the script I found to start php-cgi:
#!/bin/sh
PHP=/usr/bin/php-cgi
PHP_PID=/tmp/php.pid
FCGI_BIND_ADDRESS=127.0.0.1:8888
PHP_FCGI_CHILDREN=4
PHP_FCGI_MAX_REQUESTS=1000
env -i PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN \
PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS \
$PHP -b $FCGI_BIND_ADDRESS &
echo $! > "$PHP_PID"
This has been working great and PHP hasn't completely died on me yet.
The problem that I'm having is that while viewing TOP, php-cgi seems to die
and restart about every 2-3 minutes, sometimes as often as every minute. At
least it restarts itself, but that can take a couple of seconds, causing a
delay if you happen to be browsing the site during this time.
In the above script, I've tried increasing the PHP_FCGI_MAX_REQUESTS, even
as high as 1,000,000. I've also tried completely omitting that value. No
matter what, php-cgi reacts the same way.
I know it needs to recycle itself to prevent memory leaks, but I don't think
it should be happening that often. Any ideas on how to fix this?
[Index of Archives]
[PHP Users]
[PHP Home]
[PHP on Windows]
[Kernel Newbies]
[PHP Classes]
[Postgresql]
[PHP Books]
[PHP Databases]
[PHP SOAP]