[Dovecot] service_count=0 for imap and pop3

Timo Sirainen tss at iki.fi
Tue Nov 16 01:10:31 EET 2010

On 15.11.2010, at 22.58, Mark Moseley wrote:

>> Timo,
>> Any hints on how many POP3 and IMAP connections I'd be able to get
>> away with in a single threads with the above setup, assuming they're
>> relative busy?

The problem is that if there is any waiting for locks, all the other connections hang there as well waiting for it. Same for any type of disk I/O waits. I don't really know how many you could get away with.. My official recommendation would be to keep it 1 connection = 1 process, since that's guaranteed to work.

>> BTW, I realize process_min_avail is just a minimum, but without having
>> service_count=1, what would cause dovecot to fork off more processes
>> than #process_min_avail?

When all the existing processes have reached client_limit, a new process is created.

> emailuser  2625  0.0  0.1   4748  3132 ?        S    17:15   0:00  \_
> dovecot/imap [2 connections]
> emailuser  2632  0.7  2.6  59440 54492 ?        S    17:15   0:14  \_
> dovecot/imap [209 connections]
> Is there a way to spread those out more or is there probably no need
> to?

Whichever process is fastest to grab a new connection gets it.

> I imagine in the case of PID 2632, a large number of those
> connections are just sitting in IDLE and doing nothing beyond
> stat64()'s. Or maybe a better question would be, is there a setting
> I'm not finding that puts an upper limit on connections for a single
> process, so a single process will stop servicing new connections after
> it hits a certain # and lets the other less-loaded processes handle
> the new connection. All the various *_limit settings appear to be
> across all processes, not per-processs like this. This btw is 2.0.7
> (but with the proctitle patch).

service imap {
  client_limit = 5

More information about the dovecot mailing list