Why Does restart/gracefull makes httpd grow ?

2000-10-19 Thread Philippe M. Chiasson

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


Re: Why Does restart/gracefull makes httpd grow ?

2000-10-19 Thread Paul Lindner

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.