php-cgi constantly recycles every couple of minutes

mindfrost82 nginx-forum at nginx.us
Thu Jan 28 19:16:07 MSK 2010


merlin corey Wrote:
-------------------------------------------------------
> On Mon, Jan 25, 2010 at 11:17 AM, mindfrost82 
> wrote:
> > 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?
> >
> > Posted at Nginx Forum:
> http://forum.nginx.org/read.php?2,45516,45516#msg-
> 45516
> >
> >
> > _______________________________________________
> > nginx mailing list
> > nginx at nginx.org
> > http://nginx.org/mailman/listinfo/nginx
> >
> 
> PHP_FCGI_MAX_REQUESTS=1000
> 
> The children get automatically recycled when using
> this method, I believe.
> 
> -- Merlin
> 
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://nginx.org/mailman/listinfo/nginx

I'm not using php-fpm and don't really want to recompile PHP to switch to it. This is the only issue I have with this setup, so any help is appreciated. I tried taking out the PHP_FCGI_MAX_REQUESTS option altogether and it still recycled itself.  I also upped it to 1,000,000 and it didn't make a difference.

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,45516,46426#msg-46426




More information about the nginx mailing list