Hi Shawn,
On Fri, Oct 05, 2012 at 04:10:29PM -0600, Shawn Heisey wrote:
> 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.
Even better, use "track" instead of "check" : you enable checks in only
one backend and all other ones track the servers from this backend. For
example :
backend checks
server s1 1.1.1.1:80 check
server s2 1.1.1.2:80 check
server s3 1.1.1.3:80 check
backend prod1
server s1 1.1.1.1:80 track checks/s1
server s2 1.1.1.2:80 track checks/s2
server s3 1.1.1.3:80 track checks/s3
...
The tracking servers will accurately mirror the other server's status.
And if you disable the checked server via the stats interface, all tracking
servers will automatically be disabled. This is a very useful feature in
fact.
Regards,
Willy