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


Reply via email to