You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@apache.org on 2001/02/13 21:30:19 UTC

cvs commit: httpd-2.0/server/mpm/dexter Makefile.in Makefile.libdir config.m4 dexter.c mpm.h mpm_default.h

rbb         01/02/13 12:30:19

  Modified:    .        CHANGES INSTALL
               docs/conf httpd-std.conf
               docs/manual/mod index-bytype.html index.html mpm_common.html
                        perchild.html
               server/mpm MPM.NAMING config.m4
  Removed:     docs/manual/mod dexter.html
               server/mpm/dexter Makefile.in Makefile.libdir config.m4
                        dexter.c mpm.h mpm_default.h
  Log:
  Remove the dexter MPM.  This has been replaced with the Perchild MPM.
  The two MPMs are basically identical, except that Perchild also allows
  each child process to have a unique uid/gid combination.
  
  Revision  Changes    Path
  1.92      +5 -0      httpd-2.0/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/CHANGES,v
  retrieving revision 1.91
  retrieving revision 1.92
  diff -u -d -b -w -u -r1.91 -r1.92
  --- CHANGES	2001/02/13 03:26:23	1.91
  +++ CHANGES	2001/02/13 20:30:10	1.92
  @@ -1,5 +1,10 @@
   Changes with Apache 2.0b1
   
  +  *) Remove the dexter MPM.  Perchild is the same basic idea, but it has the
  +     added feature of allowing a uid/gid per child process.  If no
  +     uid/gid is specified, then Perchild behaves exactly like dexter.
  +     [Ryan Bloom]
  +
     *) Get perchild building again. [Ryan Bloom]
   
     *) Don't disable threads just because we are using the prefork MPM.
  
  
  
  1.7       +0 -2      httpd-2.0/INSTALL
  
  Index: INSTALL
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/INSTALL,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -d -b -w -u -r1.6 -r1.7
  --- INSTALL	2001/01/12 04:44:47	1.6
  +++ INSTALL	2001/02/13 20:30:10	1.7
  @@ -325,8 +325,6 @@
             mpmt_pthread ..... Mutli-process(dynamic) Multi-threaded(static) 
                                Unix MPM
             prefork .......... Preforking Unix MPM
  -          dexter ........... Multi-process(static) Multi-threaded(dynamic)
  -                             Unix MPM
             perchild ......... Multi-process(static) Multi-threaded(dynamic)
                                Unix MPM, that allows a User per child process
   
  
  
  
  1.22      +3 -3      httpd-2.0/docs/conf/httpd-std.conf
  
  Index: httpd-std.conf
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/docs/conf/httpd-std.conf,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -d -b -w -u -r1.21 -r1.22
  --- httpd-std.conf	2001/02/10 23:53:07	1.21
  +++ httpd-std.conf	2001/02/13 20:30:12	1.22
  @@ -72,7 +72,7 @@
   # this file will be  created when you run Apache) then you *must* ensure that
   # no two invocations of Apache share the same scoreboard file.
   #
  -<IfModule !dexter.c>
  +<IfModule !perchild.c>
   ScoreBoardFile logs/apache_runtime_status
   </IfModule>
   
  @@ -134,14 +134,14 @@
   MaxRequestsPerChild  0
   </IfModule>
   
  -# dexter MPM
  +# perchild MPM
   # NumServers ........... constant number of server processes
   # StartThreads ......... initial  number of worker threads in each server process
   # MinSpareThreads ...... minimum  number of worker threads which are kept spare
   # MaxSpareThreads ...... maximum  number of worker threads which are kept spare
   # MaxThreadsPerChild ... maximum  number of worker threads in each server process
   # MaxRequestsPerChild .. maximum  number of connections per server process (then it dies)
  -<IfModule dexter.c>
  +<IfModule perchild.c>
   NumServers           5
   StartThreads         5
   MinSpareThreads      5
  
  
  
  1.13      +0 -3      httpd-2.0/docs/manual/mod/index-bytype.html
  
  Index: index-bytype.html
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/docs/manual/mod/index-bytype.html,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -d -b -w -u -r1.12 -r1.13
  --- index-bytype.html	2000/12/21 02:26:56	1.12
  +++ index-bytype.html	2001/02/13 20:30:13	1.13
  @@ -28,9 +28,6 @@
   <DL>
   <DT><A HREF="core.html">Core</A>
   <DD>Core Apache features.
  -<DT><a href="dexter.html">dexter</a>
  -<DD>Multi-Processing Module with Threading via Pthreads; Fixed number
  -of processes, variable number of threads/child
   <DT><A HREF="mpmt_pthread.html">mpmt_pthread</A>
   <DD>Multi-Processing Module with Threading via Pthreads; Variable number
   of processes, constant number of threads/child
  
  
  
  1.48      +0 -3      httpd-2.0/docs/manual/mod/index.html
  
  Index: index.html
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/docs/manual/mod/index.html,v
  retrieving revision 1.47
  retrieving revision 1.48
  diff -u -d -b -w -u -r1.47 -r1.48
  --- index.html	2000/12/21 02:26:56	1.47
  +++ index.html	2001/02/13 20:30:14	1.48
  @@ -29,9 +29,6 @@
   <DL>
   <DT><A HREF="core.html">Core</A>
   <DD>Core Apache features.
  -<DT><a href="dexter.html">dexter</a>
  -<DD>Multi-Processing Module with Threading via Pthreads; Fixed number
  -of processes, variable number of threads/child
   <DT><A HREF="mpmt_pthread.html">mpmt_pthread</A>
   <DD>Multi-Processing Module with Threading via Pthreads; Variable number
   of processes, constant number of threads/child
  
  
  
  1.9       +19 -19    httpd-2.0/docs/manual/mod/mpm_common.html
  
  Index: mpm_common.html
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/docs/manual/mod/mpm_common.html,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -d -b -w -u -r1.8 -r1.9
  --- mpm_common.html	2000/12/09 19:50:04	1.8
  +++ mpm_common.html	2001/02/13 20:30:14	1.9
  @@ -66,7 +66,7 @@
   <A
    HREF="directive-dict.html#Module"
    REL="Help"
  -><STRONG>Module:</STRONG></A> dexter, perchild</p>
  +><STRONG>Module:</STRONG></A> perchild</p>
   
   <p>Whether or not to maintain status information on current 
   connections.  If this is off then mod_status will not work properly.</p>
  @@ -94,7 +94,7 @@
   <A
    HREF="directive-dict.html#Module"
    REL="Help"
  -><STRONG>Module:</STRONG></A> dexter, mpmt_pthread, perchild, prefork, mpm_winnt</p>
  +><STRONG>Module:</STRONG></A> mpmt_pthread, perchild, prefork, mpm_winnt</p>
   
   <p>This controls the directory to which Apache attempts to switch
   before dumping core.  The default is in the <A
  @@ -125,7 +125,7 @@
   <A
    HREF="directive-dict.html#Module"
    REL="Help"
  -><STRONG>Module:</STRONG></A> dexter, mpmt_pthread, perchild, prefork</p>
  +><STRONG>Module:</STRONG></A> mpmt_pthread, perchild, prefork</p>
   
   The Group directive sets the group under which the server will answer requests.
   In order to use this directive, the stand-alone server must be run initially
  @@ -175,7 +175,7 @@
   <A
    HREF="directive-dict.html#Module"
    REL="Help"
  -><STRONG>Module:</STRONG></A> dexter, mpmt_pthread, perchild, prefork, mpm_winnt</p>
  +><STRONG>Module:</STRONG></A> mpmt_pthread, perchild, prefork, mpm_winnt</p>
   
   <p>The PidFile directive sets the file to which the server records the
   process id of the daemon. If the filename does not begin with a slash
  @@ -210,7 +210,7 @@
   <A
    HREF="directive-dict.html#Module"
    REL="Help"
  -><STRONG>Module:</STRONG></A> dexter, mpmt_pthread, perchild, prefork, mpm_winnt</p>
  +><STRONG>Module:</STRONG></A> mpmt_pthread, perchild, prefork, mpm_winnt</p>
   
   
   <P>The Listen directive instructs Apache to listen to only specific IP
  @@ -279,7 +279,7 @@
   <A
    HREF="directive-dict.html#Module"
    REL="Help"
  -><STRONG>Module:</STRONG></A> dexter, mpmt_pthread, perchild, prefork, mpm_winnt</p>
  +><STRONG>Module:</STRONG></A> mpmt_pthread, perchild, prefork, mpm_winnt</p>
   
   <P>The maximum length of the queue of pending connections.  Generally no
   tuning is needed or desired, however on some systems it is desirable
  @@ -312,7 +312,7 @@
   <A
    HREF="directive-dict.html#Module"
    REL="Help"
  -><STRONG>Module:</STRONG></A> dexter, mpmt_pthread, perchild, prefork</p>
  +><STRONG>Module:</STRONG></A> mpmt_pthread, perchild, prefork</p>
   
   <p>The LockFile directive sets the path to the lockfile used when
   Apache is compiled with either USE_FCNTL_SERIALIZED_ACCEPT or
  @@ -394,7 +394,7 @@
   <A
    HREF="directive-dict.html#Module"
    REL="Help"
  -><STRONG>Module:</STRONG></A> dexter, mpmt_pthread, prefork, perchild, mpm_winnt</p>
  +><STRONG>Module:</STRONG></A> mpmt_pthread, prefork, perchild, mpm_winnt</p>
   
   <p>The MaxRequestsPerChild directive sets the limit on the number of requests
   that an individual child server process will handle. After MaxRequestsPerChild
  @@ -424,7 +424,7 @@
   <A
    HREF="directive-dict.html#Default"
    REL="Help"
  -><STRONG>Default:</STRONG></A> <CODE>MaxSpareThreads 10 (Dexter or Perchild) or 500 (Mpmt_pthread) </CODE><BR>
  +><STRONG>Default:</STRONG></A> <CODE>MaxSpareThreads 10 (Perchild) or 500 (Mpmt_pthread) </CODE><BR>
   <A
    HREF="directive-dict.html#Context"
    REL="Help"
  @@ -436,10 +436,10 @@
   <A
    HREF="directive-dict.html#Module"
    REL="Help"
  -><STRONG>Module:</STRONG></A> dexter, mpmt_pthread, perchild</p>
  +><STRONG>Module:</STRONG></A> mpmt_pthread, perchild</p>
   
   <P>Maximum number of idle threads.  Different MPMs deal with this directive
  -differently.  Dexter and Perchild monitor the number of idle threads on a
  +differently.  Perchild monitor the number of idle threads on a
   per-child basis.  If there are too many idle threads in that child, the server
   will begin to kill threads within that child.</P>
   <P>Mpmt_pthread deals with idle threads on a server-wide basis.  If there are 
  @@ -491,7 +491,7 @@
   <A
    HREF="directive-dict.html#Default"
    REL="Help"
  -><STRONG>Default:</STRONG></A> <CODE>MaxSpareThreads 5 (Dexter or Perchild) or 250 (Mpmt_pthread) </CODE><BR>
  +><STRONG>Default:</STRONG></A> <CODE>MaxSpareThreads 5 (Perchild) or 250 (Mpmt_pthread) </CODE><BR>
   <A
    HREF="directive-dict.html#Context"
    REL="Help"
  @@ -503,10 +503,10 @@
   <A
    HREF="directive-dict.html#Module"
    REL="Help"
  -><STRONG>Module:</STRONG></A> dexter, mpmt_pthread, perchild</p>
  +><STRONG>Module:</STRONG></A> mpmt_pthread, perchild</p>
   
   <P>Minimum number of idle threads to handle request spikes.  Different MPMs 
  -deal with this directive differently.  Dexter and Perchild monitor the number 
  +deal with this directive differently.  Perchild monitor the number 
   of idle threads on a per-child basis.  If there aren't enough idle threads in 
   that child, the server will begin to create new threads within that child.  
   </P>
  @@ -538,7 +538,7 @@
   <A
    HREF="directive-dict.html#Module"
    REL="Help"
  -><STRONG>Module:</STRONG></A> dexter, perchild</p>
  +><STRONG>Module:</STRONG></A> perchild</p>
   
   <p>Number of children alive at the same time.  MPMs that use this directive
   do not dynamically create new child processes so this number should be
  @@ -572,7 +572,7 @@
   <A
    HREF="directive-dict.html#Module"
    REL="Help"
  -><STRONG>Module:</STRONG></A> dexter, mpmt_pthread, perchild, prefork</p>
  +><STRONG>Module:</STRONG></A> mpmt_pthread, perchild, prefork</p>
   
   <p>The ScoreBoardFile directive is required on some architectures to place
   a file that the server will use to communicate between its children and
  @@ -610,7 +610,7 @@
   <A
    HREF="directive-dict.html#Module"
    REL="Help"
  -><STRONG>Module:</STRONG></A> dexter, mpmt_pthread, perchild, prefork, mpm_winnt</p>
  +><STRONG>Module:</STRONG></A> mpmt_pthread, perchild, prefork, mpm_winnt</p>
   
   The server will set the TCP buffer size to the number of bytes
   specified. Very useful to increase past standard OS defaults on high
  @@ -670,7 +670,7 @@
   <A
    HREF="directive-dict.html#Module"
    REL="Help"
  -><STRONG>Module:</STRONG></A> dexter, perchild</p>
  +><STRONG>Module:</STRONG></A> perchild</p>
   
   <p>Number of threads each child creates on startup.  As the number of threads
   is dynamically controlled depending on the load, there is usually little 
  @@ -732,7 +732,7 @@
   <A
    HREF="directive-dict.html#Module"
    REL="Help"
  -><STRONG>Module:</STRONG></A> dexter, mpmt_pthread, perchild, prefork</p>
  +><STRONG>Module:</STRONG></A> mpmt_pthread, perchild, prefork</p>
   
   The User directive sets the userid as which the server will answer requests.
   In order to use this directive, the standalone server must be run initially
  
  
  
  1.4       +44 -5     httpd-2.0/docs/manual/mod/perchild.html
  
  Index: perchild.html
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/docs/manual/mod/perchild.html,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -d -b -w -u -r1.3 -r1.4
  --- perchild.html	2000/12/03 06:05:44	1.3
  +++ perchild.html	2001/02/13 20:30:14	1.4
  @@ -38,11 +38,50 @@
   
   <H2>Summary</H2>
   
  -<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>
  +<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>
  +
  +<p>In addition 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. -->
   
  
  
  
  1.5       +2 -4      httpd-2.0/server/mpm/MPM.NAMING
  
  Index: MPM.NAMING
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/MPM.NAMING,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -d -b -w -u -r1.4 -r1.5
  --- MPM.NAMING	2001/02/13 02:00:29	1.4
  +++ MPM.NAMING	2001/02/13 20:30:16	1.5
  @@ -24,11 +24,9 @@
   The following MPMs currently exist:
   
     prefork ....... Multi  Process Model with Preforking (Apache 1.3)
  -  dexter ........ Multi  Process Model with Threading via Pthreads
  +  perchild ...... Multi  Process Model with Threading via Pthreads
                     Constant number of processes, variable number of threads
  -  perchild ...... Same as dexter, but each child process can have a different
  -                  uid/gid.  If no special uid/gid is specified, this is
  -                  dexter.
  +                  each child process can have a different uid/gid.  
     mpmt_pthread .. Multi  Process Model with Threading via Pthreads
                     Variable number of processes, constant number of
                     threads/child (= Apache/pthread)
  
  
  
  1.29      +2 -2      httpd-2.0/server/mpm/config.m4
  
  Index: config.m4
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/server/mpm/config.m4,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -d -b -w -u -r1.28 -r1.29
  --- config.m4	2000/12/04 22:33:43	1.28
  +++ config.m4	2001/02/13 20:30:16	1.29
  @@ -1,7 +1,7 @@
   AC_MSG_CHECKING(which MPM to use)
   AC_ARG_WITH(mpm,
   [  --with-mpm=MPM          Choose the process model for Apache to use.
  -               MPM={dexter,mpmt_beos,mpmt_pthread,prefork,spmt_os2,perchild}],[
  +               MPM={mpmt_beos,mpmt_pthread,prefork,spmt_os2,perchild}],[
     APACHE_MPM=$withval
   ],[
     if test "x$APACHE_MPM" = "x"; then
  @@ -12,7 +12,7 @@
   
   apache_cv_mpm=$APACHE_MPM
   	
  -if test "$apache_cv_mpm" = "mpmt_pthread" -o "$apache_cv_mpm" = "dexter" -o "$apache_cv_mpm" = "perchild"; then
  +if test "$apache_cv_mpm" = "mpmt_pthread" -o "$apache_cv_mpm" = "perchild"; then
     PTHREADS_CHECK
     AC_MSG_CHECKING([for which threading library to use])
     AC_MSG_RESULT($threads_result)
  
  
  

RE: cvs commit: httpd-2.0/server/mpm/dexter Makefile.in Makefile.libdir config.m4 dexter.c mpm.h mpm_default.h

Posted by Cliff Woolley <cl...@yahoo.com>.
>   Remove the dexter MPM.  This has been replaced with the Perchild MPM.
>   The two MPMs are basically identical, except that Perchild also allows
>   each child process to have a unique uid/gid combination.

The only downside is that dexter had a cooler name.  =-)

INSTALL:
>              mpmt_pthread ..... Mutli-process(dynamic)
Multi-threaded(static)

s/Mutli/Multi

> config.m4:
>   - MPM={dexter,mpmt_beos,mpmt_pthread,prefork,spmt_os2,perchild}],[
>   + MPM={mpmt_beos,mpmt_pthread,prefork,spmt_os2,perchild}],[

The mpmt_beos MPM was removed, right?  And the new BeOS MPM is just called
'beos' and is an spmt MPM.

--Cliff