Anybody interested in testing patch to allow weighted nodes?
brad at danga.com
Thu May 17 00:53:20 UTC 2007
Okay, so it won't be what other people expect.
On Wed, 16 May 2007, Brett G. Durrett wrote:
> Actually, that is what I thought it would do :)
> My preference would have been to have it be on each request but we are
> running enough perlbals and have enough traffic that the reduced new
> connections should have an impact (we have about 20+ perlbals for this
> service and they create new connections with reasonable frequency, even
> with back-end keepalives on).
> I am not sure this would be valuable for light traffic... in my initial
> testing connections favored (and stuck) to super high weights and would
> sometime stick with a lower weight, once picked.
> Brad Fitzpatrick wrote:
> > I don't think this would do what you think it would.
> > This would just be for allocating new connections (which is kinda
> > boring, and happens relatively rarely, and still only one
> > per-node-in-flight), not for how requests are actually assigned to
> > backends.
> > On Wed, 16 May 2007, Brett G. Durrett wrote:
> >> I have attached a patch to 1.57 that will allow weighting of nodes
> >> specified in a nodefile. This might be handy if your servers have a
> >> wide range of performance and you want to direct less traffic to less
> >> powerful servers.
> >> I am putting this out in case anybody has use for it and is willing to
> >> test it :)
> >> Some notes:
> >> - It only works using nodefiles, not the config file node definitions or
> >> the configuration interface "add" or "remove" commands.
> >> - I am running about 5% of our traffic through my production test
> >> server... it appears to be working well but I would not feel comfortable
> >> asking others to try it in production. I have done very little
> >> testing... I am not sure about the behavior in failure cases, especially
> >> in regards to failing-out bad nodes.
> >> - To weight a node, add whitespace and weight:<int> to the nodefile...
> >> for example:
> >> 10.10.10.78 weight:1
> >> 10.10.10.79 weight:1
> >> 10.10.10.124 weight:5
> >> 10.10.10.125 weight:5
> >> - If you do not specify a weight for any node the weighting code is
> >> ignored.
> >> - If you specify a weight for some (but not all) nodes, it will assume a
> >> weight of "1" for nodes that did not have a weight.
> >> - If weights are assigned, the "show pool <pool>" command will add the
> >> weights of all nodes to the output... if you did not use weighting, the
> >> standard output will be displayed. For example:
> >> show pool virtual_web
> >> 10.10.10.78:80 765 weight:1
> >> 10.10.10.79:80 770 weight:1
> >> 10.10.10.124:80 4007 weight:5
> >> 10.10.10.125:80 3921 weight:5
> >> Again, this was a quick hack and I am providing this for testing... if
> >> your Perlbal is controlling a nuclear reactor, please don't try this.
> >> Thanks in advance for any testing / feedback you can provide,
> >> B-
More information about the perlbal