[Catalyst] FastCGI is Weak Sauce

Marcello Romani mromani at ottotecnica.com
Mon Jul 3 10:47:03 CEST 2006

Hugh Lampert ha scritto:
> A. Pagaltzis wrote:
>> * Perrin Harkins <perrin at elem.com> [2006-06-29 23:20]:
>>> Silly complaint or not, people running mod_perl already have
>>> this covered, since the normal mode of deployment is to run a
>>> static web server and proxy via HTTP over to a mod_perl server
>>> for all dynamic stuff, i.e. exactly what he's trying to build
>>> for Ruby.
> Is that really the normal mode of deployment?  Is that for high traffic 
> apps?  I was planning on having only Apache server for all content, 
> static and dynamic (since I'm writing a small departmental intranet web 
> app).  Is it really necessary to have two servers to make a Catalyst app 
> work well?

No, especially for low traffic sites on high-speed networks such as 
intranet portals or webapps.

Public, high-traffic websites based on (possibily huge) mod_perl apps 
face two major problems:
1) high number of simultaneous requests
2) slow clients
which in the end stem from the fact that a mod_perl-enabled apache web 
server is quite big (in memory terms).
If you have many requests simultaneously active, you have a high number 
of apache processes. The higher the memory requirements for a single 
process, the lower the maximum number of apache processes you can have 
on a particular machine.
Usually static resources (like images in a photo gallery or css files) 
don't need to be processed by a catalyst (or mod_perl) application, and 
can be therefore served by much smaller non-mod_perl-enabled apache 
Also, slow clients (e.g. those connecting via analog modems) can tie an 
apache process to a particular request for quite a long time, especially 
for static resources like big images, zip files, etc.
If you serve those files with huge processes it means you are in fact 
wasting memory for quite a long time, limiting the maximum number of 
simyltaneous requrests you could serve with the same hardware.
In this scenario, using one apache server (or even a completely 
different machine) for static resources and another one for 
webapp-generated content can make a significant performance difference.

> -- Hugh
> _______________________________________________
> List: Catalyst at lists.rawmode.org
> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
> Dev site: http://dev.catalyst.perl.org/

Marcello Romani
Responsabile IT
Ottotecnica s.r.l.

More information about the Catalyst mailing list