You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by nd...@apache.org on 2002/12/22 23:20:52 UTC
cvs commit: httpd-2.0/docs/manual/mod beos.xml leader.xml mpmt_os2.xml threadpool.xml
nd 2002/12/22 14:20:52
Modified: docs/manual sitemap.xml
Added: docs/manual/mod beos.xml leader.xml mpmt_os2.xml
threadpool.xml
Log:
add initial documentation for beos, leader, mpmt_os2 and threadpool
Revision Changes Path
1.19 +5 -0 httpd-2.0/docs/manual/sitemap.xml
Index: sitemap.xml
===================================================================
RCS file: /home/cvs/httpd-2.0/docs/manual/sitemap.xml,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- sitemap.xml 20 Dec 2002 16:44:46 -0000 1.18
+++ sitemap.xml 22 Dec 2002 22:20:51 -0000 1.19
@@ -184,12 +184,17 @@
<modulefile>mod_userdir.xml</modulefile>
<modulefile>mod_usertrack.xml</modulefile>
<modulefile>mod_vhost_alias.xml</modulefile>
+
<modulefile>mpm_common.xml</modulefile>
+ <modulefile>beos.xml</modulefile>
<modulefile>mpm_netware.xml</modulefile>
<modulefile>mpm_winnt.xml</modulefile>
+ <modulefile>mpmt_os2.xml</modulefile>
<modulefile>perchild.xml</modulefile>
<modulefile>prefork.xml</modulefile>
<modulefile>worker.xml</modulefile>
+ <modulefile>leader.xml</modulefile>
+ <modulefile>threadpool.xml</modulefile>
</modulefilelist>
</category>
1.1 httpd-2.0/docs/manual/mod/beos.xml
Index: beos.xml
===================================================================
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<modulesynopsis>
<name>beos</name>
<description>This Multi-Processing Module is optimized for BeOS.</description>
<status>MPM</status>
<sourcefile>beos.c</sourcefile>
<identifier>mpm_beos_module</identifier>
<summary>
<p>This Multi-Processing Module (MPM) is the default for BeOS. It uses
a single control process creates threads to handle requests.</p>
</summary>
<seealso><a href="../bind.html">Setting which addresses and ports Apache
uses</a></seealso>
<directivesynopsis location="mpm_common"><name>User</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>Group</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>Listen</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ListenBacklog</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>SendBufferSize</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>StartThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MinSpareThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxSpareThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxClients</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>CoreDumpDirectory</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxMemFree</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>PidFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ScoreBoardFile</name>
</directivesynopsis>
<directivesynopsis>
<name>MaxRequestsPerThread</name>
<description>Limit on the number of requests that an individual thread
will handle during its life</description>
<syntax>MaxRequestsPerThread <var>number</var></syntax>
<default>MaxRequestsPerThread 0</default>
<contextlist><context>server config</context></contextlist>
<usage>
<p>The <directive>MaxRequestsPerThread</directive> directive sets
the limit on the number of requests that an individual server thread
will handle. After <directive>MaxRequestsPerThread</directive>
requests, the thread will die. If <directive
>MaxRequestsPerThread</directive> is <code>0</code>, then the thread
will never expire.</p>
<p>Setting <directive>MaxRequestsPerThread</directive> to a
non-zero limit has two beneficial effects:</p>
<ul>
<li>it limits the amount of memory that a thread can consume
by (accidental) memory leakage;</li>
<li>by giving threads a finite lifetime, it helps reduce
the number of threads when the server load reduces.</li>
</ul>
<note><title>Note:</title>
<p>For <directive module="core">KeepAlive</directive> requests, only
the first request is counted towards this limit. In effect, it
changes the behavior to limit the number of <em>connections</em>
per thread.</p>
</note>
</usage>
</directivesynopsis>
</modulesynopsis>
1.1 httpd-2.0/docs/manual/mod/leader.xml
Index: leader.xml
===================================================================
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<modulesynopsis>
<name>leader</name>
<description>An experimental variant of the standard <module>worker</module>
MPM</description>
<status>MPM</status>
<sourcefile>leader.c</sourcefile>
<identifier>mpm_leader_module</identifier>
<summary>
<note type="warning"><title>Warning</title>
<p>This MPM is experimental, so it may or may not work
as expected.</p>
</note>
<p>This is an experimental variant of the standard
<module>worker</module> MPM. It uses a Leader/Followers design pattern
to coordinate work among threads. For more info, see <a
href="http://deuce.doc.wustl.edu/doc/pspdfs/lf.pdf"
>http://deuce.doc.wustl.edu/doc/pspdfs/lf.pdf</a>.</p>
<p>To use the <module>leader</module> MPM, add
<code>--with-mpm=leader</code> to the configure script's arguments
when building the httpd.</p>
<p>This MPM depends on APR's atomic compare-and-swap operations for
thread synchronization. If you are compiling for an x86 target
and you don't need to support 386s, or you are compiling for a
SPARC and you don't need to run on pre-UltraSPARC chips, add
<code>--enable-nonportable-atomics=yes</code> to the configure
script's arguments. This will cause APR to implement atomic operations
using efficient opcodes not available in older CPUs.</p>
</summary>
<directivesynopsis location="mpm_common"><name>AcceptMutex</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>CoreDumpDirectory</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>Group</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>Listen</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ListenBacklog</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>SendBufferSize</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>LockFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxClients</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxMemFree</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxRequestsPerChild</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxSpareThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MinSpareThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>PidFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ScoreBoardFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ServerLimit</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>StartServers</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ThreadLimit</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ThreadsPerChild</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>User</name>
</directivesynopsis>
</modulesynopsis>
1.1 httpd-2.0/docs/manual/mod/mpmt_os2.xml
Index: mpmt_os2.xml
===================================================================
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<modulesynopsis>
<name>mpmt_os2</name>
<description>Hybrid multi-process, multi-threaded MPM for OS/2</description>
<status>MPM</status>
<sourcefile>mpmt_os2.c</sourcefile>
<identifier>mpm_mpmt_os2_module</identifier>
<summary>
<p>The Server consists of a main, parent process and a small, static
number of child processes.</p>
<p>The parent process's job is to manage the child processes. This
involves spawning children as required to ensure there are always
<directive module="mpm_common">StartServers</directive> processes
accepting connections.</p>
<p>Each child process consists of a a pool of worker threads and a
main thread that accepts connections and passes them to the workers via
a work queue. The worker thread pool is dynamic, managed by a
maintenance thread so that the number of idle threads is kept between
<directive module="mpm_common">MinSpareThreads</directive> and
<directive module="mpm_common">MaxSpareThreads</directive>.</p>
</summary>
<seealso><a href="../bind.html">Setting which addresses and ports Apache
uses</a></seealso>
<directivesynopsis location="mpm_common"><name>User</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>Group</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>Listen</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ListenBacklog</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>SendBufferSize</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxRequestsPerChild</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxSpareThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MinSpareThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>PidFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>StartServers</name>
</directivesynopsis>
</modulesynopsis>
1.1 httpd-2.0/docs/manual/mod/threadpool.xml
Index: threadpool.xml
===================================================================
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
<modulesynopsis>
<name>threadpool</name>
<description>Yet another experimental variant of the standard
<module>worker</module> MPM</description>
<status>MPM</status>
<sourcefile>threadpool.c</sourcefile>
<identifier>mpm_threadpool_module</identifier>
<summary>
<note type="warning"><title>Warning</title>
<p>This MPM is a developer playground and highly experimental, so it
may or may not work as expected.</p>
</note>
<p>This is an experimental variant of the standard worker MPM.
Rather than queuing connections like the worker MPM, the
<module>threadpool</module> MPM queues idle worker threads and
hands each accepted connection to the next available worker.</p>
<p>The <module>threadpool</module> MPM can't match the performance of
the <module>worker</module> MPM in benchmark testing. As of 2.0.39,
some of the key load-throtting concepts from the <module
>threadpool</module> MPM have been incorporated into the <module
>worker</module> MPM. The <module>threadpool</module> code is useful
primarily as a research platform. For general-purpose use and for any
production environments, use <module>worker</module> instead.</p>
</summary>
<directivesynopsis location="mpm_common"><name>AcceptMutex</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>CoreDumpDirectory</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>Group</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>Listen</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ListenBacklog</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>SendBufferSize</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>LockFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxClients</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxMemFree</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxRequestsPerChild</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MaxSpareThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>MinSpareThreads</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>PidFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ScoreBoardFile</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ServerLimit</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>StartServers</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ThreadLimit</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>ThreadsPerChild</name>
</directivesynopsis>
<directivesynopsis location="mpm_common"><name>User</name>
</directivesynopsis>
</modulesynopsis>