mirror_zfs/module
Paul Dagnelie 40496514b8
Expand fragmentation table to reflect larger possibile allocation sizes
When you are using large recordsizes in conjunction with raidz, with
incompressible data, you can pretty reliably be making 21 MB
allocations. Unfortunately, the fragmentation metric in ZFS considers
any metaslabs with 16 MB free chunks completely unfragmented, so you can
have a metaslab report 0% fragmented and be unable to satisfy an
allocation. When using the segment-based metaslab weight, this is
inconvenient; when using the space-based one, it can seriously degrade
performance.

We expand the fragmentation table to extend up to 512MB, and redefine
the table size based on the actual table, rather than having a static
define. We also tweak the one variable that depends on fragmentation
directly.

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Reviewed-by: Allan Jude <allan@klarasystems.com>
Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Signed-off-by: Paul Dagnelie <paul.dagnelie@klarasystems.com>
Closes #16986
2025-02-06 15:40:01 -05:00
..
avl Suppress Clang Static Analyzer false positive in the AVL tree code. 2023-03-08 13:51:21 -08:00
icp icp: remove redundant FreeBSD check 2024-05-31 15:13:59 -07:00
lua lua: add flex array field to TString type 2024-09-30 10:30:03 -07:00
nvpair Remove unnecessary CSTYLED escapes on top-level macro invocations 2024-12-06 08:53:57 -08:00
os Linux 6.14: BLK_MQ_F_SHOULD_MERGE was removed 2025-02-05 09:43:45 -08:00
unicode module: unicode: remove unused tolower transformations 2024-11-04 17:26:35 -08:00
zcommon zprop: fix value help for ZPOOL_PROP_CAPACITY 2024-12-18 15:25:12 -08:00
zfs Expand fragmentation table to reflect larger possibile allocation sizes 2025-02-06 15:40:01 -05:00
zstd compress: change zio_compress API to use ABDs 2024-08-22 16:22:24 -07:00
.gitignore FreeBSD: Ignore symlink to i386 includes 2022-08-02 16:34:23 -07:00
Kbuild.in Make the vfs.zfs.vdev.raidz_impl sysctl cross-platform 2025-01-29 09:18:09 -05:00
Makefile.bsd module: unicode: remove unused uconv.c 2024-11-01 12:12:13 -07:00
Makefile.in Makefile.in: pass ARCH for modules_install as well 2025-01-13 16:51:37 -08:00