On Tue, 2010-07-20 at 09:57 -0700, Brandon Davidson wrote:
Timo,
Just out of curiosity, how are incoming connections routed to login processes when run with: service imap-login { service_count = 0 }
I've been playing with this on our test director, and the process connection counts look somewhat unbalanced. I'm wondering if there are any performance issues with having a single process handle so many connections. It seems fine (system load is actually lower than with service_count = 1), but I thought I'd ask.
Dovecot lets kernel assign it. Whichever process grabs it first, handles it.
/usr/sbin/dovecot \_ dovecot/imap-login \_ dovecot/imap-login [1 connections (1 TLS)] \_ dovecot/imap-login \_ dovecot/imap-login [5 connections (5 TLS)] \_ dovecot/imap-login [1 connections (1 TLS)] \_ dovecot/imap-login [4 connections (4 TLS)] \_ dovecot/imap-login [1 connections (1 TLS)] \_ dovecot/imap-login [1 connections (1 TLS)] \_ dovecot/imap-login [315 connections (315 TLS)] \_ dovecot/imap-login [63 connections (63 TLS)] \_ dovecot/imap-login [12 connections (12 TLS)] \_ dovecot/imap-login \_ dovecot/imap-login [10 connections (10 TLS)] \_ dovecot/imap-login [2 connections (2 TLS)] \_ dovecot/imap-login [370 connections (370 TLS)] \_ dovecot/imap-login [24 connections (24 TLS)]
You probably have too many login processes. process_min_avail should be set to about the same as the number of CPU cores. Since there are two processes handling most of the connections, do you also happen to have 2 cores? :)