Cyrus launches about 13 or 14 imapd processes, each taking about 4-5mb.
Which configuration file stores the values for min/max imapd processes? There is no documentation this, at least none that I could easily find.
The answer is in configuring the cyrus.conf file via /etc/cyrus.conf.
See the following section:
# UNIX sockets start with a slash and are put into /var/lib/imap/sockets
SERVICES {
# add or remove based on preferences
imap cmd="imapd" listen="imap" prefork=0
imaps cmd="imapd -s" listen="imaps" prefork=0
pop3 cmd="pop3d" listen="pop3" prefork=2
pop3s cmd="pop3d -s" listen="pop3s" prefork=0
sieve cmd="timsieved" listen="sieve" prefork=0
Modify the prefork values. I don't use any imap so I'm not going to prefork 0 instances, same goes for pop3 (over ssl).