Hi,
I am using mod_perl 1.99_13, with Apache 2.0.49. When I start the
processes, free shows me that about 17 MB of swap is used. And ps -aux,
shows me that each httpd process eats up to 1.1 %MEM. But after about 30
minutes running, the swap memory usage will increase to up to about 200
MB, and each httpd process eats up to 2.5 %MEM. Sometimes the swap usage
will just go to 100%, and I have to restart httpd to make it returns to
normal. My RAM is 1 GB with 2 GB swap, and almost all of the scripts are
run inside ModPerl::Registry.
Is there any memory leakage? What can I do to check it?
My httpd.conf looks like this:
<IfModule prefork.c>
StartServers 20
MinSpareServers 30
MaxSpareServers 50
MaxClients 50
MaxRequestsPerChild 6000
</IfModule>
And my startup.pl:
use Apache2 ();
use ModPerl::Registry ();
use lib "/var/www/lib";
use Apache::DBI ();
use DBI ();
use HTML::Template;
use File::Find;
print STDERR "Pre-loading HTML Templates...\n";
find(
sub {
return unless /\.tmpl$/;
HTML::Template->new(
filename => "$File::Find::dir/$_",
cache => 1,
);
},
'/var/www/tmpl'
);
[EMAIL PROTECTED] conf]# free
total used free shared buffers cached
Mem: 1035456 1019232 16224 0 7320 43484
-/+ buffers/cache: 968428 67028
Swap: 2048276 270052 1778224
[EMAIL PROTECTED] conf]# vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system ------cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
2 0 322940 7636 8008 45216 51 3 11 49 31 25 18 2 74 5
0 0 322940 7508 8008 45216 0 0 0 0 1527 518 9 2 90 0
0 0 322940 7188 8008 45088 128 0 128 0 2071 1125 25 2 72 1
0 0 322940 6748 8032 45008 316 0 316 352 1964 1145 23 3 70 4
1 0 322940 6676 8040 45228 32 0 32 52 1655 722 10 2 87 1
0 0 322940 6548 8040 45228 0 0 0 0 1853 896 18 2 80 0
0 0 322940 5844 8040 45148 340 0 340 0 1890 861 21 3 76 2
--
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html