Difference between revisions of "Performance tuning"

Jump to navigation Jump to search
m
m (Minor update to LZ4 information)
Line 140: Line 140:
=== Synchronous I/O ===
=== Synchronous I/O ===


If your workload involves fsync or O_SYNC and your pool is backed by mechanical storage, consider adding one or more SLOG devices. Pools that have multiple SLOG devices will distribute ZIL operations across them. The best choice for SLOG devices is likely an Optane / 3D XPoint SSD. See [[Hardware#Optane_.2F_3D_XPoint_SSDs]] for a description of them. If an Optane / 3D XPoint SSD is an option, the rest of this section on synchronous I/O need not be read. If an Optane / 3D XPoint SSD is not an option, see [[Hardware#NAND_Flash_SSDs]] for suggestions for NAND flash SSDs and also read the information below.
If your workload involves fsync or O_SYNC and your pool is backed by mechanical storage, consider adding one or more SLOG devices. Pools that have multiple SLOG devices will distribute ZIL operations across them. The best choice for SLOG device(s) are likely Optane / 3D XPoint SSDs. See [[Hardware#Optane_.2F_3D_XPoint_SSDs]] for a description of them. If an Optane / 3D XPoint SSD is an option, the rest of this section on synchronous I/O need not be read. If Optane / 3D XPoint SSDs is not an option, see [[Hardware#NAND_Flash_SSDs]] for suggestions for NAND flash SSDs and also read the information below.


To ensure maximum ZIL performance on NAND flash SSD-based SLOG devices, you should also overprovison spare area to increase IOPS[http://www.anandtech.com/show/6489/playing-with-op]. Only about 4GB is needed, so the rest can be left as overprovisioned storage. The choice of 4GB is somewhat arbitrary. Most systems do not write anything close to 4GB to ZIL between transaction group commits, so overprovisioning all storage beyond the 4GB partition should be alright. If a workload needs more, then make it no more than the maximum ARC size. Even under extreme workloads, ZFS will not benefit from more SLOG storage than the maximum ARC size. That is half of system memory on Linux and 3/4 of system memory on illumos.
To ensure maximum ZIL performance on NAND flash SSD-based SLOG devices, you should also overprovison spare area to increase IOPS[http://www.anandtech.com/show/6489/playing-with-op]. Only about 4GB is needed, so the rest can be left as overprovisioned storage. The choice of 4GB is somewhat arbitrary. Most systems do not write anything close to 4GB to ZIL between transaction group commits, so overprovisioning all storage beyond the 4GB partition should be alright. If a workload needs more, then make it no more than the maximum ARC size. Even under extreme workloads, ZFS will not benefit from more SLOG storage than the maximum ARC size. That is half of system memory on Linux and 3/4 of system memory on illumos.
Editor
348

edits

Navigation menu