[Catalyst] Catalyst for (really) big applications

Marcello Romani mromani at ottotecnica.com
Mon May 22 08:30:34 CEST 2006

Marcello Romani ha scritto:
> Perrin Harkins ha scritto:
>> Marcello Romani wrote:
>>> The two apache processes take up almost 200mb of ram just before the 
>>> first request. This value grows up to more than 250MB after list()ing 
>>> some tables (with paging).
>> That sounds really high to me.  I'm used to processes about 1/10th that 
>> size in most of my mod_perl apps.
> You didn't quote the fact that my app had about 40/50 modules (not 
> counting external modules like Class::DBI, etc.).
> Also, while I haven't done explicit tests about it, apache configuration 
> might have an impact on process size.
> A hint that this could apply to my case is the fact that running the 
> same app with the catalyst test server took much less memory (30/40 MB 
> if I recall correctly).
> Anyway, as I said I don't have the code anymore and unfortunately I 
> don't recall the numbers involved exactly enough to prove something.
> Unless I do some (fresh) tests, I can't provide any more (euro)cents to 
> this thread. I hope I'll have time to.
>  >
>> - Perrin
>> _______________________________________________
>> Catalyst mailing list
>> Catalyst at lists.rawmode.org
>> http://lists.rawmode.org/mailman/listinfo/catalyst

Ok I did some tests...

I created a minimal app (just the app class) and loaded it with the 
catalyst dev server and apache 2.0.55.
The OS is WindowsXP SP2, ActivePerl

I've done 4 measuerements.
For the cat server this means that I stopped (CTRL-C) and re-launched 
the app, for apache it means I stopped and started the service.
The apache tests report 2 values because there are 2 apache processes.

Memory reported by Task Manager, after program start, no request served.

Catalyst test server
13.204 KB
13.208 KB
13.204 KB
13.208 KB

Apache config 1

35.448 KB + 29.876 KB
35.452 KB + 29.868 KB
35.452 KB + 29.872 KB
35.452 KB + 29.928 KB

Apache config 2

39.984 KB + 29.280 KB
30.036 KB + 29.276 KB
29.872 KB + 29.280 KB
29.872 KB + 29.276 KB

Apache config 1
ServerRoot "C:/Programmi/Apache Group/Apache2"
PidFile logs/httpd.pid
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_winnt.c>
ThreadsPerChild 250
MaxRequestsPerChild  0
Listen 80

LoadModule alias_module modules/mod_alias.so
LoadModule perl_module modules/mod_perl.so
LoadFile "C:/Perl/bin/perl58.dll"

ServerAdmin mromani at ottotecnica.com
ServerName localhost:80
UseCanonicalName Off
DocumentRoot "C:/Programmi/Apache Group/Apache2/htdocs"
HostnameLookups Off
ErrorLog logs/error.log
LogLevel warn
ServerTokens Full
ServerSignature On
Alias "/perl" "C:/Documents and Settings/marcello/Documenti/Sviluppo/Perl"
     use lib 'C:/Documents and 
PerlModule ProvaAuth
<Location "/perl/ProvaAuth">
     SetHandler mod_perl
     PerlResponseHandler ProvaAuth

Apache config 2
as config 1, but ThreadsPerChild 1


Marcello Romani
Responsabile IT
Ottotecnica s.r.l.

More information about the Catalyst mailing list