Slow lmtpd

Andrew Morgan morgan at orst.edu
Fri Mar 2 15:59:13 EST 2007


On Fri, 2 Mar 2007, Andre Nathan wrote:

> On Thu, 2007-03-01 at 16:41 -0600, Blake Hudson wrote:
>>> Actually it's still happening :( I read in the archives that the only
>>> way to actually avoid the locking in deliver.db is to also disable
>>> sieve, is that true?
>
> So, I'm willing to recompile cyrus and comment the calls to
> dupicate_check() and duplicate_mark() that are done in deliver_mailbox()
> in imap/lmtpd.c... would that break anything (other than duplicate
> checking :) ?

You'll lose the ability to effectively use vacation/out-of-office 
messages.  The vacation system uses deliver.db to determine which person 
has already received the vacation message, to prevent multiple messages 
from being sent.

> Is there a cyrus version where specifying "duplicatesuppression: 0"
> actually prevents the duplicate check and thus the database locking
> issues I could upgrade to a newer version too, no problem.

"duplicatesuppression: 0" does prevent Cyrus from blocking duplicate 
messages.  However, deliver.db is still used to track message-ids for the 
purpose of vacation messages, which is why Cyrus is still updating 
deliver.db.  I'm not aware of any configure option that will disable 
deliver.db entirely.

>From the earlier discussion on this topic, it sounds to me like you are 
simply pushing your available hardware too hard without further tuning. 
You mentioned using ATA-over-Ethernet storage for your mail spool.  Have 
you considered putting your configdirectory files on a local hard drive 
instead of on the ATA-over-Ethernet storage?  There is a *lot* of 
contention for the files in the config directory, so maybe it would be 
better to move them onto a drive separate from the mail spool.

After running iostat on my cyrus partition (both config and mail spool are 
kept on a SAN), I'm wondering if I should separate them out as well.  This 
sounds related to the new metapartition and metapartition_files options 
that were added in v2.3.x.

Does anyone have any recommendations or guidance on this topic?

 	Andy


More information about the Info-cyrus mailing list