Experimenting with peruser I have run into some behavior which has
confused me a bit in re the behavior when spawning multiplexers and
processors.

My understanding is a root-owned pool manager spawns MinMultiplexers.
The pool of multiplexers then responds to incoming requests, processors
are spawned on demand and the multiplexers dispatch to them.

Relative to my experience with prefork MinSpareServers, etc. I don't
quite follow the behavior I observe relative to the settings I have.

I am experimenting with a very trivial example, a single virtualhost
serving a single empty file.

In my httpd.conf I have:
<IfModule peruser.c>
 # Multiplexer pool
 MinMultiplexers 10
 MaxMultiplexers 20
 ProcessorWaitTimeout 2 10

 # Fork limits
 ServerLimit 20
 MaxClients 20
 MaxRequestsPerChild 1000

 # Processor defaults
 MinProcessors       2
 MinSpareProcessors  4
 MaxProcessors       10

 # Timeouts
 IdleTimeout 60
 ExpireTimeout 300

 <Processor maxp>
 User maxp
 Group maxp
 </Processor>
</IfModule>

The vhost has the appropriate ServerEnvironment

To examine the spawning behavior I am doing the following:
service httpd restart;
ps -ef | grep httpd.peruser;
wget http://sisyphus/empty.txt -O /dev/null 2>&1 | grep 'HTTP request';
ps -ef | grep httpd.peruser;
echo "waiting for further spawning...";
sleep 30;
ps -ef | grep httpd.peruser;
echo "any more spawn?";
sleep 120;
ps -ef | grep httpd.peruser


The output I see is:
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
root     16052     1  0 17:43 ?        00:00:00 /usr/sbin/httpd.peruser
root     16055  7091  0 17:43 pts/2    00:00:00 grep httpd.peruser
HTTP request sent, awaiting response... 200 OK
root     16052     1  0 17:43 ?        00:00:00 /usr/sbin/httpd.peruser
apache   16058 16052  0 17:43 ?        00:00:00 /usr/sbin/httpd.peruser
maxp     16059 16052  0 17:43 ?        00:00:00 /usr/sbin/httpd.peruser
apache   16060 16052  0 17:43 ?        00:00:00 /usr/sbin/httpd.peruser
root     16062  7091  0 17:43 pts/2    00:00:00 grep httpd.peruser
waiting for further spawning...
root     16052     1  0 17:43 ?        00:00:00 /usr/sbin/httpd.peruser
apache   16058 16052  0 17:43 ?        00:00:00 /usr/sbin/httpd.peruser
maxp     16059 16052  0 17:43 ?        00:00:00 /usr/sbin/httpd.peruser
apache   16060 16052  0 17:43 ?        00:00:00 /usr/sbin/httpd.peruser
maxp     16064 16052  0 17:43 ?        00:00:00 /usr/sbin/httpd.peruser
root     16066  7091  0 17:43 pts/2    00:00:00 grep httpd.peruser
any more spawn?
root     16052     1  0 17:43 ?        00:00:00 /usr/sbin/httpd.peruser
apache   16058 16052  0 17:43 ?        00:00:00 /usr/sbin/httpd.peruser
maxp     16059 16052  0 17:43 ?        00:00:00 /usr/sbin/httpd.peruser
apache   16060 16052  0 17:43 ?        00:00:00 /usr/sbin/httpd.peruser
maxp     16064 16052  0 17:43 ?        00:00:00 /usr/sbin/httpd.peruser
root     16069  7091  0 17:45 pts/2    00:00:00 grep httpd.peruser

My expectation of those settings is doubtless discordant with their
effects, but is the behavior I'm seeing the intended behaviour?

I am testing with peruser built from recent svn (fetched day of build):
# httpd.peruser -v; cat /etc/redhat-release; uname -a
Server version: Apache/2.2.16 (Unix)
Server built:   Jul 30 2010 13:31:43
CentOS release 5.5 (Final)
Linux sisyphus 2.6.18-194.8.1.el5 #1 SMP Thu Jul 1 19:04:48 EDT 2010
x86_64 x86_64 x86_64 GNU/Linux

Thanks for any insight you can provide!
-- 
Max Parmer
Portland State University

_______________________________________________
Peruser mailing list
[email protected]
http://www.telana.com/mailman/listinfo/peruser

Reply via email to