Javier de Miguel RodrÃguez put forth on 1/16/2011 12:00 PM:
What kind of "tricks" do you use to lower the number of IOPs of your dovecot
servers?
Using hardware SAN RAID controllers with 'large' (2GB) write cache. The large write cache allows for efficient use of large queue depths. A deeper queue allows the drives to order reads/writes most efficiently decreasing head seek movement. This doesn't necessarily decrease IO per se, but it makes the drives more efficient, allowing for more total physical drive IOPS.
Using XFS with delayed logging mount option (requires kernel 2.6.36 or later).
XFS has natively used delayed allocation for quite some time, coalescing multiple pending writes before pushing them into the buffer cache. This not only decreases physical IOPS, but it also decreases filesystem fragmentation by packing more files into each extent. Decreased fragmentation means fewer disk seeks required per file read, which also decreases physical IOPS. This also greatly reduces the wasted space typical of small file storage. Works very well with maildir, but also with the other mail storage formats.
Using the delayed logging feature, filesystem metadata write operations are pushed almost entirely into RAM. Not only does this _dramatically_ decrease physical metadata write IOPS but it also increases metadata write performance by an order of magnitude. Really shines with maildir, obviously, but would also help the s/mdbox formats since they make use of multiple files. Delaylog doesn't help mbox at all, and it doesn't do anything for index file performance. The caveat here is _load_. You won't get much benefit on a mostly idle server. The benefits of delayed logging increase as the filesystem metadata write load increases. Busy servers benefit the most.
-- Stan