On Tue, 2005-07-12 at 15:37 +0100, Chris Wakelin wrote:
Doing some perfomance monitoring (with Solaris 8 process accounting), it looks like Dovecot needing to read only 30-50% of the disk blocks needed by UW-IMAP, but I was hoping for better!
What seems to happen, is that most of the connections use only a small number of blocks (due to Dovecot indexes, presumably) but occassionally a process will read lots of blocks, sometimes even more than a UW-IMAP session.
Most of this probably happens when new mails are appended to mailbox using some external tool, and after that the mailbox is selected again in Dovecot (if new mails arrive to selected mailbox, mbox_dirty_syncs=yes prevents the mbox from being fully re-read).
Another reason why Dovecot might be reading more than UW-IMAP is that when setting message flags, it reads the mail headers for those mails, and later when closing the mailbox it writes the flags. Those extra reads are completely unnecessary and I should fix the code not to do that..
Is this expected, or is something going wrong with the index updates? I have the default sync settings, I think (mbox_dirty_syncs = yes, mbox_very_dirty_syncs = no, mbox_lazy_writes = yes)
Setting mbox_very_dirty_syncs = yes makes Dovecot not re-read the mbox entirely when selecting externally modified mbox, unless it notices that mails aren't where they should be.
Also, Dovecot seems to be dropping connections, sometimes, for no good reason (putting some extra i_info lines suggests for "inactivity"). Thunderbird tends to reconnect automatically, though. It seems it may be happening at the end of an IDLE command, something like:-
Hmm.. Dovecot closes the connection because of inactivity? How long has Thunderbird been idling then? It should be disconnected if it doesn't say anything for 30 minutes, but not before that.