> From: Kevin Walker [mailto:indigoskywal...@gmail.com] > > You do seem to misunderstand ZIL.
Wrong. > ZIL is quite simply write cache ZIL is not simply write cache, but it enables certain types of operations to use write cache which otherwise would have been ineligible. The Intent Log is where ZFS immediately writes sync-write requests, so it can unblock the process which called write(). Once the data has been committed to nonvolatile ZIL storage, the process can continue processing, and ZFS can treat the write requests as async writes. Which means, after ZFS has written the ZIL, then the data is able to stay a while in the RAM write buffer along with all the async writes. Which means ZFS is able to aggregate and optimize all the writes for best performance. This means ZIL is highly sensitive to access times. (seek + latency) > using a short stroked rotating drive is > never going to provide a performance increase that is worth talking about If you don't add a dedicated log device, then the ZIL utilizes blocks from the main storage pool, and all sync writes suddenly get higher priority than all the queued reads and async writes. If you have a busy storage pool, your sync writes might see something like 20ms access times (seek + latency) before they can hit nonvolatile storage, and every time this happens, some other operation gets delayed. If you add a spindle drive dedicated log device, then that drive is always idle except when writing ZIL for sync writes, and also, the head will barely move over the platter because all the ZIL blocks will be clustered tightly together. So the ZIL might require typically 2ms or 3ms access times (negligible seek or 1ms seek + 2ms latency), which is an order of magnitude better than before. Plus the sync writes in this case don't take away performance from the main pool reads & writes. If you replace your spindle drive with a SSD, then you get another order of magnitude smaller access time. (Tens of thousands of IOPS effectively compares to <<1ms access time per OP) If you disable your ZIL completely, then you get another order of magnitude smaller access time. (Some ns to think about putting the data directly into RAM write buffer and entirely bypass the ZIL). > and more importantly ZIL was designed to be used with a RAM/Solid State > Disk. I hope you mean NVRAM or battery-backed RAM of some kind. Because if you use volatile RAM for ZIL, then you have disabled ZIL from being able to function correctly. The ZFS Best Practices Guide specifically mentions "Better performance might be possible by using [...], or even a dedicated spindle disk." _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss