OpenZFS Sees 3x Throughput Boost For ZVOL Sync Write Performance

A Phoronix reader tipped us off that around the start of April was a big performance improvement that was merged.
Up until this change, sync writes to a ZVOL were done serially. But with the new code, ZVOLs are processed concurrently with sync writes in parallel. Following this change, "The result is that the throughput of sync writes is tripled."
ZFS co-founder Matthew Ahrens worked on this improvement. He further noted in the commit as to the performance expectations:
We used `diskspd` to generate a workload with 4 threads, doing 1MB writes to random offsets in the zvol. Without this change we get 231MB/s, and with the change we get 728MB/s, which is 3.15x the original performance.
We ran a real-world workload, restoring a MSSQL database, and saw throughput 2.5x the original.
We saw more modest performance wins (typically 1.5x-2x) when using MC/S with 4 connections, and with different number of client threads (1, 8, 32).
More details on this big performance win via the GitHub commit.
18 Comments