----- Original Message -----
Sent: Sunday, January 04, 2004 11:36
PM
Subject: [mp1] modules not shared across
children. preloading or fork() issue?
For referance the problem i am seeing, is that
even though i have configured a load of modules to be preloaded, they are not
being preloaded, or at least not being shared.
This happened after moving to a new server
running the same redhat 9 but with different kernels and glibc's. I'm betting
thats where the problem is. In the old server everything was shared for a good
while.
Has anyone had similar problems with RedHat
9?
It appears to be one of two things;
1. mod_perl is not loading modules before the
fork()'s.
2. fork() is not correctly identifing pages which can be
shared.
How ever, all the code does appear to be loaded
into the parent apache process its just seperated during the
fork.
mod_perl / apache configured with
perl Makefile.PL APACHE_SRC=../apache_1.3.29/src
USE_APACI=1 PERL_INIT=1 PERL_STACKED_HANDLERS=1 ALL_HOOKS=1 DO_HTTPD=1
APACI_ARGS='--prefix=/usr --activate-module=src/modules/gzip/mod_gzip.a
--enable-module=env --activate-module=src/modules/php4/libphp4.a
--activate-module=src/modules/perl/libperl.a --enable-module=log_config
--disable-module=log_agent --disable-module=log_referer --enable-module=mime
--enable-module=negotiation --enable-module=include --disable-module=autoindex
--enable-module=dir --enable-module=cgi --enable-module=alias
--enable-module=rewrite --enable-module=headers --enable-module=access
--enable-module=auth --enable-module=expires --enable-module=setenvif
--disable-module=userdir --disable-module=status --disable-module=info
--disable-module=asis --enable-suexec --suexec-docroot=/var/www
--suexec-caller=apache'
Useful stuff...
------- httpd.conf #####################
PerlModule Apache::Registry Apache::RegistryLoader DBD::mysql
BSD::Resource DBI
PerlModule Storable Text::Kakasi Encode::Encoding
Apache::DBI Carp
PerlModule IPC::Shareable Jcode IPC::SysV Encode
Encode::Alias Lingua::JA::Romaji
PerlRequire "/var/www/startup.pl"
<Files anime.manga>
SetHandler
perl-script
PerlHandler
Apache::Registry
Options
ExecCGI
PerlSendHeader
On
</Files>
------- /var/www/startup.pl #####################
BEGIN {
use lib qw(/var/www/);
use strict;
#use
Apache::Registry;
use lib::ModHTML ();
use IPC::Shareable ();
use drivers::index
();
.......
use
drivers::anistuff ();
use Apache::DBI;
# use DBI;
use Apache::RegistryLoader;
Apache::RegistryLoader->new->handler("/anime.manga","/var/www/html/anime.manga");
Apache::DBI->connect_on_init("DBI:mysql:database=xxxxx",
"xxxxx","xxxxxx",
{
PrintError => 1,
# warn() on errors
RaiseError => 0, # don't die on
error
AutoCommit => 1, # commit executes
immediately
}
);
}
1;
}
------- TOP #####################
(apache was just started)
PID USER
PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU
COMMAND
25270 apache 15 0 12772
12M 3152 S 0.0 2.5
0:00 0 httpd
25255 apache 23 0
12640 12M 3120 S 0.0 2.4
0:00 0 httpd
25284 apache 15 0
12620 12M 3144 S 1.1 2.4
0:00 0 httpd
25254 root
15 0 11196 10M 2804 S
1.0 2.2 0:05 0 httpd (parent)
------- pmap - parent#####################
(other junk same as below)
mapped: 15720 KB
writable/private: 8904 KB shared: 72 KB
------- pmap - child #####################
httpd(25270)
08048000 (1600 KB) r-xp (03:03
131451) /usr/sbin/httpd
081d8000 (88
KB) rw-p (03:03 131451)
/usr/sbin/httpd
081ee000 (9384 KB) rwxp (00:00
0)
40000000 (84 KB) r-xp (03:01
539705) /lib/ld-2.3.2.so
40015000 (4
KB) rw-p (03:01 539705)
/lib/ld-2.3.2.so
40016000 (4 KB)
rw-p (00:00 0)
40017000 (12 KB) r-xp
(03:03 929343)
/usr/lib/perl5/site_perl/5.8.2/i686-linux/auto/BSD/Resource/Resource.so
4001a000
(4 KB) rw-p (03:03
929343)
/usr/lib/perl5/site_perl/5.8.2/i686-linux/auto/BSD/Resource/Resource.so
4001b000
(12 KB) r-xp (03:03 439898)
/usr/lib/perl5/5.8.2/i686-linux/auto/Fcntl/Fcntl.so
4001e000 (4
KB) rw-p (03:03 439898)
/usr/lib/perl5/5.8.2/i686-linux/auto/Fcntl/Fcntl.so
4001f000 (8
KB) r-xp (03:03 848151)
/usr/lib/perl5/site_perl/5.8.2/i686-linux/auto/Text/Kakasi/Kakasi.so
40021000
(4 KB) rw-p (03:03
848151)
/usr/lib/perl5/site_perl/5.8.2/i686-linux/auto/Text/Kakasi/Kakasi.so
40022000
(4 KB) rw-p (00:00 0)
40023000
(20 KB) r-xp (03:01 539626)
/lib/libcrypt-2.3.2.so
40028000 (4
KB) rw-p (03:01 539626)
/lib/libcrypt-2.3.2.so
40029000 (156 KB) rw-p
(00:00 0)
40050000 (60 KB) r-xp (03:01
539648) /lib/libresolv-2.3.2.so
4005f000 (4
KB) rw-p (03:01 539648)
/lib/libresolv-2.3.2.so
40060000 (8
KB) rw-p (00:00 0)
40062000 (132
KB) r-xp (03:01 637731)
/lib/tls/libm-2.3.2.so
40083000 (4
KB) rw-p (03:01 637731)
/lib/tls/libm-2.3.2.so
40084000 (12 KB)
r-xp (03:01 539628) /lib/libdl-2.3.2.so
40087000 (4
KB) rw-p (03:01 539628)
/lib/libdl-2.3.2.so
40088000 (72 KB)
r-xp (03:01 539632) /lib/libnsl-2.3.2.so
4009a000 (4
KB) rw-p (03:01 539632)
/lib/libnsl-2.3.2.so
4009b000 (8
KB) rw-p (00:00 0)
4009d000 (24
KB) r-xp (03:03 65209)
/usr/lib/libgdbm.so.2.0.0
400a3000 (4
KB) rw-p (03:03
65209) /usr/lib/libgdbm.so.2.0.0
400a4000 (4
KB) rw-p (00:00 0)
400a5000 (932
KB) r-xp (03:03 945623)
/usr/lib/perl5/5.8.2/i686-linux/CORE/libperl.so
4018e000 (40
KB) rw-p (03:03 945623)
/usr/lib/perl5/5.8.2/i686-linux/CORE/libperl.so
40198000 (12
KB) rw-p (00:00 0)
4019b000 (8
KB) r-xp (03:01 539654)
/lib/libutil-2.3.2.so
4019d000 (4
KB) rw-p (03:01 539654)
/lib/libutil-2.3.2.so
4019e000 (4
KB) rw-p (00:00 0)
4019f000 (2048
KB) r--p (03:03 196819)
/usr/lib/locale/locale-archive
4039f000 (88
KB) r-xp (03:03 115375)
/usr/lib/perl5/site_perl/5.8.2/i686-linux/auto/DBI/DBI.so
403b5000 (4
KB) rw-p (03:03 115375)
/usr/lib/perl5/site_perl/5.8.2/i686-linux/auto/DBI/DBI.so
403b6000 (60
KB) r-xp (03:03 929331)
/usr/lib/perl5/site_perl/5.8.2/i686-linux/auto/DBD/mysql/mysql.so
403c5000
(8 KB) rw-p (03:03
929331)
/usr/lib/perl5/site_perl/5.8.2/i686-linux/auto/DBD/mysql/mysql.so
403c7000
(116 KB) r-xp (03:03 49195)
/usr/lib/mysql/libmysqlclient.so.12.0.0
403e4000 (16
KB) rw-p (03:03 49195)
/usr/lib/mysql/libmysqlclient.so.12.0.0
403e8000 (48
KB) r-xp (03:03 65251)
/usr/lib/libz.so.1.1.4
403f4000 (8
KB) rw-p (03:03
65251) /usr/lib/libz.so.1.1.4
403f6000 (56
KB) r-xp (03:03 848128)
/usr/lib/perl5/5.8.2/i686-linux/auto/Storable/Storable.so
40404000 (4
KB) rw-p (03:03 848128)
/usr/lib/perl5/5.8.2/i686-linux/auto/Storable/Storable.so
40405000 (32
KB) r-xp (03:03 65367)
/usr/lib/libkakasi.so.2.1.0
4040d000 (32
KB) rw-p (03:03 65367)
/usr/lib/libkakasi.so.2.1.0
40415000 (232 KB)
rw-p (00:00 0)
4044f000 (24 KB) r-xp
(03:03 945619)
/usr/lib/perl5/5.8.2/i686-linux/auto/Encode/Encode.so
40455000 (4
KB) rw-p (03:03 945619)
/usr/lib/perl5/5.8.2/i686-linux/auto/Encode/Encode.so
40456000 (12
KB) r-xp (03:03 782934)
/usr/lib/perl5/5.8.2/i686-linux/auto/IPC/SysV/SysV.so
40459000 (4
KB) rw-p (03:03 782934)
/usr/lib/perl5/5.8.2/i686-linux/auto/IPC/SysV/SysV.so
4045a000 (12
KB) r-xp (03:03 798327)
/usr/lib/perl5/5.8.2/i686-linux/auto/Filter/Util/Call/Call.so
4045d000 (4
KB) rw-p (03:03 798327)
/usr/lib/perl5/5.8.2/i686-linux/auto/Filter/Util/Call/Call.so
4045e000 (24
KB) r--s (03:03 407433)
/usr/lib/gconv/gconv-modules.cache
40464000 (12
KB) r-xp (03:03 521487)
/usr/lib/perl5/5.8.2/i686-linux/auto/Time/HiRes/HiRes.so
40467000 (4
KB) rw-p (03:03 521487)
/usr/lib/perl5/5.8.2/i686-linux/auto/Time/HiRes/HiRes.so
40468000 (48
KB) rw-s (00:04 786432)
/SYSV00000000
40474000 (44 KB) r-xp
(03:01 539638) /lib/libnss_files-2.3.2.so
4047f000 (4
KB) rw-p (03:01 539638)
/lib/libnss_files-2.3.2.so
4048c000 (16
KB) r-xp (03:01 539636)
/lib/libnss_dns-2.3.2.so
40490000 (4
KB) rw-p (03:01 539636)
/lib/libnss_dns-2.3.2.so
42000000 (1216 KB) r-xp
(03:01 637971) /lib/tls/libc-2.3.2.so
42130000 (12
KB) rw-p (03:01 637971)
/lib/tls/libc-2.3.2.so
42133000 (12 KB)
rw-p (00:00 0)
bfff8000 (32 KB) rwxp
(00:00 0)
mapped: 16972 KB writable/private: 10140 KB shared:
72 KB
------- Linked against ###################
libcrypt.so.1 =>
/lib/libcrypt.so.1 (0x40023000)
libresolv.so.2 => /lib/libresolv.so.2
(0x40050000)
libm.so.6 =>
/lib/tls/libm.so.6 (0x40062000)
libdl.so.2 => /lib/libdl.so.2
(0x40084000)
libnsl.so.1 =>
/lib/libnsl.so.1 (0x40088000)
libgdbm.so.2 => /usr/lib/libgdbm.so.2
(0x4009d000)
libperl.so =>
/usr/lib/perl5/5.8.2/i686-linux/CORE/libperl.so
(0x400a5000)
libutil.so.1 =>
/lib/libutil.so.1 (0x4019b000)
libc.so.6 => /lib/tls/libc.so.6
(0x42000000)
/lib/ld-linux.so.2
=> /lib/ld-linux.so.2
(0x40000000)