Limiting backend connections per node
dormando at rydia.net
Wed Nov 16 13:10:49 PST 2005
No problem, let me clarify;
>I guess I'm a little confused as to where the problem is. Perlbal will
>connect to a node until it stops processing requests, yes, but this means
>that Perlbal will only ever have N+1 connections open to each backend,
>where N is the number of MaxClients.
That's exactly how I understand it works.
>This should be ideal, assuming your MaxClients are set to sane values. If
>you haven't, though, and they're set really high -- then yes, you're going
>to lose performance on those nodes when they get above their limit.
They're not set to sane values :) I have 50 webservers where httpd.conf
might not even be named httpd.conf right now. Adjusting the MaxClients
setting across all of my webservers (at the moment) is a huge manual
production. I've been here about a month and a half and am still busy
cleaning it up.
>On LiveJournal, if that happens, we just fix the MaxClients for the node
>that is underperforming. That may be 'annoying' sure, but it's always
>worked for us.
That's totally fine, but changing it for me is nontrivial at the moment.
If I have to switch back to the old load balancer (which does no client
buffering), I have to up the maxclients back to 60+ across the backend.
>Oh -- and in case it's not clear: for this behavior to be, you have to
>enable the backend verify and use OPTION requests options ... I forget the
>names offhand but they're in the example configs.
Yup, I have that all set. Only thing I can't set at the moment is the
persist_backend, but that will be enabled if I can switch the whole
service over and enable keepalives on the backend (and that perlbal
supports our backend for persistent connections; I noticed chunked
encoding short-circuits that).
More information about the perlbal