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) |
- Re: [mp1] modules not shared across children. preloading or... Daniel Wilson
- Re: [mp1] modules not shared across children. preloadi... Stas Bekman
- Re: [mp1] modules not shared across children. preloadi... Perrin Harkins
- Re: [mp1] modules not shared across children. prel... Daniel Wilson
- Re: [mp1] modules not shared across children. preloadi... Daniel Wilson