/ Zope / Apsis / Pound Mailing List / Archive / 2006 / 2006-10 / Dynamic scaling of backends

[ << ] [ >> ]

[ Configuration reload / "ForAll.pl - ... ] [ Session Cookies / "McMahon, Peter ... ]

Dynamic scaling of backends
"Dean" <deanmaunder(at)telstra.com>
2006-10-26 23:56:24 [ FULL ]
- added dynamic rescaling of back-end priorities.

Ive been testing 2.1.5 and have noticed that no requests are going to a
particular server. Ive removed the priority line from the BackEnd.

My site has an average of about 3req/sec, and these requests are taking less
than 0.2 secs returning to pound from the server.

Is the dynamic scaling causing pound to only redirect requests to a single
web server? I was previously using 2.0 and the load was distributed evenly
(except for a certain service which I redirect to web1).  If a backend has a
priority will this disable the dynamic scaling?

A graph of the latest version of pound:

 <http://203.143.239.53:8001/pound/newpound.jpg>
http://203.143.239.53:8001/pound/newpound.jpg

And the old version:

 <http://203.143.239.53:8001/pound/oldpound.jpg>
http://203.143.239.53:8001/pound/oldpound.jpg

Anybody else experiencing this, or is this meant to be happening?

Rgds

-Dean
Attachments:  
text.html text/html 1775 Bytes

Re: [Pound Mailing List] Dynamic scaling of backends
Robert Segall <roseg(at)apsis.ch>
2006-10-28 13:00:25 [ FULL ]
On Fri, 2006-10-27 at 07:56 +1000, Dean wrote:[...]

Many thanks for the very valuable information. To answer your question:
no, by itself it does not cause it to disable a back-end. The problem is
that it does not "dampen" it fast enough, especially for a low traffic
site like yours. To test this: try the following modifications:

1. in svc.c, line 594, replace

    if(++be->n_requests > 30000) {

with

    if(++be->n_requests > 2000) {

2. in svc.c, lines 960 and on (4 occurences total), whenever you update
the priorities you should also scale the statistics:

    if(be->t_average < (average - sq_average)) {
        be->priority++;
        svc->tot_pri++;
        be->n_requests /= 4;  <-- added
        be->t_requests /= 4;  <-- added
    }
    if(be->t_average > (average + sq_average) && be->priority
> 1) {
        be->priority--;
        svc->tot_pri--;
        be->n_requests /= 4;  <-- added
        be->t_requests /= 4;  <-- added
    }

same applies to lines 990 and on.

Please try these modifications and let me know if it helps.[...]

MailBoxer