Re: Why Does restart/gracefull makes httpd grow ?
On Thu, Oct 19, 2000 at 01:55:50PM -0400, Philippe M. Chiasson wrote: > Hi, I recently upgraded our servers to mod_perl 1.24.1 so I decided to > give DSO mod_perl a try. And it now works perfectly, even with our perl > modules implementing core httpd configuration directives (Wich was broken > under DSO until 24.1) > > So, I decided to start playing with restart/graceful too, thinking that DSO might >solve > the problems of cleanly restarting a mod_perl server without loss of service... > > Here is a bit of top while restarting my server a few times : [] I've found that mod_so combined with Perl's dynamic loading causes this memory leakage. I ended up compiling apache without mod_so (i.e. all modules compiled in static, no DSO) and I do not see this memory leakage at all. > And everything apparently behaves fine and keeps on working, but my main question is >where is the 12Mb that adds to > each process on restart comes from ? What is hapenning ? > > I know these issues have been brought before in the case of statically compiled-in >mod_perl, but doesn't restarting the > server freeing libperl.so and re-loading it freshly ? > > Any information would be more than welcome ... > > ## My version info is : > Redhat 6.2 running on a i386 Linux 2.2.17 > > Server version: Apache/1.3.14 (Unix) > Server built: Oct 18 2000 14:00:36 > > perl5 (5.0 patchlevel 5 subversion 3) > > mod_perl 1.24.1 > > /usr/local/apache/bin/httpd -l > Compiled-in modules: > http_core.c > mod_so.c > > > -- > +---+ > | Philippe M. Chiasson <[EMAIL PROTECTED]> | > | SmartWorker http://www.smartworker.org| > | IM : gozerhbe ICQ : gozer/18279998 | > +---+ > /* * Hash table gook.. */ > -- Linux2.4.0-test2 > /usr/src/linux/fs/buffer.c > > perl -e '$$=\${gozer};{$_=unpack(P26,pack(L,$$));/^Just Another Perl >Hacker!\n$/&&print||$$++&&redo}' -- Paul Lindner [EMAIL PROTECTED] Red Hat Inc.
Why Does restart/gracefull makes httpd grow ?
Hi, I recently upgraded our servers to mod_perl 1.24.1 so I decided to give DSO mod_perl a try. And it now works perfectly, even with our perl modules implementing core httpd configuration directives (Wich was broken under DSO until 24.1) So, I decided to start playing with restart/graceful too, thinking that DSO might solve the problems of cleanly restarting a mod_perl server without loss of service... Here is a bit of top while restarting my server a few times : #INITIAL STARTUP PID USER PRI NI SIZE SWAP RSS SHARE STAT LIB %CPU %MEM TIME COMMAND 17940 nobody10 0 275920 26M 27376 S 0 0.0 2.6 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 17941 nobody10 0 275920 26M 27376 S 0 0.0 2.6 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 17942 nobody10 0 275920 26M 27376 S 0 0.0 2.6 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 17943 nobody10 0 275920 26M 27376 S 0 0.0 2.6 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 17944 nobody10 0 275920 26M 27380 S 0 0.0 2.6 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 17939 root 10 0 275160 26M 27312 S 0 0.0 2.6 0:01 /usr/local/apache/bin/httpd -Dhttpd_perl #RESTART #1 17971 nobody 5 0 401160 39M 39888 S 0 0.0 3.8 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 17972 nobody 7 0 401160 39M 39888 S 0 0.0 3.8 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 17973 nobody 9 0 401160 39M 39888 S 0 0.0 3.8 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 17974 nobody10 0 401160 39M 39888 S 0 0.0 3.8 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 17975 nobody10 0 401160 39M 39888 S 0 0.0 3.8 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 17961 root 10 0 400400 39M 39816 S 0 0.0 3.8 0:03 /usr/local/apache/bin/httpd -Dhttpd_perl #RESTART #2 17980 nobody 6 0 526400 51M 52404 S 0 0.6 5.0 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 17981 nobody13 0 526400 51M 52404 S 0 0.2 5.0 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 17982 nobody16 0 526400 51M 52404 S 0 0.0 5.0 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 17983 nobody18 0 526400 51M 52404 S 0 0.0 5.0 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 17984 nobody19 0 526400 51M 52404 S 0 0.0 5.0 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 17961 root 19 0 525600 51M 52332 S 0 41.1 5.0 0:05 /usr/local/apache/bin/httpd -Dhttpd_perl [...] #RESTART #5 18007 nobody 8 0 902040 88M 89976 S 0 7.1 8.7 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 18008 nobody 9 0 902040 88M 89976 S 0 0.0 8.7 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 18009 nobody10 0 902040 88M 89976 S 0 2.3 8.7 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 18010 nobody11 0 902040 88M 89976 S 0 4.7 8.7 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 18011 nobody15 0 902040 88M 89976 S 0 0.0 8.7 0:00 /usr/local/apache/bin/httpd -Dhttpd_perl 17961 root 15 0 901280 88M 89908 S 0 57.2 8.6 0:11 /usr/local/apache/bin/httpd -Dhttpd_perl And everything apparently behaves fine and keeps on working, but my main question is where is the 12Mb that adds to each process on restart comes from ? What is hapenning ? I know these issues have been brought before in the case of statically compiled-in mod_perl, but doesn't restarting the server freeing libperl.so and re-loading it freshly ? Any information would be more than welcome ... ## My version info is : Redhat 6.2 running on a i386 Linux 2.2.17 Server version: Apache/1.3.14 (Unix) Server built: Oct 18 2000 14:00:36 perl5 (5.0 patchlevel 5 subversion 3) mod_perl 1.24.1 /usr/local/apache/bin/httpd -l Compiled-in modules: http_core.c mod_so.c -- +---+ | Philippe M. Chiasson <[EMAIL PROTECTED]> | | SmartWorker http://www.smartworker.org| | IM : gozerhbe ICQ : gozer/18279998 | +---+ /* * Hash table gook.. */ -- Linux2.4.0-test2 /usr/src/linux/fs/buffer.c perl -e '$$=\${gozer};{$_=unpack(P26,pack(L,$$));/^Just Another Perl Hacker!\n$/&&print||$$++&&redo}' PGP signature