mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 10:37:35 +03:00
ZIL: Detect single-threaded workloads
... by checking that previous block is fully written and flushed. It allows to skip commit delays since we can give up on aggregation in that case. This removes zil_min_commit_timeout parameter, since for single-threaded workloads it is not needed at all, while on very fast devices even some multi-threaded workloads may get detected as single-threaded and still bypass the wait. To give multi-threaded workloads more aggregation chances increase zfs_commit_timeout_pct from 5 to 10%, as they should suffer less from additional latency. Also single-threaded workloads detection allows in perspective better prediction of the next block size. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Prakash Surya <prakash.surya@delphix.com> Signed-off-by: Alexander Motin <mav@FreeBSD.org> Sponsored by: iXsystems, Inc. Closes #15381
This commit is contained in:
committed by
Brian Behlendorf
parent
3c5f354a8c
commit
7ea8331009
+1
-8
@@ -799,7 +799,7 @@ Note that this should not be set below the ZED thresholds
|
||||
(currently 10 checksums over 10 seconds)
|
||||
or else the daemon may not trigger any action.
|
||||
.
|
||||
.It Sy zfs_commit_timeout_pct Ns = Ns Sy 5 Ns % Pq uint
|
||||
.It Sy zfs_commit_timeout_pct Ns = Ns Sy 10 Ns % Pq uint
|
||||
This controls the amount of time that a ZIL block (lwb) will remain "open"
|
||||
when it isn't "full", and it has a thread waiting for it to be committed to
|
||||
stable storage.
|
||||
@@ -2206,13 +2206,6 @@ This sets the maximum number of write bytes logged via WR_COPIED.
|
||||
It tunes a tradeoff between additional memory copy and possibly worse log
|
||||
space efficiency vs additional range lock/unlock.
|
||||
.
|
||||
.It Sy zil_min_commit_timeout Ns = Ns Sy 5000 Pq u64
|
||||
This sets the minimum delay in nanoseconds ZIL care to delay block commit,
|
||||
waiting for more records.
|
||||
If ZIL writes are too fast, kernel may not be able sleep for so short interval,
|
||||
increasing log latency above allowed by
|
||||
.Sy zfs_commit_timeout_pct .
|
||||
.
|
||||
.It Sy zil_nocacheflush Ns = Ns Sy 0 Ns | Ns 1 Pq int
|
||||
Disable the cache flush commands that are normally sent to disk by
|
||||
the ZIL after an LWB write has completed.
|
||||
|
||||
Reference in New Issue
Block a user