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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
----
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

[Index of Archives]     [Cyrus SASL]     [Squirrel Mail]     [Asterisk PBX]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [KDE]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux