[Catalyst] memory usage of mod_perl process

Fernan Aguero fernan at iib.unsam.edu.ar
Thu Feb 8 16:33:14 GMT 2007


+----[ Nilson Santos Figueiredo Junior <acid06 at gmail.com> (08.Feb.2007 11:37):
|
| On 2/8/07, Fayland Lam <fayland at gmail.com> wrote:
| >but the memory usage of each process seems to be 95 m. it's pretty high!
| >we have more 60+ pms.
| 
| We've got around 100+ pms and myapp_server.pl uses around 87mb of RAM.
| Don't really know about usage under mod_perl, I'd need to check it out.
| 
| -Nilson Santos F. Jr.
|
+----]

You might want to tune your apache/modperl (google 'apache
modperl tuning'). 
http://perl.apache.org/docs/1.0/guide/performance.html

But also, compare the memory usage of your modperl httpd
processes, and the one of the catalyst webapp_server.pl.
The comparison should give you an idea of how much overhead 
is coming from apache. You should evaluate if the effort of
trimming apache functionality (for example by removing
dynamically loaded modules) is worth it.

Just as a reference, I've got ~13 Mb usage from a barebones
catalyst app (create a new app and run its standalone
server). While the app I'm working on (91 pms, of which ~80
are coming from the model) is running at ~150 Mb in
apache/modperl (but this is not fair to catalyst because
this is a heavy apache that is also running mod_python
(trac/svn)) and at ~86 Mb using the standalone web server.

Are you using DBIx::Class?

Our DBIx::Class model is ~80 tables. Because during
development we were also changing the underlying database,
at one point we were running our test server using three
different instances of these models, each against a
different db instance. In this case, the average httpd
process was huge. The mem size was reduced by ~70Mb for each
model instance that we eliminated.

So yes, you can gain a significant amount of memory if you trim
down your db tables/schema and your DBIx::Class model. In
our case those ~80 tables are there because the database is
also used outside of the catalyst webapp. When development
of the catalyst app stabilizes, we will go over the model
and remove all .pm files for tables that the catalyst app
doesn't use.

Hope this helps,

Fernan



More information about the Catalyst mailing list