]> granicus.if.org Git - apache/commitdiff
Update the dexter and perchild docs, and add a missed directive.
authorJoshua Slive <slive@apache.org>
Thu, 23 Nov 2000 23:23:54 +0000 (23:23 +0000)
committerJoshua Slive <slive@apache.org>
Thu, 23 Nov 2000 23:23:54 +0000 (23:23 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87077 13f79535-47bb-0310-9956-ffa450edef68

docs/manual/mod/dexter.html
docs/manual/mod/directives.html
docs/manual/mod/mpm_common.html
docs/manual/mod/perchild.html

index 51c047d2777a3df3e61e7ad2d8b7565793454937..2bb7e9aa825322e292e004e4485fdfe9ac05dc84 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
-<TITLE>Apache MPM mpmt_pthread</TITLE>
+<TITLE>Apache MPM dexter</TITLE>
 </HEAD>
 
 <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
 >
 <!--#include virtual="header.html" -->
 
-<H1 ALIGN="CENTER">Multi-Processing Module mpmt_pthread</H1>
+<H1 ALIGN="CENTER">Multi-Processing Module dexter</H1>
 <P>
-This Multi-Processing Module controls process and thread creation
-using the pthread interface.
+This Multi-Processing Module implements a hybrid multi-process
+multi-threaded web server with a variable number of threads per
+process.
 </P>
 
 <P><A
@@ -38,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 multi-process multi-threaded server.  The server starts a fixed
-number of processes.  The server adjusts to handle load by increasing
-or decreasing the number of threads.</p>
+<p>This Multi-Processing Module (MPM) implements a hybrid
+multi-process, multi-threaded web server.  A fixed number of processes
+create threads to handle requests.  Fluctuations in load are handled
+by increasing or decreasing the number of threads in each process.</p>
+
+<p>A single control process launches the number of child processes
+indicated by the <code>NumServers</code> directive at server startup.
+Each child process creates threads as specified in the
+<code>StartThreads</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 new threads to be created.  For
+each child process, Apache assesses the number of idle threads and
+creates or destroys threads 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 number
+of server processes that will be created (<code>NumServers</code>) by
+the maximum number of threads created in each process
+(<code>MaxThreadsPerChild</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>
@@ -56,6 +93,7 @@ or decreasing the number of threads.</p>
 <li><a href="mpm_common.html#lockfile">LockFile</a></li>
 <li><a href="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></li>
 <li><a href="mpm_common.html#maxsparethreads">MaxSpareThreads</a></li>
+<li><a href="mpm_common.html#maxthreadsperchild">MaxThreadsPerChild</a></li>
 <li><a href="mpm_common.html#minsparethreads">MinSpareThreads</a></li>
 <li><a href="mpm_common.html#numservers">NumServers</a></li>
 <li><a href="mpm_common.html#scoreboardfile">ScoreBoardFile</a></li>
index 2c2512b0671513bc374bbab620c09650050b739d..ee5cf344689ac7f375fbabb0870bb251bcdb21a2 100644 (file)
@@ -159,6 +159,7 @@ of the terms used in their descriptions available.
 <LI><A HREF="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</A>
 <LI><A HREF="prefork.html#maxspareservers">MaxSpareServers</A>
 <LI><A HREF="mpm_common.html#maxsparethreads">MaxSpareThreads</A>
+<LI><A HREF="mpm_commont.html#maxthreadsperchild">MaxThreadsPerChild</A>
 <LI><A HREF="mod_cern_meta.html#metadir">MetaDir</A>
 <LI><A HREF="mod_cern_meta.html#metafiles">MetaFiles</A>
 <LI><A HREF="mod_cern_meta.html#metasuffix">MetaSuffix</A>
index b317e37526a4306f6912c94575384dfbd942b153..8efc5e7844de0a6c2ca799efee7b85000b750c49 100644 (file)
@@ -32,6 +32,7 @@ than one multi-processing module (MPM).
 <li><a href="#maxclients">MaxClients</a></li>
 <li><a href="#maxrequestsperchild">MaxRequestsPerChild</a></li>
 <li><a href="#maxsparethreads">MaxSpareThreads</a></li>
+<li><a href="#maxthreadsperchild">MaxThreadsPerChild</a></li>
 <li><a href="#minsparethreads">MinSpareThreads</a></li>
 <li><a href="#numservers">NumServers</a></li>
 <li><a href="#scoreboardfile">ScoreBoardFile</a></li>
@@ -416,7 +417,6 @@ behavior to limit the number of <EM>connections</EM> per child.
 
 
 <H2><A NAME="maxsparethreads">MaxSpareThreads directive</A></H2>
-<!--%plaintext &lt;?INDEX {\tt MaxSpareServers} directive&gt; -->
 <p><A
  HREF="directive-dict.html#Syntax"
  REL="Help"
@@ -451,6 +451,37 @@ until the number of idle threads is less than this number.</p>
 
 <P><HR>
 
+<H2><A NAME="maxthreadsperchild">MaxThreadsPerChild directive</A></H2>
+<p><A
+ HREF="directive-dict.html#Syntax"
+ REL="Help"
+><STRONG>Syntax:</STRONG></A> MaxThreadsPerChild <EM>number</EM><BR>
+<A
+ HREF="directive-dict.html#Default"
+ REL="Help"
+><STRONG>Default:</STRONG></A> <CODE>MaxThreadsPerChild 64</code>
+<A
+ HREF="directive-dict.html#Context"
+ REL="Help"
+><STRONG>Context:</STRONG></A> server config<BR>
+<A
+ HREF="directive-dict.html#Status"
+ REL="Help"
+><STRONG>Status:</STRONG></A> core<BR>
+<A
+ HREF="directive-dict.html#Module"
+ REL="Help"
+><STRONG>Module:</STRONG></A> mpmt_pthread, perchild</p>
+
+<P>Maximum number of threads per child.  For MPMs with a variable
+number of threads per child, this directive sets the maximum number of
+threads that will be created in each child process.  To increase this
+value beyond its default, it is necessary to to change the value of
+the compile-time define <code>HARD_THREAD_LIMIT</code> and recompile
+the server.</p>
+
+<P><HR>
+
 <H2><A NAME="minsparethreads">MinSpareThreads directive</A></H2>
 <!--%plaintext &lt;?INDEX {\tt MinSpareServers} directive&gt; -->
 <p><A
index cabafdab90c192003774701d29d16cd8c96d6932..acc0bd5a0bbe4044e3bef79c1623114083c84447 100644 (file)
@@ -1,7 +1,7 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
 <HTML>
 <HEAD>
-<TITLE>Apache MPM mpmt_pthread</TITLE>
+<TITLE>Apache MPM perchild</TITLE>
 </HEAD>
 
 <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
@@ -38,7 +38,13 @@ REL="Help"
 
 <H2>Summary</H2>
 
-<p>Some description on how this whole thing works with a couple examples.</p>
+<p>This module creates and controls processes and threads in a manner
+identical to <a href="dexter.html">dexter</a>.  However, it adds
+the extra ability to specify that specific processes should serve
+requests under different userids.  These processes can then be
+associated with specific virtual hosts.</p>
+
+<!-- XXX: This desperately needs more explanation. -->
 
 
 <H2>Directives</H2>
@@ -54,6 +60,7 @@ REL="Help"
 <li><a href="mpm_common.html#lockfile">LockFile</a></li>
 <li><a href="mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></li>
 <li><a href="mpm_common.html#maxsparethreads">MaxSpareThreads</a></li>
+<li><a href="mpm_common.html#maxthreadsperchild">MaxThreadsPerChild</a></li>
 <li><a href="mpm_common.html#minsparethreads">MinSpareThreads</a></li>
 <li><a href="mpm_common.html#numservers">NumServers</a></li>
 <li><a href="mpm_common.html#scoreboardfile">ScoreBoardFile</a></li>