[Catalyst] FastCGI is Weak Sauce
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://email@example.com/
> Dev site: http://dev.catalyst.perl.org/
More information about the Catalyst