slive 00/11/21 22:33:19
Modified: htdocs/manual/mod mpmt_pthread.html Log: Add some docs to mpmt_pthread.html. Revision Changes Path 1.4 +39 -3 httpd-docs-2.0/htdocs/manual/mod/mpmt_pthread.html Index: mpmt_pthread.html =================================================================== RCS file: /home/cvs/httpd-docs-2.0/htdocs/manual/mod/mpmt_pthread.html,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -b -u -r1.3 -r1.4 --- mpmt_pthread.html 2000/11/19 05:02:36 1.3 +++ mpmt_pthread.html 2000/11/22 06:33:19 1.4 @@ -16,8 +16,8 @@ <H1 ALIGN="CENTER">Multi-Processing Module mpmt_pthread</H1> <P> -This Multi-Processing Module controls process and thread creation -using the pthread interface. +This Multi-Processing Module implements a hybrid multi-threaded +multi-process web server. </P> <P><A @@ -39,10 +39,46 @@ <H2>Summary</H2> <p>This Multi-Processing Module (MPM) is the default for most unix-like -operating systems. It uses pthread system calls to create a hybrid +operating systems. It implements a hybrid multi-process multi-threaded server. Each process has a fixed number of threads. The server adjusts to handle load by increasing or decreasing the number of processes.</p> + +<p>A single control process is responsible for launching child +processes. Each child process creates a fixed number of threads as +specified in the <code>ThreadsPerChild</code> directive. +The individual threads then listen for connections and +serve them when they arrive.</p> + +<p>Apache always tries to maintain a pool of <em>spare</em> or idle +server threads, which stand ready to serve incoming requests. In this +way, clients do not need to wait for a new threads or processes to be +created before their requests can be served. Apache assesses the +total number of idle threads in all processes, and forks or kills +processes to keep this number within the boundaries specified by +<code>MinSpareThreads</code> and <code>MaxSpareThreads</code>. +Since this process is very self-regulating, it is rarely necessary to +modify these directives from their default values. The maximum +number of clients that may be served simultaneously is determined +by multiplying the maximum number of server processes that +will be created (<code>MaxClients</code>) by the number of threads +created in each process (<code>ThreadsPerChild</code>).</p> + +<p>While the parent process is usually started as root under Unix in +order to bind to port 80, the child processes and threads are launched +by Apache as a less-privileged user. The <code>User</code> and +<code>Group</code> directives are used to set the privileges of the +Apache child processes. The child processes must be able to read all +the content that will be served, but should have as few privileges +beyond that as possible. In addition, unless <a +href="../suexec.html">suexec</a> is used, these directives also set +the privileges which will be inherited by CGI scripts.</p> + +<p><code>MaxRequestsPerChild</code> controls how frequently the server +recycles processes by killing old ones and launching new ones.</p> + +<p>See also: <a href="../bind.html">Setting which addresses and ports +Apache uses</a>.</p> <H2>Directives</H2>