| Posted on 2007-05-19 11:05:14-07 by csross |
| apache graceful restart and mod_perl |
|
I put up a new apache server:
Server version: Apache/2.2.4 (Unix) - Solaris 10 - Sparc 64 bit
Mod_Perl 2.0 (64 bit) DSO
When I do a apachectl graceful restart and check Server Status
- the number of processes increases equal the number of Min spare.
- the server status screen shows all G (gracefully finishing) for the old and new processes (not idle processes)
- the # requests currently being processed never changes
I was doing some research and found this. This is a brand new install of Apache 2.2.4 with mod_perl 2. I'm not even running any scripts now, just running apachectl graceful and then looking at the status screen (where I see lots of G's for the each existing and new process it starts). I don't even have any users on yet.
http://modperlbook.org/html/ch22_04.html
This is from that code article:
If after doing a graceful restart (e.g, by sending kill -USR1) you see via mod_status or Apache::VMonitor that a process is stuck in state G (Gracefully finishing), it means that the process is hanging in perl_destruct( ) while trying to clean up. If you don't need the cleanup, see the previous section on how to disable it.
This is the section before
If you are certain that your code does not contain any END blocks or DESTROY methods to be run during child server shutdown, you can avoid the delays by setting the PERL_DESTRUCT_LEVEL environment variable to -1. Be careful, however; even if your code doesn't include any END blocks or DESTROY methods, any modules you use( ) might.
--------------
I do not have anything but the server status coming up. I tested running scripts to test mod_perl and they were fine. This doesn't happen on a server not running mod_perl. I tried setting the graceful timeout in apache to 20 seconds but that did nothing.
Any ideas how to stop the runaway spawning and not displaying G on the status screen?
Thanks
|
| Direct Responses: Write a response |