Slow lmtpd
Andrew Morgan
morgan at orst.edu
Fri Mar 2 20:07:28 EST 2007
On Fri, 2 Mar 2007, Andre Nathan wrote:
> On Fri, 2007-03-02 at 09:21 -0300, Andre Nathan wrote:
>> 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.
>
> I did that, and the lock contention problem with deliver.db is gone. I'm
> still seeing the problem in some users' cyrus.header files though.
> Searching the archives, I found some threads regarding this issue [1,2],
> or more recently in [3]. From the discussion on these threads it seems
> that the lock problem actually is happening with the quota files. The
> first two threads are old (from 2003), and they mention a bug filed in
> bugzilla which is marked as fixed, but the situation I'm seeing, and the
> one on the third thread (from 2006) seems to be the same problem.
>
> Has anyone ever been through that? I have no idea what could be causing
> the lock contention only for some users, so I'm not sure of any
> workaround for the problem :/
>
> [1]http://marc.theaimsgroup.com/?l=info-cyrus&m=106434064805178&w=2
> [2]http://marc.theaimsgroup.com/?l=info-cyrus&m=106434491911478&w=2
> [3]http://www.irbs.net/internet/info-cyrus/0610/0390.html
Items [1,2] are me... :)
The problems I was having went away when I upgraded Cyrus. I can't
remember specifically which version it was fixed in, but you shouldn't be
running anything older than v2.2.13 these days anyways.
In my case, I had an imaps process that was stuck waiting for input from
the network for a client that had long since disconnected. The imaps
process had a write lock open on the user's quota file, therefore any
incoming mail for that user was stuck waiting for the write lock to become
available.
I doubt this is the problem you are seeing. It sounds to me like you may
be hitting the limits of your storage system. I would be fascinated to
see the output of the command "iostat -x sdb 5" (where 'sdb' is the device
you have cyrus on) on your system. Even if you aren't saturating your
Gigabit Ethernet link to the ATA-over-Ethernet storage, you may be
exceeding the number I/O operations per second.
Here is an example of the iostat output on one of my cyrus systems:
---------------------------------------------------------
avg-cpu: %user %nice %sys %iowait %idle
0.75 0.00 0.35 1.11 97.79
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sdb 0.20 91.11 13.13 107.68 195.56 1587.07 97.78 793.54 14.76 0.30 2.50 1.34 16.16
---------------------------------------------------------
This is one of two murder backends running v2.2.13. The server is a Dell
2850 with two 3.0GHz Xeons and 2GB of RAM. It is attached to an EMC Cx500
SAN, specifically a 7 disk RAID5 array of 10k 146GB Fibre-channel drives.
You can view the load average and process counts for these servers at:
https://secure.onid.oregonstate.edu/cacti/graph_view.php?action=tree&tree_id=4
Andy
More information about the Info-cyrus
mailing list