# worker MPM # StartServers: initial number of server processes to start # MaxClients: maximum number of simultaneous client connections # 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 # # I recombined Apache and use worker.c instead. # See http://httpd.apache.org/docs-2.0/mod/worker.html # # # Two directives set hard limits on the number of active child processes # and the number of server threads in a child process. # If non-default values are specified for these directives, they should appear # BEFORE other worker directives. # # ServerLimit & ThreadLimit # # ServerLimit is a hard limit on the number of active child processes, and # must be greater than or equal to the MaxClients directive divided by the # ThreadsPerChild directive. # # ServerLimit(16) >= MaxClients(400) / ThreadsPerChild(25) # # With worker use this directive only if your MaxClients and ThreadsPerChild # settings require more than 16 server processes (default). Do not set the # value of this directive any higher than the number of server processes # required by what you may want for MaxClients and ThreadsPerChild. # Default: # # ServerLimit 16 # ThreadLimit is a hard limit of the number of server threads, and must be # greater than or equal to the ThreadsPerChild directive. # # ThreadLimit(64) >= ThreadsPerChild(25) # # ThreadLimit sets the maximum configured value for ThreadsPerChild for # the lifetime of the Apache process # # Default : # # ThreadLimit 64 # The default value differs from MPM to MPM. For leader, threadpool and worker # the default is StartServers 3. # Default: # StartServers 3 # Minimum number of idle threads to handle request spikes. # Default: # MinSpareThreads 75 # Maximum number of idle threads. # The range of the MaxSpareThreads value is restricted. # Thr value must be greater or equal than the sum of MinSpareThreads and ThreadsPerChild # # MaxSpareThreads(250) >= MinSpareThreads(75) + ThreadsPerChild(25) # # Default: # MaxSpareThreads 250 # # The most important directives used to control this MPM are ThreadsPerChild, # which controls the number of threads deployed by each child process and # MaxClients, which controls the maximum total number of threads that may be # launched. # # ThreadsPerChild sets the number of threads created by each child process. # The child creates these threads at startup and never creates more. If using # an MPM like worker, where there are multiple child processes, the total number # of threads should be high enough to handle the common load on the server. # Default: # # ThreadsPerChild 25 # The MaxClients directive sets the limit on the number of simultaneous requests # that will be served. Any connection attempts over the MaxClients limit will normally # be queued, up to a number based on the ListenBacklog directive. Once a child process # is freed at the end of a different request, the connection will then be serviced. # # For threaded and hybrid servers (e.g. beos or worker) MaxClients restricts the total # number of threads that will be available to serve clients. For hybrid MPMs the default # value is 16 (ServerLimit) multiplied by the value of 25 (ThreadsPerChild). Therefore, # to increase MaxClients to a value that requires more than 16 processes, you must # also raise ServerLimit. # # IMPORTANT: MaxClients directive should be multiple of ThreadsPerChild when ServerLimit # is announced. # # Default: # MaxClients(400) = ServerLimit(16) * ThreadsPerChild(25) # # MaxClients 400 # # In addition to a the set of active child processes, there may be additional child # processes which are terminating but where at least one server thread is still handling # an existing client connection. Up to MaxClients terminating processes may be present, # though the actual number can be expected to be much smaller. This behavior can be avoided # by disabling the termination of individual child processes, which is achieved by the # following: # # set the value of MaxRequestsPerChild to zero # set the value of MaxSpareThreads to the same value as MaxClients # MaxRequestsPerChild 0