Cyrus IMAP 2.3.9 on Solaris 10 with ZFS and SAN
Pascal Gienger
Pascal.Gienger at uni-konstanz.de
Thu Sep 20 16:09:39 EDT 2007
Just a little note, for those who have perhaps the same problem.
We saw performance problems after we switched from a Linux installation to
a Solaris 10 cluster connected to our SAN (using scsi_vhci and 2 Qlogic
Controllers).
Problems arose when real load came to the machine, despite having tested it
with some load simulation scenarios...
Looking at the attached chart[0], you will notice up to 10 seconds time to
select a mailbox, far too long.
The problem was ZFS - ZFS is perfect for rubbish, cheap disks with ugly
firmwares. So if your storage is "too good" it makes things go bad.
First: The file prefetch algorithm does not seem to be very good for 20
million mail files and 300,000 cyrus meta files... ;-)
So first step was (at 11am in the chart) to disable this prefetching
routine. [1]
This cut off 4 seconds from requests, but still 10 second-timeouts were
seen.
Next step was to disable the zfs cache flush. As said, ZFS is good for
rubbish disks, so every 5 seconds it instructs the SATA or SCSI drives to
flush their internal ram to disk. This is good for cheap disks, but a no-go
if you have a SAN RAID storage having 2 Gigabytes and more of RAM storage,
buffered with a battery. In fact, our storage system really flushed all 5
second its complete RAM cache, you even saw it watching the "blinkenlights".
Plus, every fsync() call did the same... :(
There is a trick: You can disable this in ZFS [2]. You see the result at
4pm (16:00 european notation in the chart). CHILDREN DO NOT TRY THIS AT
HOME..... Only do this if you don't have any "real" physical disk storages
attached to your system with zfs pools on them - otherwise you will lose
data on power outages as the ram cache of your hard disk is not buffered by
a battery.
Now the machine runs and handles all mail without noticeable delays.
[0] http://priscilla.rz.uni-konstanz.de/mailserver/
[1] in /etc/system: set zfs:zfs_array_rd_sz=0
on a live system using mdb -kw: zfs_array_rd_sz/Z0x0
[2] in /etc/system: set zfs:zfs_nocacheflush=1
on a live system using mdb -kw: zfs_nocacheflush/W0t1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mailselect.png
Type: image/png
Size: 18292 bytes
Desc: not available
Url : http://lists.andrew.cmu.edu/pipermail/info-cyrus/attachments/20070920/cc71f061/attachment-0001.png
More information about the Info-cyrus
mailing list