I don't know of a way to only define the server list once, but in subsequent 
backends you can use 'track backend_name/sv_name' instead of 'check' to reduce 
the health check spam.

One gotcha I ran into is that if I have 'option httpchk HEAD /my/health/url' in 
the backend with 'check's I also needed to specify 'option httpchk HEAD 
/some/url' in the other backends with traces. The latter URL doesn't appear to 
matter; I use '/unused' in my config as a hint to my future self that it's the 
URLs in the backend with checks that matters, not the backends with traces. 
Unsure if this is a bug or if I'm doing something wrong (quite possibly the 
latter).

Bryan
________________________________________
From: Shawn Heisey [[email protected]]
Sent: Friday, October 05, 2012 17:10
To: [email protected]
Subject: reducing check requests with same servers in many backends

I have a setup doing a lot of URL rewriting.  I set up an ACL to match
each string that I want to rewrite.  When each one matches, it sends the
request to a backend specific to that rewrite.  All of the backends
(over a dozen of them) have the same set of servers, each defined with
'check' in them.

This results in a lot of traffic just for checking -- pretty much
continuous.  It does not appear to be overwhelming the servers, but it
does make for an incredible amount of noise in packet captures taken at
the server.  I was able to reduce it a little bit by changing the check
interval to 20 seconds, but it's still pretty excessive, because it has
to check the same servers over a dozen times during that 20 second
interval.  I do have spread-checks enabled with a value of 5.  That
value is arbitrary, the documentation said values from 2 to 5 tend to be
good.

Is there any way to streamline the config so that I only need to define
the server list once, and have it only check the servers once for every
check interval?  I'm running 1.4.18 for this, but I could run a 1.5-dev
version if required.

Thanks,
Shawn



Reply via email to