diff options
author | Richard Yao <[email protected]> | 2014-07-11 14:35:58 -0400 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2017-05-04 18:00:27 -0400 |
commit | bc17f1047a83cc8c4065e0ef84333a0d9b9d73aa (patch) | |
tree | 240277a2f851d5bcfe4839dcb7e720dd58662945 /config/kernel.m4 | |
parent | 5731140eaf4aaf2526a8bfdbfe250195842e79eb (diff) |
Enable Linux read-ahead for a single page on ZVOLs
Linux has read-ahead logic designed to accelerate sequential workloads.
ZFS has its own read-ahead logic called zprefetch that operates on both
ZVOLs and datasets. Having two prefetchers active at the same time can
cause overprefetching, which unnecessarily reduces IOPS performance on
CoW filesystems like ZFS.
Testing shows that entirely disabling the Linux prefetch results in
a significant performance penalty for reads while commensurate benefits
are seen in random writes. It appears that read-ahead benefits are
inversely proportional to random write benefits, and so a single page
of Linux-layer read-ahead appears to offer the middle ground for both
workloads.
Reviewed-by: Chunwei Chen <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Richard Yao <[email protected]>
Issue #5902
Diffstat (limited to 'config/kernel.m4')
-rw-r--r-- | config/kernel.m4 | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/config/kernel.m4 b/config/kernel.m4 index 638d9e143..57dad7b3a 100644 --- a/config/kernel.m4 +++ b/config/kernel.m4 @@ -32,6 +32,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [ ZFS_AC_KERNEL_BIO_END_IO_T_ARGS ZFS_AC_KERNEL_BIO_RW_BARRIER ZFS_AC_KERNEL_BIO_RW_DISCARD + ZFS_AC_KERNEL_BLK_QUEUE_BDI ZFS_AC_KERNEL_BLK_QUEUE_FLUSH ZFS_AC_KERNEL_BLK_QUEUE_MAX_HW_SECTORS ZFS_AC_KERNEL_BLK_QUEUE_MAX_SEGMENTS |