Return-Path: Delivered-To: apmail-httpd-users-archive@www.apache.org Received: (qmail 41318 invoked from network); 4 Mar 2009 06:40:23 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 4 Mar 2009 06:40:23 -0000 Received: (qmail 4856 invoked by uid 500); 4 Mar 2009 06:40:12 -0000 Delivered-To: apmail-httpd-users-archive@httpd.apache.org Received: (qmail 4846 invoked by uid 500); 4 Mar 2009 06:40:12 -0000 Mailing-List: contact users-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: users@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list users@httpd.apache.org Received: (qmail 4837 invoked by uid 99); 4 Mar 2009 06:40:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 03 Mar 2009 22:40:12 -0800 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=NORMAL_HTTP_TO_IP,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of trevor.phillips@gmail.com designates 209.85.200.169 as permitted sender) Received: from [209.85.200.169] (HELO wf-out-1314.google.com) (209.85.200.169) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 04 Mar 2009 06:40:05 +0000 Received: by wf-out-1314.google.com with SMTP id 27so3351680wfd.15 for ; Tue, 03 Mar 2009 22:39:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type:content-transfer-encoding; bh=uf50LA46TGhj3+xuno12vQFbzL9Pc6B1+ElSHOjRxdY=; b=nHj4j9BdCfN7Qzl4Qpa3F9M85e00YRVZQqXoZ0GOGL3RQc2Rm+7+SF/4pd2AkIl+Zd iqXauc2AlwCEZLf0arpwmZQq3nkxPPHC7cr9OFZ0GawOX5rFvqyVDFSaPD0c6Z5YiyMX 3rXoegauAjh3VVH3gHwnQD1X075V6oUtRk//c= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; b=McJ0iElYPqKFglZBtdfeDUhfCjy+PBMf/plqm6/y1cAPqPeeopASAw+fNI26T+bbne JaREM4iEgZTjEO+b2pgKV4XfBWEw7pLdJPICp3yo3eEdrjjwaKY3e4Xx/keUv5OqnYzh OZiB36oguq+b6XHfuDIXbDmqA877NXkO0WY38= MIME-Version: 1.0 Received: by 10.142.242.8 with SMTP id p8mr4040105wfh.59.1236148784580; Tue, 03 Mar 2009 22:39:44 -0800 (PST) Date: Wed, 4 Mar 2009 15:39:44 +0900 Message-ID: <3fff79a80903032239m386dbb44y3ee79998ab67414@mail.gmail.com> From: Trevor Phillips To: users@httpd.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org Subject: [users@httpd] Apache bottleneck problems Hi! I've been a long time administrator of Apache servers in a University environment (translation: a LOT of variety in what content & apps are on the servers), and our configuration isn't getting simpler. One of our sites is currently set up with a reverse proxy in front of two back-end sites, of which one site is load balanced across two servers. One of the goals with the load-balanced section of the site was for fail-over if something bad happened to one of the servers. The problem we're having is that if "something bad" happens to any back-end server, then the reverse proxy workers are all soaked up by incoming requests for the broken part, which then blocks access to the rest of the content. Is there a way to limit how many workers buffer up requests for each back-end server? Or even based on Location or URL pattern match? Even within one server, we encounter this problem on a smaller scale occasionally - one heavy dynamic part of the site grinds to a crawl, all apache daemons queue up queries for that part, and all the rest of the content suffers as a consequence. If a sub-part of the site does encounter problems, then it would be preferable to politely drop extra connections to that part of the site and get on with providing the rest of the content to clients. Here's snippets of part of our apache & proxy config: Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 15 ServerLimit 700 StartServers 20 MinSpareServers 10 MaxSpareServers 30 MaxClients 700 MaxRequestsPerChild 500 BalancerMember http://10.50.4.6 BalancerMember http://10.50.4.7 ProxySet lbmethod=byrequests RewriteRule ^/$ balancer://backend/ [P,L] RewriteRule ^/(patternmatch.*) balancer://backend/$1 [P,L] RewriteRule ^/(.*) http://10.50.4.10/$1 [P,L] If one of the nodes in balancer://backend dies, then typically it does not fail over fast enough to stop the proxy snowballing, and when it does failover, typically the second node then snowballs & dies from the sudden influx of banked up requests. I did some tests setting smax and max for the BalancerMembers - I set smax=5 max=10, and then used ab to hit it with 50 concurrent hits - both the Proxy and the back end showed 50 active connections. So either smax/max aren't taking effect, or I'm completely misinterpreting what they are supposed to do. We're using Apache 2.2.3 under Debian 4.0 (Etch) - and apparently the Prefork version. Any ideas/help would be greatly appreciated. Thanks! -- Trevor Phillips - http://dortamur.livejournal.com/ "On nights such as this, evil deeds are done. And good deeds, of course. But mostly evil, on the whole." -- (Terry Pratchett, Wyrd Sisters) --------------------------------------------------------------------- The official User-To-User support forum of the Apache HTTP Server Project. See for more info. To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org " from the digest: users-digest-unsubscribe@httpd.apache.org For additional commands, e-mail: users-help@httpd.apache.org