httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ruediger Pluem <>
Subject Re: strange usage pattern for child processes
Date Wed, 15 Oct 2008 19:13:14 GMT

On 10/15/2008 08:25 PM, Lars Eilebrecht wrote:
> Ruediger Pluem wrote:
>> Is it really a good idea to use mod_mem_cache? Keep in mind that
>> mod_mem_cache uses local caches per process and cannot use sendfile
>> to send cached data. It seems that mod_disk_cache with a cache root
>> on a ram disk could be more efficient here.
> No, it really isn't a good idea, and it wasn't my idea. ;-)
> I just started working at that company, and the frontend
> servers are even managed by another service company so I
> don't even have shell access to the servers.

This is a pity, because then it will become much harder to debug
this issue. Any chance you get shell access or that you can instruct
the administrators in the service company to get the needed information
for you?

> But I'm pushing for a switch to mod_disk_cache.
>>> The first odd thing is that I would have expected that Apache
>>> uses all child processes about equally. Especially I would
>>> have expected that there are at least 25 threads for the second
>>> process in state "_" (waiting for connection), because the
>>> MinSpareThread directive is set to 25. 
>> This is indeed strange. Mind to
>> 1. Attach an ASCII-output of the whole status page to see the exact
>>    process / thread slot usage.
>> 2. Your MPM configuration and your reverse proxy configuration.
> Here's the mpm config:
> 	MaxMemFree		1024
> 	ThreadLimit		256
> 	ServerLimit		3
> 	StartServers		3
> 	MaxClients		768
> 	MinSpareThreads		25
> 	MaxSpareThreads		75 
> 	ThreadsPerChild		256
> 	MaxRequestsPerChild	2000000

Ok. MaxSpareThreads is set to 75 with ThreadsPerChild 256. This means
that StartServers 3 is pointless because after starting *one* process we already
have way too much spare threads *overall*. So the other 2 processes will get killed
immediately :-).
So the slot with all threads in '.' is one of these currently unneeded processes.
The picture shows that there are still more than MaxSpareThreads (=25) threads
idle *overall*. Works as designed :-).



View raw message