mod_perl: sharing data across httpd childs ?

H

howa

I am refering to the tutorial (http://modperlbook.org/html/4-2-3-
PerlModule-and-PerlRequire.html),
about setting up Perl module memory sharing across http childs:


==================================

1. in httpd.conf

Added PerlRequire /home/www/cgi-bin/startup.pl

the its contents is:

use strict;

use lib "/home/www/cgi-bin/";

use TestPM ();

1;

==================================

2. The TestPM's content

use strict;

package TestPM;

my $data;

sub new {

my ($class) = @_;

my $self = {};

bless $self, $class;

return $self;
}

sub init {
$data = "1234567890" x 1000000; # 10M of data
}


==================================

3. test.cgi


#!/usr/bin/perl

print "Content-type:text/html\n\n";

use strict;

use TestPM;

TestPM::init();

==================================


By stress testing the test.cgi, I found memory is not shared at all,
using the top command, e.g.

11290 web 25 0 100m 23m 1620 R 47 0.3 0:00.29 /usr/
local/apache_1.3.41/bin/httpd
11247 web 20 0 101m 23m 1628 R 41 0.3 0:05.15 /usr/
local/apache_1.3.41/bin/httpd


As you can see, each httpd is using 23m, and 1620bytes shared, which I
belive the much data is shared....


Any idea?

Thanks.
 
J

Joost Diepenmaat

howa said:
By stress testing the test.cgi, I found memory is not shared at all,
using the top command, e.g.

The only data that might be shared is data that is already initialized at
the startup phase. Data that's copied / assigned during at later stages
will not be shared. The manual and the book both mention this.
 
H

howa

Hello,

The only data that might be shared is data that is already initialized at
the startup phase. Data that's copied / assigned during at later stages
will not be shared. The manual and the book both mention this.


Thanks for reply.

Even I put the line:

inside the startup.pl, still the same
 
X

xhoster

howa said:
By stress testing the test.cgi, I found memory is not shared at all,
using the top command, e.g.


11290 web 25 0 100m 23m 1620 R 47 0.3 0:00.29 /usr/
local/apache_1.3.41/bin/httpd
11247 web 20 0 101m 23m 1628 R 41 0.3 0:05.15 /usr/
local/apache_1.3.41/bin/httpd

As you can see, each httpd is using 23m, and 1620bytes shared, which I
belive the much data is shared....

Any idea?

In addition to what the other post said, it should be pointed out that
the SHR column of the "top" command does not reflect all modes of memory
sharing. For example, Copy-On-Write sharing does not seem to accounted
for as shared. I think it reflects only shared libraries (*.so files) and
not any kind of data sharing. It would be nice if the "man top" did a
better job of explaining this. You need a better way of diagnosing how
much memory is actually being used.

Xho

--
-------------------- http://NewsReader.Com/ --------------------
The costs of publication of this article were defrayed in part by the
payment of page charges. This article must therefore be hereby marked
advertisement in accordance with 18 U.S.C. Section 1734 solely to indicate
this fact.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,743
Messages
2,569,478
Members
44,899
Latest member
RodneyMcAu

Latest Threads

Top