IMAP hibernate and scalability in general

Timo Sirainen tss at iki.fi
Thu Apr 6 22:13:07 EEST 2017


On 6 Apr 2017, at 21.14, Mark Moseley <moseleymark at gmail.com> wrote:
> 
>> 
>> imap-hibernate processes are similar to imap-login processes in that they
>> should be able to handle thousands or even tens of thousands of connections
>> per process.
>> 
> 
> TL;DR: In a director/proxy setup, what's a good client_limit for
> imap-login/pop3-login?

You should have the same number of imap-login processes as the number of CPU cores, so they can use all the available CPU without doing unnecessary context switches. The client_limit is then large enough to handle all the concurrent connections you need, but not so large that it would bring down the whole system if it actually happens.

> Would the same apply for imap-login when it's being used in proxy mode? I'm
> moving us to a director setup (cf. my other email about director rings
> getting wedged from a couple days ago) and, again, for the sake of starting
> conservatively, I've got imap-login set to a client limit of 20, since I
> figure that proxying is a lot more work than just doing IMAP logins. I'm
> doing auth to mysql at both stages (at the proxy level and at the backend
> level).

Proxying isn't doing any disk IO or any other blocking operations. There's no benefit to having more processes. The only theoretical advantage would be if some client could trigger a lot of CPU work and cause delays to handling other clients, but I don't think that's possible (unless somehow via OpenSSL but I'd guess that would be a bug in it then).

> Should I be able to handle a much higher client_limit for imap-login and
> pop3-login than 20?

Yeah.



More information about the dovecot mailing list