]> granicus.if.org Git - apache/commitdiff
Add some docs to mpmt_pthread.html.
authorJoshua Slive <slive@apache.org>
Wed, 22 Nov 2000 06:33:19 +0000 (06:33 +0000)
committerJoshua Slive <slive@apache.org>
Wed, 22 Nov 2000 06:33:19 +0000 (06:33 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87062 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/mod/mpmt_pthread.html

index 5436378cebcacbb96fe83eda2d070f0d2768bae3..e84450f06d49780c80eaed9076563f208e0613d1 100644 (file)
@@ -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,11 +39,47 @@ REL="Help"
 <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>
 <UL>