Bug #9962
closedzil_commit should omit cache thrash
100%
Description
Upstream clone of OS-7314 from SmartOS:
The changes and testing required for OS-7300 have spurred a renewed focus on ZFS performance in the face of large async-write workloads featuring interspersed
fsync()
calls to flush pending data to the disks. In typical test scenarios, when the async writes were progressing, IO to disks underlying the pool (3 pairs of mirrored SSDs, no SLOG) would look good, each disk pushing ~100MB/s at latencies around 1ms. With a large amount of data still outstanding, the calls tofsync()
would change the performance profile drastically. The disks still report 100% busy via iostat, but their IOPS and throughput would fall dramatically, with average latency shooting up to 50ms or more. When the workload was updated to omit thefsync()
(or at least delay it until the cached writes had completed), throughput to the disks would remain high and the total write workload would complete in a timely fashion.
Pending code review and discussion at openzfs#703
Updated by Patrick Mooney over 4 years ago
- Status changed from New to In Progress
Updated by Electric Monk over 4 years ago
- Status changed from In Progress to Closed
- % Done changed from 0 to 100
git commit cab3a55e158118937e07d059c46f1bc14d1f254d
commit cab3a55e158118937e07d059c46f1bc14d1f254d Author: Prakash Surya <prakash.surya@delphix.com> Date: 2018-11-30T21:23:19.000Z 9962 zil_commit should omit cache thrash Reviewed by: Matt Ahrens <matt@delphix.com> Reviewed by: Brad Lewis <brad.lewis@delphix.com> Reviewed by: Patrick Mooney <patrick.mooney@joyent.com> Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Approved by: Joshua M. Clulow <josh@sysmgr.org>