Just for demonstration, my system has relative low usage, but you can
see the output of top: PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 83831 cyrus 1 44 0 34068K 824K select 3 16:31 0.00% master 83834 cyrus 1 44 0 55296K 480K select 3 15:44 0.00% idled 28343 cyrus 1 44 0 93048K 5240K select 0 0:03 0.00% imapd 28383 cyrus 1 44 0 82208K 4920K select 1 0:02 0.00% imapd 28382 cyrus 1 44 0 80120K 4812K select 0 0:01 0.00% imapd 28350 cyrus 1 44 0 66420K 4300K select 3 0:01 0.00% imapd 28375 cyrus 1 44 0 66488K 4108K select 0 0:00 0.00% imapd 11942 cyrus 1 4 0 66392K 5060K accept 0 0:00 0.00% pop3d 12157 cyrus 1 44 0 66988K 5688K select 1 0:00 0.00% pop3d 12159 cyrus 1 44 0 66708K 5656K select 3 0:00 0.00% pop3d 12158 cyrus 1 44 0 66580K 5648K select 0 0:00 0.00% pop3d 12238 cyrus 1 4 0 66408K 5452K accept 0 0:00 0.00% lmtpd As you can see, it's using CPUs 0, 1 and 3 at this point. Raymond T. Sundland wrote: When master receives a connection, it spawns a child process to manage that connection. That would essentially make it multi-threaded making use of the multiple CPUs when needed, I would think. Is that not the case? You can launch multiple master processes, but that wouldn't have any better guarantee to use multiple CPUs, either. |
---- Cyrus Home Page: http://cyrusimap.web.cmu.edu/ Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html