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
