Varnish

Jeroen van Meeuwen kanarip at kanarip.com
Wed Jul 28 10:36:19 UTC 2010


Mike McGrath wrote:
> On Fri, 23 Jul 2010, Jeroen van Meeuwen wrote:
> 
> > Mike McGrath wrote:
> > > I've been looking at a better proxy solution.  I initially pushed back
> > > against varnish because it would complicate the environment, and this 
will
> > > but since apache isn't cutting it I figured a slow incremental change is
> > > the best approach.  So what I'm proposing is this:
> > >
> > > httpd(proxy) -> varnish(proxy) -> haproxy(proxy) -> httpd(app)
> > >
> > > So a couple of reasons why I'm choosing to do design, especially since, 
in
> > > theory, varnish can completely replace both httpd and haproxy in that
> > > picture.
> > >
> >
> > I do not have all that much positive experience wrt. Varnish's efficiency.
> > Have you researched any other alternatives?
> >
> 
> Define efficiency, load times, disk space, cpu usage?
> 

Admittedly I'm not an expert in Varnish, but we run it over at Fedora Unity 
(behind apache, as a caching engine for plone/zope). Jonathan Steffan has a 
lot more expertise on Varnish - I let him know about this thread in case he 
would be willing to allow us to pick his brain. Pages remained presenting 
their cached version after editing, article locks are shown where in fact 
there were no locks, that sorta thing.

I suppose sinking one's teeth into it would suffice so resolve such problems, 
but for our deployment Varnish bloated the system more then we had in mind in 
terms or reducing the load on the backend application. This, in our case, had 
to do with memory consumption more so then with anything else.

> > In other architecture designs (large or heavily loaded rails deployments 
for
> > example), the concept of assets is introduced. Would such functionality 
serve
> > purpose?
> >
> 
> I've not used assets before, what's the scoop?
> 

With mod_passenger for Apache, *everything* that you hit on the VirtualHost 
goes through the Passenger stack. It has learned to not parse the contents of 
/images/, sorta speak, yet the client locks a thread and makes the the rather 
bloated httpd+passenger run in circles even for just a little while -per 
"asset".

With assets -and I'm not sure that term is accurate "across the board"-, a 
bunch of smart Ruby-on-Rails webservers (with mod_rails/mod_rack and such) no 
longer serve any content that is 1) static or 2) generated to be cached, and 
not subject to any Access Control. The latter would, in the case of Ruby on 
Rails, apply to haml/sass content, but in the case of Fedora would (maybe) 
apply to the mirror lists. These assets can then be hosted on a light-weight, 
stupid and efficient webserver -even without caching such would off-load the 
backend application servers considerably.

-- Jeroen

PS. Sorry, this had been sitting in my Drafts way too long...


More information about the infrastructure mailing list