In his ConstantThinking blog Solaris ZFS, Synchronous Writes and the ZIL Explained, Oracle consultant Constantine Gonzalez blogs about a topic that crops up frequently in his experience with users: synchronous writes and the ZIL. His personal experience indicates that ZFS performance problems (also part of this blog) have a frequent connection with synchronous writes as well. His leading advice: Don't blame the ZIL!
Gonzalez promises his readers they will learn what synchronous writes are; how they're processed by ZFS; what the ZIL is; how it works; how to measure ZIL activity and how to accelerate synchronous write performance, which is at the root of many, if not the majority of ZFS performance problems.
Starting with a detailed discussion of the POSIX Mandate for synchronous writes, Gonzalez works through such issues as the effect of synchronous writes on performance; the virtues of synchronous writes (he finds some in their role with databases and file servers).
Gonzalez next takes up the subjects of synchronous writes in ZFS and the use of separate log devices in ZFS. Here he cautions against the possible fragmentation of disk blocks when ZIL is invoked to excess, referring readers to Neil Perrin's article
ZFS: The Lumberjack on how best to implement the ZFS ZIL. Gonzalez also touts the capability ZFS has for placing the ZIL on other disks than the one on which the regular pool structure resides.
It follows, too, that using separate log devices frees the regular pool disks to concentrate on executing sequential writes as the separate log devices focus on writing ZIL blocks.
The blog brings up the connection between bandwidth and latency for synchronous writes when ZFS allocates intent log blocks from the mail pool when logbias=throughput is set. Here Gonzalez refers readers to Roch Bourbonnais's blog on Synchronous write bias property.
The final question, in Gonzalez's view, is whether a particular user needs a ZIL device at all, which can only be usefully determined by answering the question of whether one is experiencing performance problems as a result of too many write IOPS to the ZIL. In this connection zilstat.ksh, the tool developed by Bourbonnais and Richard Elling shows statistics on current ZIL usage.
ZFS: A Guide for the New User
Solaris 10 ZFS Essentials
Read More ...