Performance issues with Cyrus v2.1.12 on Solaris 5.8
rjs3 at andrew.cmu.edu
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
> rename <partition>/user/<user>/cyrus.index.NEW
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