Separating master processes for different services to utilise multiple cores/cpus

Raymond T. Sundland raymond at sundland.com
Wed Feb 25 18:17:36 EST 2009


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.
>
>
> Atif Ghaffar wrote:
>> Hello,
>>
>> I am a long time cyrus user but have not been hands on for a while.
>> At my current job we are running cyrus to manage all mailstore for 
>> our ISP.
>>
>> Recently I have migrate a couple of boxes to newer ones with more 
>> cores per cpu.
>>
>> when running htop -u cyrus,  i see that only one core is being used 
>> for most of the work and that seems to be a waste of the rest of the 
>> cpus.
>>
>> We are using the following services (imap, pop3, lmtp, sieve)
>>
>> One thought that comes to mind is to run different master processes 
>> which do one service at a time.
>>
>> I am thinking on consolidating into
>>
>> 1. cyrus-master-main (running imap/sieve)
>> 2. cyrus-master-pop3 (running pop3)
>> 3. cyrus-master-lmtp (running lmtp)
>>
>> Does this makes any sense?
>> Would this balance the usage of the CPUs.
>>
>> If yes, I will post the config files for inspection.
>>
>>
>> best regards
>> Atif
>> ------------------------------------------------------------------------
>>
>> ----
>> 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
> ------------------------------------------------------------------------
>
> ----
> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.andrew.cmu.edu/pipermail/info-cyrus/attachments/20090225/24c54c8f/attachment-0001.html 


More information about the Info-cyrus mailing list