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.



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