You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Joshua Slive <jo...@slive.ca> on 2001/09/21 22:04:11 UTC

MPM config directives

Aaron was brave enough to raise this topic again, and I'd rather not see it
fall flat, so I'm going to try to force the issue.

Here are two proposals.  They work for both prefork and worker.  I have not
thought deeply about perchild, so I don't know how it will fit in.

A: All config directives deal with "workers".  Behind the scenes,
StartWorkers and MaxWorkers are translated into processes using Aaron's
logic.

StartWorkers              50
MaxWorkers               150
MinSpareWorkers           10
MaxSpareWorkers           50
WorkersPerProcess         25
MaxRequestsPerProcess      0

B: Slightly less elegant because different units are used for different
directives, but no behind the scenes translation is necessary, so it is more
predictable.

StartProcesses             2
MaxProcesses               6
MinSpareWorkers           10
MaxSpareWorkers           50
WorkersPerProcess         25
MaxRequestsPerProcess      0

I can live with either of these, but I don't think it makes sense to have
"StartProcess" and "MaxWorkers".  If we are going to translate one in the
background, we should translate both.

I slightly favour B because it is simpler and involves no code changes
except changing directive names.

If I don't see a concensus in the another direction or a veto in the next
couple days, I will implement B.

Joshua.


Re: MPM config directives

Posted by Ryan Bloom <rb...@covalent.net>.
> I would much rather see us implement A.  It makes things more obvious to
> the user.  We aren't asking them to do any multiplication to look at how
> many requests they can handle at once.  This will also cut down on the
> number of bugs filed.  I am mostly thinking of Unix, where threads are

s/Unix/Linux

Ryan

> reported through ps.  If people specify 6 processes to start, but ps
> reports 120 have been started, they think it is a bug.  In reality, Linux
> is just reporting all the threads as if they were processes.
>
> Also, sticking with A makes us translate better from 1.3 to 2.0.  I know
> this isn't a concern for most people, but it would be nice for our users.
>
> Ryan
> ______________________________________________________________
> Ryan Bloom				rbb@apache.org
> Covalent Technologies			rbb@covalent.net
> --------------------------------------------------------------

-- 

______________________________________________________________
Ryan Bloom				rbb@apache.org
Covalent Technologies			rbb@covalent.net
--------------------------------------------------------------

Re: MPM config directives

Posted by Ryan Bloom <rb...@covalent.net>.
On Friday 21 September 2001 01:04 pm, Joshua Slive wrote:
> Aaron was brave enough to raise this topic again, and I'd rather not see it
> fall flat, so I'm going to try to force the issue.
>
> Here are two proposals.  They work for both prefork and worker.  I have not
> thought deeply about perchild, so I don't know how it will fit in.
>
> A: All config directives deal with "workers".  Behind the scenes,
> StartWorkers and MaxWorkers are translated into processes using Aaron's
> logic.
>
> StartWorkers              50
> MaxWorkers               150
> MinSpareWorkers           10
> MaxSpareWorkers           50
> WorkersPerProcess         25
> MaxRequestsPerProcess      0
>
> B: Slightly less elegant because different units are used for different
> directives, but no behind the scenes translation is necessary, so it is
> more predictable.
>
> StartProcesses             2
> MaxProcesses               6
> MinSpareWorkers           10
> MaxSpareWorkers           50
> WorkersPerProcess         25
> MaxRequestsPerProcess      0
>
> I can live with either of these, but I don't think it makes sense to have
> "StartProcess" and "MaxWorkers".  If we are going to translate one in the
> background, we should translate both.
>
> I slightly favour B because it is simpler and involves no code changes
> except changing directive names.

I would much rather see us implement A.  It makes things more obvious to the
user.  We aren't asking them to do any multiplication to look at how many
requests they can handle at once.  This will also cut down on the number of
bugs filed.  I am mostly thinking of Unix, where threads are reported through
ps.  If people specify 6 processes to start, but ps reports 120 have been started,
they think it is a bug.  In reality, Linux is just reporting all the threads as if
they were processes.

Also, sticking with A makes us translate better from 1.3 to 2.0.  I know this isn't
a concern for most people, but it would be nice for our users.

Ryan
______________________________________________________________
Ryan Bloom				rbb@apache.org
Covalent Technologies			rbb@covalent.net
--------------------------------------------------------------

Re: MPM config directives

Posted by Cliff Woolley <cl...@yahoo.com>.
> On Fri, Sep 21, 2001 at 04:04:11PM -0400, Joshua Slive wrote:
> >
> > A: All config directives deal with "workers".  Behind the scenes,
> > StartWorkers and MaxWorkers are translated into processes using Aaron's
> > logic.
> >
> > StartWorkers              50
> > MaxWorkers               150
> > MinSpareWorkers           10
> > MaxSpareWorkers           50
> > WorkersPerProcess         25
> > MaxRequestsPerProcess      0
>

+1

--Cliff

--------------------------------------------------------------
   Cliff Woolley
   cliffwoolley@yahoo.com
   Charlottesville, VA



Re: MPM config directives

Posted by Justin Erenkrantz <je...@ebuilt.com>.
On Fri, Sep 21, 2001 at 04:04:11PM -0400, Joshua Slive wrote:
> 
> Aaron was brave enough to raise this topic again, and I'd rather not see it
> fall flat, so I'm going to try to force the issue.
> 
> Here are two proposals.  They work for both prefork and worker.  I have not
> thought deeply about perchild, so I don't know how it will fit in.
> 
> A: All config directives deal with "workers".  Behind the scenes,
> StartWorkers and MaxWorkers are translated into processes using Aaron's
> logic.
> 
> StartWorkers              50
> MaxWorkers               150
> MinSpareWorkers           10
> MaxSpareWorkers           50
> WorkersPerProcess         25
> MaxRequestsPerProcess      0

+1.  -- justin


Re: MPM config directives

Posted by "Roy T. Fielding" <fi...@ebuilt.com>.
On Fri, Sep 21, 2001 at 04:04:11PM -0400, Joshua Slive wrote:
> A: All config directives deal with "workers".  Behind the scenes,
> StartWorkers and MaxWorkers are translated into processes using Aaron's
> logic.
> 
> StartWorkers              50
> MaxWorkers               150
> MinSpareWorkers           10
> MaxSpareWorkers           50
> WorkersPerProcess         25
> MaxRequestsPerProcess      0

+1 - I assume that MaxRequestsPerProcess will now increment per request
and not per connection, removing the problem with keepalive DoS.

....Roy


Re: MPM config directives

Posted by Aaron Bannert <aa...@clove.org>.
On Fri, Sep 21, 2001 at 04:04:11PM -0400, Joshua Slive wrote:
> A: All config directives deal with "workers".  Behind the scenes,
> StartWorkers and MaxWorkers are translated into processes using Aaron's
> logic.
> 
> StartWorkers              50
> MaxWorkers               150
> MinSpareWorkers           10
> MaxSpareWorkers           50
> WorkersPerProcess         25
> MaxRequestsPerProcess      0

I'm going to have to stick with the one closest to what I just implemeted,
so here's my obligatory (non-binding) +1

-aaron