Performance issues with Cyrus v2.1.12 on Solaris 5.8

Rob Siemborski rjs3 at
Tue May 6 00:14:28 EDT 2003

On Tue, 6 May 2003, Michael Rourke wrote:

> Following your advice, I used truss, and examined the duration of the
> system calls occurring during the SELECT "INBOX" command. Averaging over
> the 370 sessions that occurred in two minutes these are the top average
> system call execution times:
> 0.3711 rename
> 0.2194 open
> 0.1281 fdsync
> 0.0424 munmap
> 0.0203 close

I was more hoping for actual truss output, but with times like this that
probably wouldn't have been terribly enlightening.

> The slow renames are typically:
> rename <configdir>/user/t/<user>.seen.NEW <configdir>/user/t/<user>.seen
> rename <partition>/user/<user>/cyrus.header.NEW
> <partition>/user/<user>/cyrus.header
> rename <partition>/user/<user>/cyrus.index.NEW
> <partition>/user/<user>/cyrus.index

I take it your seen DB is still a flat file?  You should seriously
consider converting both it and your mailbox list to skiplist.  This
removes the need to rewrite the entire file for each update.

> As all my test user names (all 9999 of them) start with the letter "t",
> the contention for the directory <configdir>/user/t is the most obvious
> problem. With the old Cyrus version the .seen files were in <partition>.
> --enable-fulldirhash should help with this problem.... but this will
> make upgrading interesting as things like sieve and subs_db files will
> need rehashing... and complicates the ability to roll-back too.

Its not as interesting as you might expect.  rehash can handle both
upgrading and reverting.


Rob Siemborski * Andrew Systems Group * Cyert Hall 207 * 412-268-7456
Research Systems Programmer * /usr/contributed Gatekeeper

More information about the Info-cyrus mailing list