diff --git a/modules/zfs.nix b/modules/zfs.nix index 4e5da01..7541f16 100644 --- a/modules/zfs.nix +++ b/modules/zfs.nix @@ -28,7 +28,7 @@ in # HDD pool (hdds) writes larger, sequential I/Os instead of many small syncs. # This is a global setting (no per-pool control); the SSD pool (tank) syncs # infrequently but handles it fine since SSDs don't suffer from seek overhead. - "zfs.zfs_txg_timeout=120" + "zfs.zfs_txg_timeout=60" # Cap ARC to prevent it from claiming memory reserved for hugepages. # Without this, ZFS auto-sizes c_max to ~62 GiB on a 64 GiB system, @@ -39,7 +39,7 @@ in # mq-deadline has a larger pool of requests to sort and merge into elevator sweeps. # Default async_read_max is 3 — far too few for effective coalescence. # 32 was empirically optimal (64 overwhelmed the drives, 3 gave near-zero merges). - "zfs.zfs_vdev_async_read_max_active=32" + "zfs.zfs_vdev_async_read_max_active=16" "zfs.zfs_vdev_async_read_min_active=4" # Merge reads within 128 KiB of each other (default 32 KiB). On HDDs, reading a