Limiting backend connections per node

Mark Smith junior at danga.com
Wed Nov 16 12:31:16 PST 2005


> I see perlbal relies on the backend servers MaxClients (or similar) 
> setting to limit the number of accepting backend connections that each 
> server has.
> 
> This is an issue for me (at the moment), since 35+ of my backend 
> webservers were set up by hand, use different linux distros, have their 
> configs in different places, etc. I can't rebuild them for a couple more 
> weeks, so it'd be much easier if perlbal had a node option to limit the 
> max number of backend connections it will try to open to each 
> independent node. It would also make it much simpler to try different 
> maximums for the backend to see which is most efficient for throughput. 
> Otherwise (as far as I can tell) I have to change the config and grace 
> apache on 100+ machines, which even when done in parallel is a bit 
> obnoxious.

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.

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.

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.

> So uhh. Should I try hacking it in, does perlbal not work right with 
> this kind of setup, or what? :)

Unless I'm totally missing the boat (possible! hit me if so) then you
shouldn't have to do anything.  N+1 isn't going to hurt your nodes,
especially since the +1 request.

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.

--
Junior (aka Mark Smith)
junior at danga.com

Software Engineer
Six Apart / Danga Interactive


More information about the perlbal mailing list