Performance issues with Cyrus v2.1.12 on Solaris 5.8
Michael Rourke
m.rourke at unsw.edu.au
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?
regards
Michael Rourke
Network Services Developer
University of New South Wales
More information about the Info-cyrus
mailing list