Increase zfs_vdev_async_write_min_active to 2
Resilver operations frequently cause only a small amount of dirty data to be written to disk at a time, resulting in the IO scheduler to only issue 1 write at a time to the resilvering disk. When it is rotational media the drive will often travel past the next sector to be written before receiving a write command from ZFS, significantly delaying the write of the next sector. Raise zfs_vdev_async_write_min_active so that drives are kept fed during resilvering. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: DHE <git@dehacked.net> Issue #4825 Closes #5926
This commit is contained in:
parent
94d353a0bf
commit
5e6057b574
|
@ -883,7 +883,12 @@ Default value: \fB10\fR.
|
||||||
Minimum asynchronous write I/Os active to each device.
|
Minimum asynchronous write I/Os active to each device.
|
||||||
See the section "ZFS I/O SCHEDULER".
|
See the section "ZFS I/O SCHEDULER".
|
||||||
.sp
|
.sp
|
||||||
Default value: \fB1\fR.
|
Lower values are associated with better latency on rotational media but poorer
|
||||||
|
resilver performance. The default value of 2 was chosen as a compromise. A
|
||||||
|
value of 3 has been shown to improve resilver performance further at a cost of
|
||||||
|
further increasing latency.
|
||||||
|
.sp
|
||||||
|
Default value: \fB2\fR.
|
||||||
.RE
|
.RE
|
||||||
|
|
||||||
.sp
|
.sp
|
||||||
|
|
|
@ -146,7 +146,7 @@ uint32_t zfs_vdev_sync_write_min_active = 10;
|
||||||
uint32_t zfs_vdev_sync_write_max_active = 10;
|
uint32_t zfs_vdev_sync_write_max_active = 10;
|
||||||
uint32_t zfs_vdev_async_read_min_active = 1;
|
uint32_t zfs_vdev_async_read_min_active = 1;
|
||||||
uint32_t zfs_vdev_async_read_max_active = 3;
|
uint32_t zfs_vdev_async_read_max_active = 3;
|
||||||
uint32_t zfs_vdev_async_write_min_active = 1;
|
uint32_t zfs_vdev_async_write_min_active = 2;
|
||||||
uint32_t zfs_vdev_async_write_max_active = 10;
|
uint32_t zfs_vdev_async_write_max_active = 10;
|
||||||
uint32_t zfs_vdev_scrub_min_active = 1;
|
uint32_t zfs_vdev_scrub_min_active = 1;
|
||||||
uint32_t zfs_vdev_scrub_max_active = 2;
|
uint32_t zfs_vdev_scrub_max_active = 2;
|
||||||
|
|
Loading…
Reference in New Issue