Questions on Cyrus IMAP

Andrew Morgan morgan at
Mon Mar 28 20:06:11 EST 2005

On Mon, 28 Mar 2005, gopalakrishnan kamalanathan wrote:

> Hi,
> I have a few question on the Cyrus IMAP implementation.
> 1) What is the memory footprint of the Cyrus IMAP.

Each imapd process on my Cyrus server uses about 16MB of memory for shared 
libraries plus a variable amount of memory depending on what operation is 
currently being performed.  I am running Cyrus IMAPD 2.1.16 (a little out 
of date) on Debian Linux.

> 2) What is the maximum number of simultaneous connections that the Cyrus IMAP 
> server can handle.

My server is a Dell 2650, dual 2.8GHz Xeon, 2GB of RAM with an external 
RAID 0+1 disk array connected to a Perc4/DC RAID controller.  The load 
average during daytime (busiest time) use hovers around 1.0.  The number 
of imapd processes (connections) peaks out at around 600.  With 2GB of 
RAM, it has yet to use swap and typically has about 1GB of RAM available 
for caching I/O.

This is about as loaded as I'm comfortable with on this box for 
performance reasons.  To handle further growth we plan to switch to Cyrus' 
cluster model and grow horizontally.

> 3) How many threads does the Cyrus imap server create?  Does it have a fixed 
> pool of threads or does it create new threads as and when needed basis?

Cyrus is not threaded.  Each connection is handled by an individual imapd 
process, which can be reused many times (similar to Apache's prefork 
model).  The cyrus.conf file can be tuned to control how many processes to 
prefork (have ready) and how many total processes will be allowed.  The 
spare processes pool is grown and shrunk automatically.  Again, this is 
very similar to Apache's model.

> 4) Is it possible to have multiple connections to the same mailbox?


Hope this helps!

Cyrus Home Page:
Cyrus Wiki/FAQ:
List Archives/Info:

More information about the Info-cyrus mailing list