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?
Yes.
Hope this helps!
Andy --- Cyrus Home Page: http://asg.web.cmu.edu/cyrus Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html