Scalability of Dovecot in the Cloud
Patrick Domack
patrickdk at patrickdk.com
Sun Jun 12 03:16:13 UTC 2016
This will depend on many more things also.
4 vcores, of unspecified dedication to your vm is not a good thing.
If you use something like gzip/bz2/lzma for compression of the emails,
will highly affect your cpu usage.
Searching and indexing will affect your cpu usage.
Quoting KT Walrus <kevin at my.walr.us>:
>> Anyway, if it's mostly IDLE connections, I'd expect 100k
>> mailboxes/VM to be fine. Generally I'd expect about 10k active
>> (non-hibernated) IMAP connections/VM for 32 GB of memory, but this
>> depends a lot on the mailbox sizes.
>
> That is great news. 100k mailboxes/VM is a great number. I do expect
> most IMAP clients will be IDLEing. Do almost all email clients in
> use today do the IDLE command? Do most email clients open many
> connections per mailbox? Perhaps IDLEing on multiple
> namespaces/folders per mailbox? Would this affect your 100k
> mailboxes/VM estimate?
>
> The cloud VM at 4 vCores, 30GB RAM, and local SSD storage is just
> $40/month (OVH Public Cloud). I had expected a cost of 10 cents per
> mailbox per month (with redundancies raising that cost to 25 cents
> per mailbox per month). But 100k mailboxes/VM would give me a total
> operating cost of less than 1 cent per month per mailbox, at scale.
> Maybe even 10 cents per year per mailbox for Public Cloud hosting
> fees?
>
> Does anyone on this list run a large number of mailboxes per server
> in production? What is the largest number of Dovecot
> mailboxes/client connections you supported on a single server before
> you had to upgrade to multiple Dovecot servers?
>
> Kevin
>
>> On Jun 11, 2016, at 6:37 PM, Timo Sirainen <tss at iki.fi> wrote:
>>
>> On 04 Jun 2016, at 21:28, KT Walrus <kevin at my.walr.us
>> <mailto:kevin at my.walr.us>> wrote:
>>>
>>> Does anyone have any idea of how many IMAP connections a single
>>> cloud VM (4 vCores at 2.4GHz, 30GB RAM, local SSD storage -
>>> non-RAID) can be expected to handle in production. The mailboxes
>>> are fairly small (average 5MB total - 50MB max, as I don’t store
>>> attachments in Dovecot expect those saved through IMAP in the
>>> Sent/Drafts folders) and each user will probably have an average
>>> of 2 devices that have the mail clients configured to access each
>>> mailbox.
>>>
>>> Can such a server handle 100,000 mailboxes (200,000
>>> devices/clients)? Or is it more like 10,000? Or, even smaller?
>>>
>>> I can scale the cloud VM up to 32 vCores and 240GB RAM (at 8 times
>>> the price) or split the mailboxes onto multiple VMs. The VM will
>>> also be running LMTP and other Dovecot services (I don’t plan on
>>> supporting POP3 at this time). The mailboxes will be sync’d to a
>>> backup VM running Dovecot for high availability so has some load
>>> from this background activity. LMTP will not be that high a load,
>>> I think, since most messages will be delivered by at night. But,
>>> clients will have IMAP connections 24/7.
>>>
>>> Just trying to get an idea of the cost of running a potentially
>>> huge/growing mail service in the cloud… I’m going to have to
>>> support around a million mailboxes before the site will generate
>>> significant revenue to support operations.
>>
>> Do you mean most of the IMAP clients will be IDLEing waiting for
>> new mails, which mostly won't arrive until the next night?
>> imap-hibernate feature will be very helpful there then.
>>
>> Bottlenecks are commonly either the disk IO or the memory usage.
>> With SSD you're probably less likely to run bottleneck in disk IO.
>> Memory usage mainly depends on the number of active
>> (non-hibernated) concurrent connections and also the mailbox sizes
>> of the users.
>>
>> I'd limit a single Dovecot VM to 64 GB of memory. Maybe more would
>> work, but it might run into bottlenecks on the CPU usage side for
>> services that are limited to a single process per instance.
>>
>> Replication with dsync is going to increase the load and I'm not
>> sure how big of an issue that is.
>>
>> Anyway, if it's mostly IDLE connections, I'd expect 100k
>> mailboxes/VM to be fine. Generally I'd expect about 10k active
>> (non-hibernated) IMAP connections/VM for 32 GB of memory, but this
>> depends a lot on the mailbox sizes.
More information about the dovecot
mailing list