Getting static assets (js, css, gfx) off your apache children is far more important than anything else for scaling up to lots of concurrent users IMHO. We use a pound load balancer to direct static reqs to nginx "cdn" and all dynamic requests to apache backends.

Once you have that in place tuning the data access layer / SQL, server I/O subsystem, network stack and OS is next most important.

Caching objects and templates would be maybe 3rd and 4th on the to-do list but after all the above.

On Tue, 13 Mar 2012, Dan Axtell wrote:

Hello,

I'm looking at upgrading some legacy code that runs under mod_perl with an eye
towards making it more scalable.

I understand the value of having one light-weight server for static content,
and a reverse proxy back to a heavy-weight Apache with mod_perl, and I
understand I can use something like Varnish or mod_cache to add a caching
layer,  but I'm wondering if there is much if any value to caching templates
at the application level.

The apps are mostly dynamic forms based on HTML::Template.  H::T has some
caching options but they seem more aimed at CGI users.  I could convert to
Template::Toolkit, which as I understand converts to compiled Perl code (which
would presumably mean that mod_perl would leave the template objects in
memory).

So does anybody recommend going down to the application level to cache
templates (either by tinkering with HTML::Template or trying to pre-load TT
objects), or is there more bang for the buck by focusing on the server level?
Or is both the way to go?  Not sure where diminishing returns kicks in.

Thanks,
Dan


Reply via email to