From 04d38c28b38b5fcc27a32a1cd095040f38a6d95f Mon Sep 17 00:00:00 2001 From: Christoph Cullmann Date: Sun, 27 Apr 2025 16:24:40 +0200 Subject: [PATCH] try to tune ZFS more --- share/common.nix | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/share/common.nix b/share/common.nix index 8891442..fe5ea2f 100644 --- a/share/common.nix +++ b/share/common.nix @@ -114,20 +114,27 @@ in # tweak ZFS boot.extraModprobeConfig = '' + # maximal 4 GB ARC options zfs zfs_arc_min=134217728 options zfs zfs_arc_max=4294967296 - options zfs zfs_txg_timeout=30 + + # NVMe tuning + options zfs zfs_txg_timeout=100 + options zfs zfs_vdev_async_read_max_active=2048 + options zfs zfs_vdev_async_read_min_active=1024 + options zfs zfs_vdev_async_write_max_active=2048 + options zfs zfs_vdev_async_write_min_active=1024 + options zfs zfs_vdev_queue_depth_pct=100 + options zfs zfs_vdev_sync_read_max_active=2048 + options zfs zfs_vdev_sync_read_min_active=1024 + options zfs zfs_vdev_sync_write_max_active=2048 + options zfs zfs_vdev_sync_write_min_active=1024 + + # less scrub impact on other IO + options zfs zfs_scrub_delay=32 + options zfs zfs_top_maxinflight=1 options zfs zfs_vdev_scrub_min_active=1 options zfs zfs_vdev_scrub_max_active=1 - options zfs zfs_vdev_sync_write_min_active=8 - options zfs zfs_vdev_sync_write_max_active=32 - options zfs zfs_vdev_sync_read_min_active=8 - options zfs zfs_vdev_sync_read_max_active=32 - options zfs zfs_vdev_async_read_min_active=8 - options zfs zfs_vdev_async_read_max_active=32 - options zfs zfs_vdev_async_write_min_active=8 - options zfs zfs_vdev_async_write_max_active=32 - options zfs zfs_vdev_def_queue_depth=128 ''; # tune the ZFS pool for NVMe