ZFS Settings for Sun Messaging
This blog entry was triggered by Neelakanth's on MySQL InnoDB ZFS Best Practices post.
There's always a running debate about "best practices" and I know several people that say, "there are no *best* practices, only good or better practices".
So what are some of the settings for the Sun Messaging product and ZFS?Han Shum has a post on the Comms Wiki for Configuration Recommendations for ZFS and Messaging Server
It covers the following including instructions:
- Separate the mailstore mailbox partitions (data) from the database files (indices)
- Match ZFS recordsize with page size (8 kb for mbox database, 4 kb for database index files and default of 128k for the actual message store file system)
- Disable File Access Time record
- Stay below 80% space utilization
Going beyond those things and considering what Neelakanth wrote, the following things are worth investigating at your own risk*:
- Use a Seperate ZFS Intent Log (slog) - Messaging is definitely write intensive and we've seen some improvements by moving the Intent Log off onto separate drives
- Make sure the ZFS Adaptive replacement cache (ARC) is enabled
- Make sure that the ZFS prefetch is enabled
- Consider using an SSD as L2ARC, SLOG or for the messaging database files / indices
- Determine if your storage is ZFS Write Cache friendly or not -- some storage devices / systems that have NVRAM interpret ZFS's command to flush the write cache in different and un-performance friendly ways. If your storage device has battery backed caches, consider turning off the ZFS cache flush
* There's no good substitution for doing this on a non-production environment that's configured with the same OS levels and patches as production!