Received: (from majordom@localhost) by hyperreal.com (8.8.5/8.8.5) id LAA17368; Wed, 11 Jun 1997 11:08:48 -0700 (PDT) Received: from twinlark.arctic.org (twinlark.arctic.org [204.62.130.91]) by hyperreal.com (8.8.5/8.8.5) with SMTP id LAA17354 for ; Wed, 11 Jun 1997 11:08:44 -0700 (PDT) Received: (qmail 2718 invoked by uid 500); 11 Jun 1997 18:14:33 -0000 Date: Wed, 11 Jun 1997 11:14:33 -0700 (PDT) From: Dean Gaudet To: new-httpd@apache.org Subject: Re: PCWeek article... In-Reply-To: <199706111248.IAA16296@devsys.jaguNET.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: new-httpd-owner@apache.org Precedence: bulk Reply-To: new-httpd@apache.org On Wed, 11 Jun 1997, Jim Jagielski wrote: > The graph shows Apache 1.1.1, 1.2b and IIS (I believe) with 1.2 lagging > behind 1.1.1 a bit and both behind IIS quite a lot. They mention that > they used the same "configuration" files for both versions of > Apache to keep it fair, whatever that means. It means they hammered it with hundreds of hits per second, and experienced Apache's "slow growth" problems because they didn't tweak StartServers or MaxSpareServers. 1.1 would grow as fast as possible. 1.2 grows one child per second. I've never verified this myself, this is based entirely on thought experiments. An interim solution to these boneheaded benchmarking folks is to put an httpd.conf-high_performance-dist into the config directory which tweaks the settings in such a manner as to be able to serve 200 requests per second (i.e. StartServers 80, MaxSpareServers 100, MinSpareServers 50 or some crap like that). The truth is, they probably never look at the memory requirements of the app and so won't notice the "bloat". A longer term solution is one that Cliff Skolnick mentioned a long time ago. I'll try rolling this into my recent patch that improves behaviour for large servers. The goal is to spawn servers at an exponential rate -- spawn 1 server if there are enough idle, then a second later if there still aren't enough idle then spawn 2 servers, then 4 servers, and so on. Servers are killed at a rate of one per-second if there are too many (my patch already achieves this). This exponential spawning means that even if minspare is set too low it'll be able to keep up with extended bursts of traffic. I will also work diagnostics into it so that the server can say "uh, bonehead, I just had to spawn 32 servers in one second, maybe you want to read the StartServer documentation". It already diagnoses a possibly low MaxClients setting. Anyone have an alternative spawning plan? Oh yeah I'm also tempted to change the sleep(1) into a select() timeout so that we can have it perform child maintenance more than once per second. Dean