Performance issues with Cyrus v2.1.12 on Solaris 5.8

Michael Rourke m.rourke at
Mon May 5 02:35:02 EDT 2003

  I have been running IMAP and POP load tests on an old version of Cyrus 
(v1.6.24) and comparing it to Cyrus v2.1.12.  The test server is a 4 CPU 
Sun SPARC Ultra-4 running Solaris 5.8. The test scripts approximate the 
behavior of Netscape mail reading the contents of mailboxes using IMAP 
or POP. (The scripts choose random mailboxes to read from a possible 
9999. There is no contention for the same mailbox. There are six script 
threads running continuously. Each test mailbox contains 2 or 3 messages.)

The  number of IMAP test sessions per second achievable under a load of 
six simulated clients has fallen from 3.7 (v1.6.24) to 2.5 
sessions/second(v2.1.12).  Similarly, POP test sessions per second has 
fallen from 7.1 to 6.2 sessions/second.  The CPU load on the test server 
is not significantly different between old and new Cyrus versions.

These figures were surprising, so I have tried to determine the source 
of the slowness - especially of IMAP. Connection and authentication 
happens faster with V2 (using SASL/PAM/pam_pwdfile) (average elapsed 
time seen by the simulated client is down to 0.2s from 0.38s). What is 
significantly slower is the command SELECT "INBOX". The average elapsed 
time of this command has risen from an average of 0.26s to 1.16s. I 
added elapsed time collection to cmd_select in imapd.c and found 
mailbox_open_header() is taking about 0.56s on average and 
index_newmailbox() is taking 0.33s.

Can anyone suggest why these two functions are so slow, especially when 
the V1 equivalents were measurably faster?

Michael Rourke
Network Services Developer
University of New South Wales

More information about the Info-cyrus mailing list