Zitat von "Greg A. Woods" <woods-cyrus@xxxxxxxxx>:
I manage a single-instance server running v2.2.12 with a reasonably large number of mailboxes, using "mboxlist_db: flat": # wc -l /var/imap/mailboxes.db 40190 /var/imap/mailboxes.db On the hardware it runs on a grep through the mailboxes file using a non-trivial RE to match the user and ACL (in a manner I suspect is similar to 'list "" *') will complete in less than a second of CPU time. However imapd takes well over two minutes of CPU time to do the same thing -- an unbelievable, impossibly, long time for what should be a very trivial operation on so few records, relatively speaking. I would have expected that hardware to be able to process several tens of millions of records in two minutes of CPU time. I.e. whatever is being done is being done with three or four orders of magnitude too many instructions per record! This is a "flat" DB, but still! Unfortunately some clients, despite the advice of RFC 2683 Section 3.2.1.1, e.g. pine, frequently do things like this (or seem to), sometimes putting extraordinarily excessive load on the system when several do so at the same time (it's only a 4-CPU system :-)).
Not sure how the problem arises but maybe you want to use the imapd.conf option foolstupidclients which changes the command from "list *" to "list INBOX*" on the fly to get around your performance problem.
Regards Andreas ---- Cyrus Home Page: http://cyrusimap.web.cmu.edu/ Cyrus Wiki/FAQ: http://cyrusimap.web.cmu.edu/twiki List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html