You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by el kalin <ka...@el.net> on 2015/03/19 01:11:20 UTC

[users@httpd]

hi all… recently upgraded to 2.4.12. i know that the server creates this
awesome "dummy" processes when it needed to be ready and handle requests.
that's all good and well.

question is: shouldn't those die when there hasn't been much happening for
a while and keeping a lot of them "just in case" is not needed that badly?

the lines at the bottom of this message are form the server-status output.
the number of those lines eventually grows but it never goes down. which is
weird, right? … i know….

also how come the number of those extra processes doesn't match the one
from
ps -auwx | grep httpd?

my guess is that the "dummy" connections (since they don't have their own
process attached to them) are there because some of the other processes
that do show in ps ask for those at various stages. is it true? how would i
know which one asked? does it matter?

i've experienced some issues where the (open?!) "dummy" connections become
so many that the server stops responding but the ps -auwx | grep httpd
shows just 10 processes or so running. after restart everything goes back
to normal. except i'm not always there to restart…

so one though i had about this is that in my httpd-mpm file the only loaded
module is mpm_prefork_module. which has this in it's scope (default values):

    StartServers             5
    MinSpareServers          5
    MaxSpareServers         10
    MaxRequestWorkers      250
    MaxConnectionsPerChild   0

is it reasonable to believe that MaxConnectionsPerChild should have some
reasonable limit? will this control how many "dummy" connections are kept
alive?


thanks…


27-0 - 0/0/3 . 0.00 2895 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
28-0 - 0/0/10 . 0.02 2829 0 0.0 0.00 0.85 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
29-0 - 0/0/2 . 0.00 2893 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
30-0 - 0/0/2 . 0.00 2884 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
31-0 - 0/0/2 . 0.00 2894 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
32-0 - 0/0/8 . 0.03 2719 0 0.0 0.00 0.50 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
33-0 - 0/0/1 . 0.00 2890 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
34-0 - 0/0/1 . 0.00 2869 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
35-0 - 0/0/1 . 0.00 2888 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
36-0 - 0/0/1 . 0.00 2882 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0

Re: [users@httpd]

Posted by "Rainer M. Canavan" <ra...@sevenval.com>.
On Mar 20, 2015, at 21:45 , el kalin <ka...@el.net> wrote:

> 60-0	-	0/0/2	. 	0.01	102281	0	0.0	0.00	0.00 	127.0.0.1	my.domain.com:80	OPTIONS * HTTP/1.0
> 61-0	-	0/0/1	. 	0.00	102274	0	0.0	0.00	0.00 	127.0.0.1	my.domain.com:80	OPTIONS * HTTP/1.0
> 62-0	-	0/0/1	. 	0.01	102233	0	0.0	0.00	0.00 	127.0.0.1	my.domain.com:80	OPTIONS * HTTP/1.0
> etc… 
> 
> 
> 
> does this mean that the configuration for 
> 
> MaxSpareServers         10
> 
> is ignored somehow?!


I've overlooked the fact that the PID colum (the second from the left) is actually empty, i.e. the 
process for that slot has already died - more than a day ago, according to the SS column. 


rainer
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: [users@httpd]

Posted by el kalin <ka...@el.net>.
>
> > so one though i had about this is that in my httpd-mpm file the only
> loaded module is mpm_prefork_module. which has this in it's scope (default
> values):
> >
> >     StartServers             5
> >     MinSpareServers          5
> >     MaxSpareServers         10
> >     MaxRequestWorkers      250
> >     MaxConnectionsPerChild   0
> >
> > is it reasonable to believe that MaxConnectionsPerChild should have some
> reasonable limit? will this control how many "dummy" connections are kept
> alive?
>
>
> The ServerStatus output below seems correct for the configuration above,
> since there are exaclty 10 spare children idling.


that's actually a coincidence…  there are a lot more of those now and they
are not going away total of 62 with all looking like below except a few
that actually have NULL instead of OPTIONS * HTTP/1.0


……
43-0 - 0/0/8 . 0.05 102227 0 0.0 0.00 0.07 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
44-0 - 0/0/2 . 0.02 102243 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
45-0 - 0/0/2 . 0.00 102244 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
46-0 - 0/0/3 . 0.01 102269 0 0.0 0.00 0.02 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
47-0 - 0/0/2 . 0.02 102258 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
48-0 - 0/0/2 . 0.02 102235 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
49-0 - 0/0/1 . 0.02 102242 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
50-0 - 0/0/1 . 0.01 102237 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
51-0 - 0/0/2 . 0.01 102245 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
52-0 - 0/0/2 . 0.01 102246 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
53-0 - 0/0/10 . 0.02 102038 0 0.0 0.00 0.40 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
54-0 - 0/0/6 . 0.02 102152 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
55-0 - 0/0/3 . 0.02 102262 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
56-0 - 0/0/2 . 0.03 102201 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
57-0 - 0/0/3 . 0.04 102230 0 0.0 0.00 0.16 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
58-0 - 0/0/2 . 0.00 102263 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
59-0 - 0/0/3 . 0.02 102229 0 0.0 0.00 0.02 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
60-0 - 0/0/2 . 0.01 102281 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
61-0 - 0/0/1 . 0.00 102274 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
62-0 - 0/0/1 . 0.01 102233 0 0.0 0.00 0.00 127.0.0.1 my.domain.com:80 OPTIONS
* HTTP/1.0
etc…



does this mean that the configuration for

MaxSpareServers         10

is ignored somehow?!

Re: [users@httpd]

Posted by "Rainer M. Canavan" <ra...@sevenval.com>.
On Mar 19, 2015, at 01:11 , el kalin <ka...@el.net> wrote:

[…]
> my guess is that the "dummy" connections (since they don't have their own process attached to them) are there because some of the other processes that do show in ps ask for those at various stages. is it true? how would i know which one asked? does it matter?

The OPTIONS-Request you see in that list is merely the last request that has been processed by that process. The processes are not actually busy, if they were their states would typically be "R" "W" or "L", and certainly not "."

> i've experienced some issues where the (open?!) "dummy" connections become so many that the server stops responding but the ps -auwx | grep httpd shows just 10 processes or so running. after restart everything goes back to normal. except i'm not always there to restart… 


If the server absoluteley does not respond because it is not allowed to start more servers (or threads), try killing one worker child and requesting the /ServerStatus. 

> so one though i had about this is that in my httpd-mpm file the only loaded module is mpm_prefork_module. which has this in it's scope (default values):
> 
>     StartServers             5
>     MinSpareServers          5
>     MaxSpareServers         10
>     MaxRequestWorkers      250
>     MaxConnectionsPerChild   0
> 
> is it reasonable to believe that MaxConnectionsPerChild should have some reasonable limit? will this control how many "dummy" connections are kept alive?


The ServerStatus output below seems correct for the configuration above, since there are exaclty 10 spare children idling. They probably won't ever be reaped, unless you set MaxConnectionsPerChild to some number > 0, in which case they will die after processing that number of requests. On a server that is idle most of the time, that may take a while, since requests are distributed round robin among the idle children.

> 
> 27-0	-	0/0/3	. 	0.00	2895	0	0.0	0.00	0.00 	127.0.0.1	my.domain.com:80	OPTIONS * HTTP/1.0
> 28-0	-	0/0/10	. 	0.02	2829	0	0.0	0.00	0.85 	127.0.0.1	my.domain.com:80	OPTIONS * HTTP/1.0
> 29-0	-	0/0/2	. 	0.00	2893	0	0.0	0.00	0.00 	127.0.0.1	my.domain.com:80	OPTIONS * HTTP/1.0
> 30-0	-	0/0/2	. 	0.00	2884	0	0.0	0.00	0.00 	127.0.0.1	my.domain.com:80	OPTIONS * HTTP/1.0
> 31-0	-	0/0/2	. 	0.00	2894	0	0.0	0.00	0.00 	127.0.0.1	my.domain.com:80	OPTIONS * HTTP/1.0
> 32-0	-	0/0/8	. 	0.03	2719	0	0.0	0.00	0.50 	127.0.0.1	my.domain.com:80	OPTIONS * HTTP/1.0
> 33-0	-	0/0/1	. 	0.00	2890	0	0.0	0.00	0.00 	127.0.0.1	my.domain.com:80	OPTIONS * HTTP/1.0
> 34-0	-	0/0/1	. 	0.00	2869	0	0.0	0.00	0.00 	127.0.0.1	my.domain.com:80	OPTIONS * HTTP/1.0
> 35-0	-	0/0/1	. 	0.00	2888	0	0.0	0.00	0.00 	127.0.0.1	my.domain.com:80	OPTIONS * HTTP/1.0
> 36-0	-	0/0/1	. 	0.00	2882	0	0.0	0.00	0.00 	127.0.0.1	my.domain.com:80	OPTIONS * HTTP/1.0



rainer
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org