Return-Path: X-Original-To: apmail-httpd-dev-archive@www.apache.org Delivered-To: apmail-httpd-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BCADDD51F for ; Wed, 14 Nov 2012 22:20:06 +0000 (UTC) Received: (qmail 74800 invoked by uid 500); 14 Nov 2012 22:20:06 -0000 Delivered-To: apmail-httpd-dev-archive@httpd.apache.org Received: (qmail 74580 invoked by uid 500); 14 Nov 2012 22:20:05 -0000 Mailing-List: contact dev-help@httpd.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@httpd.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list dev@httpd.apache.org Received: (qmail 74572 invoked by uid 99); 14 Nov 2012 22:20:05 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Nov 2012 22:20:05 +0000 X-ASF-Spam-Status: No, hits=-5.0 required=5.0 tests=RCVD_IN_DNSWL_HI,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: local policy) Received: from [207.171.7.178] (HELO mbox1.develooper.com) (207.171.7.178) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Nov 2012 22:19:59 +0000 Received: from mbox1.develooper.com (mbox1.develooper.com [127.0.0.1]) by mbox1.develooper.com (Postfix) with ESMTP id 39F69175A87 for ; Wed, 14 Nov 2012 14:19:38 -0800 (PST) Received: (qmail 23863 invoked from network); 14 Nov 2012 22:19:38 -0000 Received: from unknown (HELO ask.bur.sol) (ask@mail.dev@64.235.248.131) by smtp.develooper.com with ESMTPA; 14 Nov 2012 22:19:38 -0000 Content-Type: text/plain; charset=windows-1252 Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\)) Subject: Re: The Case for a Universal Web Server Load Value From: =?windows-1252?Q?Ask_Bj=F8rn_Hansen?= In-Reply-To: <8E0727E5-AF15-45E3-AE60-B098B445D86E@jellybaby.net> Date: Wed, 14 Nov 2012 14:19:37 -0800 Content-Transfer-Encoding: quoted-printable Message-Id: <54A62808-735D-4636-83D8-254B89E24ED3@develooper.com> References: <4B449A3E-1E1E-4CA7-AA9D-7BBCA6900C64@webthing.com> <7A8C4B8E-82B6-4F1D-8616-E572AF20189E@jaguNET.com> <68BFF4DD-BBAF-4B6E-9916-B00B38CFB18C@develooper.com> <8E0727E5-AF15-45E3-AE60-B098B445D86E@jellybaby.net> To: dev@httpd.apache.org X-Mailer: Apple Mail (2.1499) X-Virus-Checked: Checked by ClamAV on apache.org On Nov 14, 2012, at 11:01, Tim Bannister wrote: >> I really like how Perlbal does it: >>=20 >> It opens a connection when it thinks it needs more and issues a (by = default, it's configurable) "OPTIONS *" request and only after getting a = successful response to the test will it send real requests on that = connection (and then it will keep the connection open with Keep-Alive = for further requests). >=20 > X-Server-Load: would still be an improvement, eg with this response to = OPTIONS: > HTTP/1.1 200 OK > Date: Wed, 14 Nov 2012 19:00:00 GMT > Server: Apache/2.5.x > X-Server-Load: 0.999 >=20 > =85the balancer might decide to use a backend that is reporting a = lower load. I know I am fighting the tide here, but it's really the wrong smarts to = put in the load balancer. The backend should/can know if it can take more requests. When it can't = it shouldn't and the load balancer shouldn't pass that back to the = end-user but rather just find another available server or hold on to the = request until one becomes available (or some timeout value is met if = things are that bad). With the "Perlbal-model" the backend can control how much work it will = take on and the load balancer will never send traffic to an overloaded = or hung server, so the users will always get to the first truly = available backend. The load balancer smarts should be in managing these "let's see if you = are ready" requests and "pending" connections. Ask --=20 Ask Bj=F8rn Hansen, http://askask.com/