Strategies for splitting load across varnish instances? And avoiding single-point-of-failure?

Michael Fischer michael at
Sat Jan 16 03:14:43 CET 2010

On Fri, Jan 15, 2010 at 5:33 PM, pub crawler < at>wrote:

Varnish performs very well.  Extending this to have a cluster
> functionality within Varnish I think just makes sense.

haproxy and F5 equipment also both perform very well.

> The workaround
> solutions so far seem to involve quite a bit of hardware as well as
> having a miss rate of 50% in example of 2 Varnish instances.  Sure it
> can hot populate fast, but it's two stacks of memory wasted for the
> same data per se.

If you hash your requests from a load balancer across a pool of n varnish
instances, the most you lose in the event of a failure is 1/n.  You don't
cache objects in more than one instance.  There's no "wasted" memory.

 I suppose a custom solution to hash the inbound
> requests somehow and determine which Varnish should have the data can
> be done, but unsure if anyone now is doing that.

That's precisely what L7 switches do.  As David said, haproxy has this
functionality, as do other implementations.

> Squid is a total disaster.  If it wasn't none of us would be here
> using Varnish now would we :)  It's amazing Squid even works at this
> point.

Can you quantify this statement?  Squid works very well at some

It's not like the code that was out there working spontaneously started to
become buggier.

> I put in a feature request this evening for this functionality.  We'll
> see what the official development folks think.  If it can't be
> included in the core, then perhaps a front-end Varnish proxy is in
> order developmentally.  I'll say this akin to Moxi in front of
> memcached instances:

I'm all for putting backend hashing into Varnish for the purpose of routing
requests to backends based on a consistent hash of the request parameters --
and there's no reason why the backend can't be another Varnish instance.
 But the appropriate use of this is to more efficiently utilize cache memory
by associating an object with a designated Varnish server in a pool, not for
HA.  This was one of my first requests that still (alas) has seen no

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the varnish-misc mailing list