Otherwise I see this...
root@x105:[/data/prj/httpd-2.2.22]apachectl -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
root@x105:[/data/prj/httpd-2.2.22]ps -G 202 -mo THREAD
USER PID PPID TID ST CP PRI SC WCHAN F TT BND
COMMAND
daemon 262160 553020 - A 0 60 1 f100060000eb1208
40001 - - /opt/httpd/sbin/httpd -k start
- - - 520219 S 0 60 1 f100060000eb1208
400400 - - -
daemon 389208 553020 - A 0 60 1 f100060000eb1208
40001 - - /opt/httpd/sbin/httpd -k start
- - - 884751 S 0 60 1 f100060000eb1208
400400 - - -
daemon 458856 553020 - A 0 60 1 f100060000eb1208
40001 - - /opt/httpd/sbin/httpd -k start
- - - 954573 S 0 60 1 f100060000eb1208
400400 - - -
daemon 491570 553020 - A 0 60 1 f100060000eb1208
40001 - - /opt/httpd/sbin/httpd -k start
- - - 1163467 S 0 60 1 f100060000eb1208
400400 - - -
daemon 536790 553020 - A 0 60 1 f100060000eb1208
40001 - - /opt/httpd/sbin/httpd -k start
- - - 659649 S 0 60 1 f100060000eb1208
400400 - - -
root@x105:[/data/prj/httpd-2.2.22]apachectl -M
Loaded Modules:
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
authn_file_module (shared)
authn_dbm_module (shared)
authn_anon_module (shared)
authn_dbd_module (shared)
authn_default_module (shared)
authz_host_module (shared)
authz_groupfile_module (shared)
authz_user_module (shared)
authz_dbm_module (shared)
authz_owner_module (shared)
authz_default_module (shared)
auth_basic_module (shared)
auth_digest_module (shared)
dbd_module (shared)
dumpio_module (shared)
reqtimeout_module (shared)
ext_filter_module (shared)
include_module (shared)
filter_module (shared)
substitute_module (shared)
deflate_module (shared)
log_config_module (shared)
log_forensic_module (shared)
logio_module (shared)
env_module (shared)
mime_magic_module (shared)
cern_meta_module (shared)
expires_module (shared)
headers_module (shared)
ident_module (shared)
usertrack_module (shared)
unique_id_module (shared)
setenvif_module (shared)
version_module (shared)
mime_module (shared)
dav_module (shared)
status_module (shared)
autoindex_module (shared)
asis_module (shared)
info_module (shared)
cgi_module (shared)
dav_fs_module (shared)
vhost_alias_module (shared)
negotiation_module (shared)
dir_module (shared)
imagemap_module (shared)
actions_module (shared)
speling_module (shared)
userdir_module (shared)
alias_module (shared)
rewrite_module (shared)
Syntax OK
So, my conclusion is that "mpm=worker" is working as designed, even if the
filenames in modules/* are different compared to other packages.
IMHO, for AIX threaded is supported, and well known, and prefferred. I
would hope faster than forking processes as well.
On Wed, Feb 8, 2012 at 9:40 PM, Michael Felt <[email protected]> wrote:
> I was assuming that "worker.c" was the code that spawned the threads.
> (remember, this is 2.2.22, not 2.4.0, in case that makes any difference)
>
> So, please correct me where I am wrong:
> from "/etc/httpd/extra/httpd-mpm.conf
>
> #
> # Only one of the below sections will be relevant on your
> # installed httpd. Use "apachectl -l" to find out the
> # active mpm.
> #
>
> ... I assumed that this is where "worker.c" was telling me that mpm=worker
> <IfModule mpm_prefork_module>
> ....
> # worker MPM
> # StartServers: initial number of server processes to start
> # MaxClients: maximum number of simultaneous client connections
> # MinSpareThreads: minimum number of worker threads which are kept spare
> ...
> <IfModule mpm_worker_module>
> StartServers 2
> MaxClients 150
> MinSpareThreads 25
> ...
> <IfModule mpm_beos_module>
>
> etc..
>
> Note - these are the ONLY compiled in modules:
>
> root@x105:[/]apachectl -l
> Compiled in modules:
> core.c
> worker.c
> http_core.c
> mod_so.c
> ---
> OR
> root@x105:[/]apachectl -M
> Loaded Modules:
> core_module (static)
> mpm_worker_module (static)
> http_module (static)
> so_module (static)
> authn_file_module (shared)
> authn_dbm_module (shared)
> authn_anon_module (shared)
> authn_dbd_module (shared)
> authn_default_module (shared)
> authz_host_module (shared)
> authz_groupfile_module (shared)
> authz_user_module (shared)
> authz_dbm_module (shared)
> authz_owner_module (shared)
> authz_default_module (shared)
> auth_basic_module (shared)
> auth_digest_module (shared)
> dbd_module (shared)
> dumpio_module (shared)
> reqtimeout_module (shared)
> ext_filter_module (shared)
> include_module (shared)
> filter_module (shared)
> substitute_module (shared)
> deflate_module (shared)
> log_config_module (shared)
> log_forensic_module (shared)
> logio_module (shared)
> env_module (shared)
> mime_magic_module (shared)
> cern_meta_module (shared)
> expires_module (shared)
> headers_module (shared)
> ident_module (shared)
> usertrack_module (shared)
> unique_id_module (shared)
> setenvif_module (shared)
> version_module (shared)
> mime_module (shared)
> dav_module (shared)
> status_module (shared)
> autoindex_module (shared)
> asis_module (shared)
> info_module (shared)
> cgid_module (shared)
> dav_fs_module (shared)
> vhost_alias_module (shared)
> negotiation_module (shared)
> dir_module (shared)
> imagemap_module (shared)
> actions_module (shared)
> speling_module (shared)
> userdir_module (shared)
> alias_module (shared)
> rewrite_module (shared)
> Syntax OK
>
> which is the result of:
> ./configure --enable-layout=AIX --with-mpm=worker --enable-mods-shared=all
>
> It is what I "expected", so where am I going wrong?
>
>
> On Wed, Feb 8, 2012 at 9:27 PM, Jeff Trawick <[email protected]> wrote:
>
>> On Wed, Feb 8, 2012 at 3:02 PM, Michael Felt <[email protected]> wrote:
>> > Well, ..., removed external apr, just to be sure it was "the same as
>> before"
>> >
>> > For simplicity, I am thinking of MPM as multi-threaded versus
>> > single-threaded. If that is correct, on AIX I am seeing multi-threaded
>> > "pre-fork" behavior.
>>
>> Basically: The prefork MPM has single-threaded child processes; the
>> worker MPM has multi-threaded child processes.
>>
>> > ===
>> > root@x105:[/]apachectl -l
>> > Compiled in modules:
>> > core.c
>> > worker.c
>>
>> With "--enable-mpms-shared=all" you should not see prefork.c or
>> worker.c (or any MPM) in this list. Something is going wrong at
>> configure time.
>>
>>
>> > http_core.c
>> > mod_so.c
>> > ===
>> > root@x105:[/]ps -G 202 -mo THREAD
>> > USER PID PPID TID ST CP PRI SC WCHAN F TT
>> BND
>> > COMMAND
>> > daemon 299078 458806 - A 0 60 28 * 40001
>> - -
>> > /opt/httpd/sbin/httpd -k start
>> > - - - 524427 S 0 60 1 f100070f10008040 8410400
>> > - - -
>> > - - - 647261 S 0 60 1 f100070f10009e40 8410400
>> > - - -
>> > - - - 667799 S 0 60 1 f100070f1000a340 8410400
>> > - - -
>> > - - - 671983 S 0 60 1 f100070f1000a440 8410400
>> > - - -
>> > - - - 680117 S 0 60 1 f100070f1000a640 8410400
>> > - - -
>> > - - - 684109 S 0 60 1 f100070f1000a740 8410400
>> > - - -
>> > - - - 749707 S 0 60 1 f100070f1000b740 8410400
>> > - - -
>> > - - - 888971 S 0 60 1 f100070f1000d940 8410400
>> > - - -
>> > - - - 905243 Z 0 60 1 - c00001
>> - - -
>> > - - - 970855 S 0 60 1 f100010012c4ffb8 410400
>> > - - -
>> > - - - 999669 S 0 60 1 f100070f1000f440 8410400
>> > - - -
>> > - - - 1003655 S 0 60 1 f100070f1000f540 8410400
>> > - - -
>> > - - - 1044605 S 0 60 1 f100070f1000ff40 8410400
>> > - - -
>> > - - - 1069255 S 0 60 1 f100070f10010540 8410400
>> > - - -
>> > - - - 1101951 S 0 60 1 f100070f10010d40 8410400
>> > - - -
>> > - - - 1204243 S 0 60 1 f100070f10012640 8410400
>> > - - -
>> > - - - 1233133 S 0 60 1 f100070f10012d40 8410400
>> > - - -
>> > - - - 1245225 S 0 60 1 f100070f10013040 8410400
>> > - - -
>> > - - - 1249349 S 0 60 1 f100070f10013140 8410400
>> > - - -
>> > - - - 1261619 S 0 60 1 f100070f10013440 8410400
>> > - - -
>> > - - - 1278023 S 0 60 1 f100070f10013840 8410400
>> > - - -
>> > - - - 1294395 S 0 60 1 f100070f10013c40 8410400
>> > - - -
>> > - - - 1319117 S 0 60 1 f100070f10014240 8410400
>> > - - -
>> > - - - 1323147 S 0 60 1 f100070f10014340 8410400
>> > - - -
>> > - - - 1331321 S 0 60 1 f100070f10014540 8410400
>> > - - -
>> > - - - 1355913 S 0 60 1 f100060000ebca08 400400
>> > - - -
>> > - - - 1368225 S 0 60 1 f100070f10014e40 8410400
>> > - - -
>> > - - - 1409275 S 0 60 1 f100070f10015840 8410400
>> > - - -
>> > daemon 491756 458806 - A 0 60 1 f100060000e91208 40401
>> > - - /opt/httpd/sbin/httpd -k start
>> > - - - 839725 S 0 60 1 f100060000e91208 400400
>> > - - -
>> > daemon 565316 458806 - A 0 60 28 * 40001
>> - -
>> > /opt/httpd/sbin/httpd -k start
>> > - - - 504043 S 0 60 1 f100070f10007b40 8410400
>> > - - -
>> > - - - 512187 S 0 60 1 f100070f10007d40 8410400
>> > - - -
>> > - - - 659535 Z 0 60 1 - c00001
>> - - -
>> > - - - 729261 S 0 60 1 f100070f1000b240 8410400
>> > - - -
>> > - - - 733431 S 0 60 1 f100070f1000b340 8410400
>> > - - -
>> > - - - 753851 S 0 60 1 f100070f1000b840 8410400
>> > - - -
>> > - - - 925923 S 0 60 1 f100070f1000e240 8410400
>> > - - -
>> > - - - 929947 S 0 60 1 f100070f1000e340 8410400
>> > - - -
>> > - - - 938061 S 0 60 1 f100070f1000e540 8410400
>> > - - -
>> > - - - 975039 S 0 60 1 f100070f1000ee40 8410400
>> > - - -
>> > - - - 1007673 S 0 60 1 f100060000ebca08 400400
>> > - - -
>> > - - - 1040579 S 0 60 1 f100070f1000fe40 8410400
>> > - - -
>> > - - - 1073265 S 0 60 1 f100070f10010640 8410400
>> > - - -
>> > - - - 1126419 S 0 60 1 f100070f10011340 8410400
>> > - - -
>> > - - - 1171705 S 0 60 1 f100070f10011e40 8410400
>> > - - -
>> > - - - 1183967 S 0 60 1 f100070f10012140 8410400
>> > - - -
>> > - - - 1192149 S 0 60 1 f100070f10012340 8410400
>> > - - -
>> > - - - 1228911 S 0 60 1 f100070f10012c40 8410400
>> > - - -
>> > - - - 1237123 S 0 60 1 f100070f10012e40 8410400
>> > - - -
>> > - - - 1257713 S 0 60 1 f100010012c4ffb8 410400
>> > - - -
>> > - - - 1310959 S 0 60 1 f100070f10014040 8410400
>> > - - -
>> > - - - 1339473 S 0 60 1 f100070f10014740 8410400
>> > - - -
>> > - - - 1343615 S 0 60 1 f100070f10014840 8410400
>> > - - -
>> > - - - 1347699 S 0 60 1 f100070f10014940 8410400
>> > - - -
>> > - - - 1364159 S 0 60 1 f100070f10014d40 8410400
>> > - - -
>> > - - - 1372165 S 0 60 1 f100070f10014f40 8410400
>> > - - -
>> > - - - 1376461 S 0 60 1 f100070f10015040 8410400
>> > - - -
>> > - - - 1396845 S 0 60 1 f100070f10015540 8410400
>> > - - -
>> > root@x105:[/]
>> > ====
>> > In the listing above, the PID numbers are the even numbers (processes)
>> while
>> > the column TID (thread ID) are all odd. Threads are indented and
>> "under" the
>> > process.
>> >
>> > Only "changes" were creation of a group daemon (id = 202, hence ps -G
>> 202),
>> > and activating the extra/httpd-mpm.conf file via /etc/httpd/httpd.conf.
>> >
>> > So, even though I do not see any files named *mpm*.so I would think that
>> > this shows that AIX it is "worker" and not pre-fork.
>> >
>> >
>> > On Wed, Feb 8, 2012 at 5:57 PM, Jeff Trawick <[email protected]> wrote:
>> >>
>> >> On Wed, Feb 8, 2012 at 11:47 AM, Michael Felt <[email protected]>
>> wrote:
>> >> > Well, just slightly confused.
>> >> > On my system I have "tested" in as much as I can https://hostnameand it
>> >> > says "It works!".
>> >> > What I need some assistence with perhaps is determeing which "mpm"
>> >> > binary
>> >> > was built, as I am only building one with 2.2.22 at the moment.
>> >>
>> >> Look in your modules directory for *mpm*.so to see what was
>> >> built+installed.
>> >>
>> >> Look in your httpd.conf to see which of those available MPMs is loaded
>> >> via LoadModule.
>> >>
>> >> (I think you'll find that prefork and worker are built for AIX, and
>> >> worker is the one loaded by default.)
>> >>
>> >> >
>> >> > re: Having only one script - I am not surprised there must be more
>> than
>> >> > one,
>> >> > but I hoped :)
>> >> > There are actually two scripts - one that does the
>> configure/make/make
>> >> > install, and one that creates the
>> >> > template needed to make the package.
>> >> >
>> >> > FYI: I am working on getting a build for a svn client as well. AND -
>> I
>> >> > am
>> >> > doing these things because I am very tired of having to download 10
>> to
>> >> > 20
>> >> > .rpm packages, each with moving dependancies it seems, in order to
>> >> > install
>> >> > something that is supposed readily available. In short, I am trying
>> to
>> >> > make
>> >> > some packages that just 'install' with saying - you need this too,
>> and
>> >> > then
>> >> > when you install that - it says and I need this first, etc etc.
>> >> >
>> >> > In a word, boring.
>> >> >
>> >> > FYI: current tools (IBM and others) use /opt/freeware as their main
>> >> > installation area - so I am opting for /opt/* (no freeware in the
>> name)
>> >> > for
>> >> > packages like coreutils, libz, pcre, apr, apr-util, etc. and
>> >> > applications
>> >> > (packaging) such as httpd and svn in /opt/httpd, /opt/svn. With your
>> >> > wealth
>> >> > of prior experience - if you see a trap I am setting for myself,
>> please
>> >> > warn
>> >> > me - and better - lead me to safety.
>> >> >
>> >> > regards, Michael
>> >> >
>> >> >
>> >> > On Wed, Feb 8, 2012 at 3:40 PM, Jeff Trawick <[email protected]>
>> wrote:
>> >> >>
>> >> >> On Wed, Feb 8, 2012 at 9:08 AM, Michael Felt <[email protected]>
>> wrote:
>> >> >> > Well, it was building "something". I'll try the proposed change
>> and
>> >> >> > make
>> >> >> > sure it is still giving me "all" the mods.
>> >> >>
>> >> >> yeah, that was the idea... thanks!
>> >> >>
>> >> >> > FYI - I have added --enable-ssl (so that the same script works for
>> >> >> > both
>> >> >> > 2.2.22 and 2.4.0 which have different ideas of "all".
>> >> >>
>> >> >> As Graham mentioned, expect to have different scripts for different
>> >> >> releases and do the right thing for each release. It isn't a good
>> >> >> thing if people who play with configure more often but might not
>> know
>> >> >> the ancient history stare at the script and wonder about the odd
>> >> >> choice of arguments. (I happen to remember about the
>> AIX/--enable-so
>> >> >> issue from long ago, but that needs to die.)
>> >> >>
>> >> >> > And I hope configure will still leave AIX modules as shared (as it
>> >> >> > used
>> >> >> > to
>> >> >> > make them all static by default - long ago).
>> >> >>
>> >> >> If it doesn't build them shared using the appropriate configure
>> args,
>> >> >> that's what needs to be fixed. (Most people won't use this script.)
>> >> >>
>> >> >> >
>> >> >> > I shall try both 2.4.0 and 2.2.22 (without --enable-ssl) - and I
>> am
>> >> >> > continuing to work towards to havin g APR external to httpd.
>> >> >> >
>> >> >> >
>> >> >> > On Tue, Feb 7, 2012 at 8:09 PM, Jeff Trawick <[email protected]>
>> >> >> > wrote:
>> >> >> >>
>> >> >> >> The buildaix.ksh script committed recently had some outdated
>> options
>> >> >> >> or requirements, and didn't build loadable MPMs. Suggested
>> changes
>> >> >> >> are below. Do or do not fold, spindle, or mutilate; commit with
>> or
>> >> >> >> without testing; etc.
>> >> >> >>
>> >> >> >> Index: build/aix/buildaix.ksh
>> >> >> >>
>> ===================================================================
>> >> >> >> --- build/aix/buildaix.ksh (revision 1241549)
>> >> >> >> +++ build/aix/buildaix.ksh (working copy)
>> >> >> >> @@ -30,11 +30,7 @@
>> >> >> >> > nohup.out
>> >> >> >> ./configure \
>> >> >> >> --enable-layout=$LAYOUT \
>> >> >> >> - --enable-module=so \
>> >> >> >> - --enable-proxy \
>> >> >> >> - --enable-cache \
>> >> >> >> - --enable-disk-cache \
>> >> >> >> - --with-mpm=worker \
>> >> >> >> + --enable-mpms-shared=all \
>> >> >> >> --enable-mods-shared=all | tee nohup.out
>> >> >> >>
>> >> >> >> make | tee -a nohup.out
>> >> >> >>
>> >> >> >> --
>> >> >> >> Born in Roswell... married an alien...
>> >> >> >
>> >> >> >
>> >> >>
>> >> >>
>> >> >>
>> >> >> --
>> >> >> Born in Roswell... married an alien...
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> Born in Roswell... married an alien...
>> >
>> >
>>
>>
>>
>> --
>> Born in Roswell... married an alien...
>>
>
>