httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeffrey W. Baker" <jwba...@acm.org>
Subject Can't make sense out of process configuration directives
Date Wed, 01 Mar 2000 23:44:11 GMT
Consider this snippet:

# pthread MPM
# StartServers ......... initial  number of server processes to start
# MaxClients ........... maximum  number of server processes allowed to
start
# MinSpareThreads ...... minimum  number of worker threads which are
kept spare
# MaxSpareThreads ...... maximum  number of worker threads which are
kept spare
# ThreadsPerChild ...... constant number of worker threads in each
server process
# MaxRequestsPerChild .. maximum  number of requests a server process
serves
<IfModule mpmt_pthread.c>
StartServers         5
MaxClients           8
MinSpareThreads      5
MaxSpareThreads     10
ThreadsPerChild     20
MaxRequestsPerChild  0
</IfModule>

[END]

I've been using Apache since 1996 and I still don't understand these
directives.  The new MPMs have only compounded the problems.  For
instance, these directives refer to processes by the names Servers,
Clients, and Child.  Oh the humanity!  Here is what I suggest:

1) Change MaxClients to MaxProcesses.
2) Change StartServers to MinProcesses.
3) Do something with Max/MinSpareThreads or ThreadsPerChild.  If the
number of threads per process is indeed constant, as the comment says,
get rid of Min/Max as they should have no effect.  If the number of
threads is not constant, get rid of ThreadsPerChild and replace it with
MaxThreadsPerProcess.

Look at dexter:
<IfModule dexter.c>
NumServers           5
StartThreads         5
MinSpareThreads      5
MaxSpareThreads     10
MaxThreadsPerChild  20
MaxRequestsPerChild  0
</IfModule>


[END]

1) Change Child and Server to Process everywhere
2) Clarify whether Max/MinSpareThreads is overall or per process.
3) Change StartThreads to MinThreads.


Prefork:

<IfModule prefork.c>
StartServers         1
MinSpareServers      1
MaxSpareServers      1
MaxClients           1
MaxRequestsPerChild  0
</IfModule>

[END]

1) Change StartServers to MinProcesses
2) Change MaxClients to MaxProcesses
3) Change Server, Client, and Child to Process everywhere.


I've looked at it and the changes are pretty easy.  I am willing to make
a patch if people will give their feedback on these changes.

Regard,
jwb

Mime
View raw message