|
/
Zope
/
Apsis
/
Pound Mailing List
/
Archive
/
2004
/
2004-05
/
question about pounds scheduling
[
Error in the log / "Alexander Meis" ... ]
[
New - current / Robert Segall ... ]
question about pounds scheduling
Sascha Ottolski <sascha.ottolski(at)gallileus.de> |
2004-05-11 15:17:21 |
[ FULL ]
|
Hi,
I've made a strange observation, and am unsure if the result is because
of an unrealistic setup, or if there might be a problem in pound.
For curiosity, I tested pound with two very different speeded (but both
rather slow) backends. With ab, one would give something like 5
pages/second, the other only 0.3 pages/sec. The numbers were almost
identical no matter if ab was run locally or remote, or if I connected
the respective backend directly or through pound with only one backend
configured.
Now, what performance would one expect if both backends were balanced by
pound? For me, with both backends configured to be the same prio I
thought at best it would come to 5.3 pages/sec., at worst to 5/sec. But
in fact the overall performance went down to something more like
between 1 or 2 pages/sec. The situation gets a little bit better if the
slower backend gets a prio of 1 and the faster a prio of 9, but it's
still not better than between 3 or 4 pages/sec.
Now I'm wondering, is this how it should be?
Testing was with 1.7, because I couldn't make current running
(immediately times out on the slow host, see
http://www.apsis.ch/pound/pound_list/archive/2004/2004-05/1083776972000#1083776972000).
Thanks for listening,
Sascha
[...]
|
|
|
Re: question about pounds scheduling
Robert Segall <roseg(at)apsis.ch> |
2004-05-11 15:55:57 |
[ FULL ]
|
On Tuesday 11 May 2004 15.17, Sascha Ottolski wrote:[...]
Yes, it is. You are responsible for setting the correct parameters for the
servers.
To use your example: one server does 5 reqs/sec, the other 0.3 reqs/sec, or if
you prefer 0.2 secs/req and 3.3 secs/req (note the 1-to-16.5 disparity). If
you set priorities as 1 and 1 about half the requests go to the first server,
and half to the other. Average response time: 1.75 secs/req. Changing
priorities to 9 and 1 makes average response time 0.51 secs/req. In practice
the times will be a bit better because as the faster server completes
requests new ones come in (Poisson vs. uniform distribution).
Moral of the story: don't use two servers that are that different, or use many
more than two.
[...]
Sorry for missing that one. Try latest -current (there is a new one today),
check networking setup. 1.7 has a major problem if you have more than one
listener.[...]
|
|
|
Re: question about pounds scheduling
Sascha Ottolski <sascha.ottolski(at)gallileus.de> |
2004-05-14 12:49:56 |
[ FULL ]
|
Am Dienstag, 11. Mai 2004 15:55 schrieb Robert Segall:[...]
Hi Robert,
thanks for the explanation. However, I'm still wondering if this is
really what one would expect. Of course, it doesn' make too much sense
to have backends with such different performances, but it still isn't
unrealistic. For example, what if a backend is overloaded for whatever
reason, and becomes very slow in responding. I think, such a situation
should not result in taking the whole cluster down to a speed below of
what a single backend thats still is available to handle (the other
backends might be idle).
So far for my dreams :-). Unfortunately, I have no idea how complex it
would be to implement a scheduler that would recongnise if servers are
idle and adjust the forwarding of requests accordingly. A simple
approach might be, that pound knows which backends have requests
pending, and which not, thus sending the next request to a server that
has none (or the server which has the shortest queue of pending
requests).
Thanks,
Sascha
[...]
|
|
|
Re: question about pounds scheduling
Robert Segall <roseg(at)apsis.ch> |
2004-05-14 14:59:31 |
[ FULL ]
|
On Friday 14 May 2004 12.49, Sascha Ottolski wrote:[...]
In theory you are right. In practice we choose the path of least complexity -
it's good enough for 98% of the cases...
[...]
That would imply maintaining some sort of queue (general and/or per-server) in
Pound, which is exactly the complexity we avoid now.
As things stand Pound just randomly distributes requests to the back-ends
according to the priorities you defined. Load, response time and queue size
are not checked, measured or taken into account.[...]
|
|
|
|