Load spikes when new email arrives

Blake Hudson blake at ispn.net
Thu Jan 24 11:22:05 EST 2013


> In another email discussion on the Redhat mailing list, I've confirmed 
> we have
> an issue with partition alignment.  This is getting to be quite the mess
> out there.  I saw one posting where it is speculated there are 
> thousands of
> poorly set up disk partitions for their RAID stripe size.  fdisk and
> OS installers were late getting updated for the new TB disks
> and SSD disks as well.  Partition alignment might account
> for 5 to 30% of a performance hit.
>
> I've checked and my cyrus lmtpd process count
> never exceeds 11 under work load.
> await jumps up to 150-195 at worst.
>
> If I'm already at IO saturation, I can't see how a higher lmtpd limit
> would help.
>
> My goal is to keep the system load reasonable so it is responsive for
> mailbox access by the end users.  Right now we get nagios alerts
> about 6 times a day for excessive load.  If I can move the mail
> queue workload into a hill instead of a sharp peak on the cacti
> load graph, it would be good.  There are minutes around the peaks
> where the queue is emptied and we have only 5 messages
> inbound per minute.
>
> In hind sight, I agree RAID 10 should have been implemented.
> At the time, four years ago, getting lots of space was the
> priority as space needs always grow.  We've never seen load
> issues until this month, and it seems to coincide with a
> general increase of all email volume and traffic.  Our primary
> MX is also getting hit more than normal.
>
>

There are a couple suggestions I'd like to put forth. First, improper 
partition alignment is generally masked by the controller cache. I 
strongly encourage you to check that your RAID array is making use of 
this cache by enabling the WriteBack caching option on this array, 
especially if your PERC card has a BBU (I think this was optional on 
perc 5). You can install the MegaCLI tool from LSI to verify this (can 
also be checked from OpenManage or reboot into the controller BIOS).

MegaCLI Link: 
http://www-947.ibm.com/support/entry/portal/docdisplay?lndocid=migr-5082327
The relevant commands are as follows:
MegaCli -AdpBbuCmd -aALL
MegaCli -LDInfo -Lall -aALL

Second, the PERC card does support RAID level migration, so if you want 
to add a spindle or even change RAID levels, you can. This can be done 
via either OpenManage (hit or miss) or the MegaCLI tool (daunting, but 
there are cheat sheets). You could also add a separate array to act as a 
dedicated mail spool. You can also replace the existing disks with 
faster (and/or larger) disks for additional performance without ever 
touching the software.


To directly answer your question of "If I can move the mail queue 
workload into a hill instead of a sharp peak on the cacti load graph, it 
would be good. ", then lowering the LMTP limit in cyrus (or the upstream 
MX server) to turn the mail flow into a trickle, rather than a flood, 
would do this. You can adjust the concurrency rate of LMTP deliveries in 
postfix using lmtp_destination_concurrency_limit (default 20).  The 
cyrus method has already been mentioned. You may also look at other ways 
to reduce IO wait, such as disk defragmentation or utilizing hard links 
in cyrus (singleinstancestore: 1).

--Blake


More information about the Info-cyrus mailing list