mirror_zfs/man
Alexander Motin f7e6dcc68d Relax zfs_vnops_read_chunk_size limitations
It makes no sense to limit read size below the block size, since
DMU will any way consume resources for the whole block, while the
current zfs_vnops_read_chunk_size is only 1MB, which is smaller
that maximum block size of 16MB.  Plus in case of misaligned
Uncached I/O the buffer may get evicted between the chunks,
requiring repeating I/Os.

On 64-bit platforms increase zfs_vnops_read_chunk_size to 32MB.
It allows to less depend on speculative prefetcher if application
requests specific size, first not waiting for prefetcher to start
and later not prefetching more than needed.

Also while there, we don't need to align reads to the chunk size,
but only to a block size, which is smaller and so more forgiving.

My profiles show ~4% of CPU time saving when reading 16MB blocks.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed by: Igor Kozhukhov <ikozhukhov@gmail.com>
Signed-off-by:	Alexander Motin <mav@FreeBSD.org>
Sponsored by:	iXsystems, Inc.
Closes #17415
2025-06-17 10:50:27 -07:00
..
man1 Harmonize on American spelling in several places 2025-04-16 09:59:45 -07:00
man4 Relax zfs_vnops_read_chunk_size limitations 2025-06-17 10:50:27 -07:00
man5 SPDX: license tags: CDDL-1.0 2025-04-16 09:59:44 -07:00
man7 Disambiguate reference to kibibytes, not kilobytes 2025-04-16 09:59:45 -07:00
man8 Refactor man page and CLI help output per mandoc 2025-06-17 10:49:40 -07:00
Makefile.am Add DDT prune command 2024-09-04 14:17:02 -07:00