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>