Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 03 Apr 1997 11:53:34 -0500
From:      Bakul Shah <bakul@torrentnet.com>
To:        dg@root.com
Cc:        Guido van Rooij <guido@gvr.win.tue.nl>, FreeBSD-hackers@freebsd.org (FreeBSD-hackers)
Subject:   Re: apache like preforking apps and high loads 
Message-ID:  <199704031653.LAA20772@chai.plexuscom.com>
In-Reply-To: Your message of "Thu, 03 Apr 1997 07:27:26 PST." <199704031527.HAA03657@root.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
> >When looking at Apacha like applications, one often sees extermely high
> >load averages. Apache preforks a number of processes that all block
> >on accept(). When a request comes in, all process are woken up and the
> >scheduler chooses one of the now runnable processes taht will succeed in
> >the accept(). The other go back to sleep.
> 
>    Not any more. I changed this a few days ago. Now only one process is
> woken up.

Fairness is probably not an issue when an app. consists of a number
of anonymous servers but in general one would want to make sure that
if N processes are waiting on accept() on the same socket, no one
process is starved of accepting.  How do you ensure that?

To guido:  For apache like apps one idea is to have one process be
the acceptor and have it pass a new socket to individual server
processes (including doing some initial processing to determine
which process should get this socket if not all server processes are
equivalent).

-- bakul



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199704031653.LAA20772>