mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 18:40:43 +03:00
Improve resilver ETAs
When resilvering the estimated time remaining is calculated using the average issue rate over the current pass. Where the current pass starts when a scan was started, or restarted, if the pool was exported/imported. For dRAID pools in particular this can result in wildly optimistic estimates since the issue rate will be very high while scanning when non-degraded regions of the pool are scanned. Once repair I/O starts being issued performance drops to a realistic number but the estimated performance is still significantly skewed. To address this we redefine a pass such that it starts after a scanning phase completes so the issue rate is more reflective of recent performance. Additionally, the zfs_scan_report_txgs module option can be set to reset the pass statistics more often. Reviewed-by: Akash B <akash-b@hpe.com> Reviewed-by: Tony Hutter <hutter2@llnl.gov> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #14410
This commit is contained in:
@@ -1831,6 +1831,13 @@ When we cross this limit from above it is because we are issuing verification I/
|
||||
In this case (unless the metadata scan is done) we stop issuing verification I/O
|
||||
and start scanning metadata again until we get to the hard limit.
|
||||
.
|
||||
.It Sy zfs_scan_report_txgs Ns = Ns Sy 0 Ns | Ns 1 Pq uint
|
||||
When reporting resilver throughput and estimated completion time use the
|
||||
performance observed over roughly the last
|
||||
.Sy zfs_scan_report_txgs
|
||||
TXGs.
|
||||
When set to zero performance is calculated over the time between checkpoints.
|
||||
.
|
||||
.It Sy zfs_scan_strict_mem_lim Ns = Ns Sy 0 Ns | Ns 1 Pq int
|
||||
Enforce tight memory limits on pool scans when a sequential scan is in progress.
|
||||
When disabled, the memory limit may be exceeded by fast disks.
|
||||
|
||||
Reference in New Issue
Block a user