Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Aug 2000 18:15:43 -0400 (EDT)
From:      Jim Jagielski <jim@jaguNET.com>
To:        bright@wintelcom.net (Alfred Perlstein)
Cc:        mwm@mired.org (Mike Meyer), questions@FreeBSD.ORG
Subject:   Re: Scaling Apache?
Message-ID:  <200008282215.SAA09225@devsys.jaguNET.com>
In-Reply-To: <20000828143857.B18862@fw.wintelcom.net> from "Alfred Perlstein" at Aug 28, 2000 02:38:57 PM

next in thread | previous in thread | raw e-mail | index | archive | help
Alfred Perlstein wrote:
> 
> * Mike Meyer <mwm@mired.org> [000828 14:36] wrote:
> > Alfred Perlstein writes:
> > > * Steve Lewis <nepolon@systray.com> [000828 11:53] wrote:
> > > > On Mon, 28 Aug 2000, Alfred Perlstein wrote:
> > > > > > What do you recommend for a web server if Apache is "entirely useless" may
> > > > > > I ask?
> > > > > Zues, thttpd, roxen, there's a lot out there that are a lot faster.
> > > > > 
> > > > > Supposedly Zues is king.
> > > > Do you happen to know what these do better than apache? 
> > > "everything", apache needs a process to handle each request
> > 
> > Huh? That stopped being true a *long* time ago. Last time I looked at
> > the default config, the number of requests a process would handle was
> > set very low, but that is trivially fixable.
> 
> I'm aware of the way that it keeps the processes around for to grab the
> next request, it's still not good enough.  It's the MaxRequestsPerChild
> or something 'tunable'.
> 

Different beast... MaxRequestsPerChild (actually, it's max connections
per child, since it only counts the number of initial requests coming in.
So a single request that "pipelines" 25 "keepalive" requests only
counts as 1 more to the total) is there to keep a handle on
memory leaks. The idea that after a child handles X requests/connections,
sufficient memory may have leaked to bloat the memory footprint to
something quite nasty :) To avoid this, the main httpd process will
kill off a child after that many requests and spawn a new one. If
the setting is very low, then Apache will be spending a lot of
time killing and forking. Nowdays, it's pretty common for the
setting to be something like 100,000 or higher or 0 (no limit).

What _is_ true is that a process is required to respond to the
request. The whole idea behind preforking is "ensuring" sufficient
numbers that you don't need to fork new ones just when you
start needing them ;)

-- 
===========================================================================
   Jim Jagielski   [|]   jim@jaguNET.com   [|]   http://www.jaguNET.com/
                "Are you suggesting coconuts migrate??"


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




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