Tweak rebuild in-flight hard limit

Vendor testing shows we should be able to get a little more
performance if we further relax the hard limit which we're hitting.

Authored-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Signed-off-by: Tony Hutter <hutter2@llnl.gov>
Closes #15324
This commit is contained in:
Brian Behlendorf 2023-09-29 08:21:25 -07:00 committed by GitHub
parent ba769ea351
commit f9c39dc862
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 2 additions and 2 deletions

View File

@ -807,12 +807,12 @@ vdev_rebuild_thread(void *arg)
/* /*
* Calculate the max number of in-flight bytes for top-level * Calculate the max number of in-flight bytes for top-level
* vdev scanning operations (minimum 1MB, maximum 1/4 of * vdev scanning operations (minimum 1MB, maximum 1/2 of
* arc_c_max shared by all top-level vdevs). Limits for the * arc_c_max shared by all top-level vdevs). Limits for the
* issuing phase are done per top-level vdev and are handled * issuing phase are done per top-level vdev and are handled
* separately. * separately.
*/ */
uint64_t limit = (arc_c_max / 4) / MAX(rvd->vdev_children, 1); uint64_t limit = (arc_c_max / 2) / MAX(rvd->vdev_children, 1);
vr->vr_bytes_inflight_max = MIN(limit, MAX(1ULL << 20, vr->vr_bytes_inflight_max = MIN(limit, MAX(1ULL << 20,
zfs_rebuild_vdev_limit * vd->vdev_children)); zfs_rebuild_vdev_limit * vd->vdev_children));