> -----Original Message----- > From: Steven van der Vegt [mailto:[email protected]] > Sent: Wednesday, January 05, 2011 8:34 AM > To: [email protected] > Subject: RE: [Pound Mailing List] RE: Website stalls every 60 seconds > > Hi Joe! > > I like the idea! You also implemented it pretty quick! > I tested you're implementation(not production) and it seems to work > quite good.
Good to hear :) > The only thing I wonder is, why not choose a property which you can > deterministically extract a backend from. Like the clients ip for > example. The decimal value, modulo the number of backends. Or a cookie, > modulo the #backends etc. I have issues with client ip specifically... Pools of proxy servers with different ips, mobile devices that might jump ips frequently, and the case of internal clients where the ips might not be significantly different. The main reason not to do this in my opinion is it won't allow for a proper load balance. If you have 5 backends and yournet.10 and yournet.20 are your biggest talkers, they'll both be assigned to the same backend. Even worse, if a backend dies, what do you do? If your number of backends decreases you will remap a lot of your sessions. If you don't decrease your modulo, you have to deterministically figure out a replacement backend, which will likely overload one or more of them. Session type IP in pound works with client ips, but it's still using the session database to ensure an equal load balance. At least going with a cookie like this, Pound is deciding where to place the requests. It can do so based on the same logic as using a session database, it can handle dead and disabled servers properly, and the backend assignment will be as fair as usual. (Using dynscale or not, depending on your config) Joe -- To unsubscribe send an email with subject unsubscribe to [email protected]. Please contact [email protected] for questions.
