Lines Matching +full:lock +full:- +full:latency +full:- +full:ns
1 .\" SPDX-License-Identifier: CDDL-1.0
10 .\" usr/src/OPENSOLARIS.LICENSE or https://opensource.org/licenses/CDDL-1.0.
30 .Bl -tag -width Ds
31 .It Sy dbuf_cache_max_bytes Ns = Ns Sy UINT64_MAX Ns B Pq u64
34 .No 1/2^ Ns Sy dbuf_cache_shift Pq 1/32nd
41 .It Sy dbuf_metadata_cache_max_bytes Ns = Ns Sy UINT64_MAX Ns B Pq u64
44 .No 1/2^ Ns Sy dbuf_metadata_cache_shift Pq 1/64th
51 .It Sy dbuf_cache_hiwater_pct Ns = Ns Sy 10 Ns % Pq uint
56 .It Sy dbuf_cache_lowater_pct Ns = Ns Sy 10 Ns % Pq uint
61 .It Sy dbuf_cache_shift Ns = Ns Sy 5 Pq uint
66 .It Sy dbuf_metadata_cache_shift Ns = Ns Sy 6 Pq uint
71 .It Sy dbuf_mutex_cache_shift Ns = Ns Sy 0 Pq uint
77 .It Sy dmu_object_alloc_chunk_shift Ns = Ns Sy 7 Po 128 Pc Pq uint
79 The default value minimizes lock contention for the bulk operation performed.
81 .It Sy dmu_ddt_copies Ns = Ns Sy 3 Pq uint
92 .It Sy dmu_prefetch_max Ns = Ns Sy 134217728 Ns B Po 128 MiB Pc Pq uint
96 .It Sy l2arc_feed_again Ns = Ns Sy 1 Ns | Ns 0 Pq int
97 Turbo L2ARC warm-up.
100 .It Sy l2arc_feed_min_ms Ns = Ns Sy 200 Pq u64
103 .Sy l2arc_feed_again Ns = Ns Ar 1
106 .It Sy l2arc_feed_secs Ns = Ns Sy 1 Pq u64
109 .It Sy l2arc_headroom Ns = Ns Sy 8 Pq u64
118 .It Sy l2arc_headroom_boost Ns = Ns Sy 200 Ns % Pq u64
127 .It Sy l2arc_exclude_special Ns = Ns Sy 0 Ns | Ns 1 Pq int
132 .It Sy l2arc_mfuonly Ns = Ns Sy 0 Ns | Ns 1 Ns | Ns 2 Pq int
141 .No If Sy l2arc_noprefetch Ns = Ns Sy 0 ,
173 .It Sy l2arc_meta_percent Ns = Ns Sy 33 Ns % Pq uint
174 Percent of ARC size allowed for L2ARC-only headers.
180 .It Sy l2arc_trim_ahead Ns = Ns Sy 0 Ns % Pq u64
199 .It Sy l2arc_noprefetch Ns = Ns Sy 1 Ns | Ns 0 Pq int
215 .It Sy l2arc_norw Ns = Ns Sy 0 Ns | Ns 1 Pq int
218 .It Sy l2arc_write_boost Ns = Ns Sy 33554432 Ns B Po 32 MiB Pc Pq u64
223 .It Sy l2arc_write_max Ns = Ns Sy 33554432 Ns B Po 32 MiB Pc Pq u64
226 .It Sy l2arc_rebuild_enabled Ns = Ns Sy 1 Ns | Ns 0 Pq int
233 .It Sy l2arc_rebuild_blocks_min_l2size Ns = Ns Sy 1073741824 Ns B Po 1 GiB Pc Pq u64
242 .It Sy metaslab_aliquot Ns = Ns Sy 2097152 Ns B Po 2 MiB Pc Pq u64
247 of a top-level vdev before moving on to the next top-level vdev.
249 .It Sy metaslab_bias_enabled Ns = Ns Sy 1 Ns | Ns 0 Pq int
250 Enable metaslab groups biasing based on their over- or under-utilization
255 .It Sy metaslab_perf_bias Ns = Ns Sy 1 Ns | Ns 0 Ns | Ns 2 Pq int
259 Setting to 1 equals to 2 if the pool is write-bound or 0 otherwise.
263 .It Sy metaslab_force_ganging Ns = Ns Sy 16777217 Ns B Po 16 MiB + 1 B Pc Pq u64
267 .It Sy metaslab_force_ganging_pct Ns = Ns Sy 3 Ns % Pq uint
272 .It Sy brt_zap_prefetch Ns = Ns Sy 1 Ns | Ns 0 Pq int
275 .It Sy brt_zap_default_bs Ns = Ns Sy 12 Po 4 KiB Pc Pq int
280 .It Sy brt_zap_default_ibs Ns = Ns Sy 12 Po 4 KiB Pc Pq int
285 .It Sy ddt_zap_default_bs Ns = Ns Sy 15 Po 32 KiB Pc Pq int
290 .It Sy ddt_zap_default_ibs Ns = Ns Sy 15 Po 32 KiB Pc Pq int
295 .It Sy zfs_default_bs Ns = Ns Sy 9 Po 512 B Pc Pq int
298 .It Sy zfs_default_ibs Ns = Ns Sy 17 Po 128 KiB Pc Pq int
301 .It Sy zfs_dio_enabled Ns = Ns Sy 1 Ns | Ns 0 Pq int
309 .It Sy zfs_dio_strict Ns = Ns Sy 0 Ns | Ns 1 Pq int
312 if not page-aligned instead of silently falling back to uncached I/O.
314 .It Sy zfs_history_output_max Ns = Ns Sy 1048576 Ns B Po 1 MiB Pc Pq u64
315 When attempting to log an output nvlist of an ioctl in the on-disk history,
320 .Fn zfs_ioc_channel_program Pq cf. Xr zfs-program 8 .
322 .It Sy zfs_keep_log_spacemaps_at_export Ns = Ns Sy 0 Ns | Ns 1 Pq int
325 .It Sy zfs_metaslab_segment_weight_enabled Ns = Ns Sy 1 Ns | Ns 0 Pq int
326 Enable/disable segment-based metaslab selection.
328 .It Sy zfs_metaslab_switch_threshold Ns = Ns Sy 2 Pq int
329 When using segment-based metaslab selection, continue allocating
333 .It Sy metaslab_debug_load Ns = Ns Sy 0 Ns | Ns 1 Pq int
336 .It Sy metaslab_debug_unload Ns = Ns Sy 0 Ns | Ns 1 Pq int
339 .It Sy metaslab_fragmentation_factor_enabled Ns = Ns Sy 1 Ns | Ns 0 Pq int
342 .It Sy metaslab_df_max_search Ns = Ns Sy 16777216 Ns B Po 16 MiB Pc Pq uint
348 becomes the performance limiting factor on high-performance storage.
355 .Sy ashift Ns = Ns Sy 9
362 .Em 16*1024 Pq with Sy ashift Ns = Ns Sy 9
364 .Em 2*1024 Pq with Sy ashift Ns = Ns Sy 12 .
366 .It Sy metaslab_df_use_largest_segment Ns = Ns Sy 0 Ns | Ns 1 Pq int
374 .It Sy zfs_metaslab_max_size_cache_sec Ns = Ns Sy 3600 Ns s Po 1 hour Pc Pq u64
384 .It Sy zfs_metaslab_mem_limit Ns = Ns Sy 25 Ns % Pq uint
391 .It Sy zfs_metaslab_try_hard_before_gang Ns = Ns Sy 0 Ns | Ns 1 Pq int
392 .Bl -item -compact
400 If that fails then we will have a multi-layer gang block.
403 .Bl -item -compact
413 If that fails then we will have a multi-layer gang block.
416 .It Sy zfs_metaslab_find_max_tries Ns = Ns Sy 100 Pq uint
422 .It Sy zfs_vdev_default_ms_count Ns = Ns Sy 200 Pq uint
423 When a vdev is added, target this number of metaslabs per top-level vdev.
425 .It Sy zfs_vdev_default_ms_shift Ns = Ns Sy 29 Po 512 MiB Pc Pq uint
428 .It Sy zfs_vdev_max_ms_shift Ns = Ns Sy 34 Po 16 GiB Pc Pq uint
431 .It Sy zfs_vdev_max_auto_ashift Ns = Ns Sy 14 Pq uint
432 Maximum ashift used when optimizing for logical \[->] physical sector size on
434 top-level vdevs.
439 .It Sy zfs_vdev_direct_write_verify Ns = Ns Sy Linux 1 | FreeBSD 0 Pq uint
440 If non-zero, then a Direct I/O write's checksum will be verified every
459 .It Sy zfs_vdev_min_auto_ashift Ns = Ns Sy ASHIFT_MIN Po 9 Pc Pq uint
460 Minimum ashift used when creating new top-level vdevs.
462 .It Sy zfs_vdev_min_ms_count Ns = Ns Sy 16 Pq uint
463 Minimum number of metaslabs to create in a top-level vdev.
465 .It Sy vdev_validate_skip Ns = Ns Sy 0 Ns | Ns 1 Pq int
470 .It Sy zfs_vdev_ms_count_limit Ns = Ns Sy 131072 Po 128k Pc Pq uint
471 Practical upper limit of total metaslabs per top-level vdev.
473 .It Sy metaslab_preload_enabled Ns = Ns Sy 1 Ns | Ns 0 Pq int
476 .It Sy metaslab_preload_limit Ns = Ns Sy 10 Pq uint
479 .It Sy metaslab_preload_pct Ns = Ns Sy 50 Pq uint
482 .It Sy metaslab_lba_weighting_enabled Ns = Ns Sy 1 Ns | Ns 0 Pq int
487 .It Sy metaslab_unload_delay Ns = Ns Sy 32 Pq uint
494 .It Sy metaslab_unload_delay_ms Ns = Ns Sy 600000 Ns ms Po 10 min Pc Pq uint
501 .It Sy reference_history Ns = Ns Sy 3 Pq uint
504 .It Sy raidz_expand_max_copy_bytes Ns = Ns Sy 160MB Pq ulong
505 Max amount of memory to use for RAID-Z expansion I/O.
508 .It Sy raidz_expand_max_reflow_bytes Ns = Ns Sy 0 Pq ulong
509 For testing, pause RAID-Z expansion when reflow amount reaches this value.
511 .It Sy raidz_io_aggregate_rows Ns = Ns Sy 4 Pq ulong
512 For expanded RAID-Z, aggregate reads that have more rows than this.
514 .It Sy reference_history Ns = Ns Sy 3 Pq int
518 .It Sy reference_tracking_enable Ns = Ns Sy 0 Ns | Ns 1 Pq int
523 .It Sy send_holes_without_birth_time Ns = Ns Sy 1 Ns | Ns 0 Pq int
531 .It Sy spa_config_path Ns = Ns Pa /etc/zfs/zpool.cache Pq charp
534 .It Sy spa_asize_inflation Ns = Ns Sy 24 Pq uint
543 .It Sy spa_load_print_vdev_tree Ns = Ns Sy 0 Ns | Ns 1 Pq int
547 .It Sy spa_load_verify_data Ns = Ns Sy 1 Ns | Ns 0 Pq int
554 If this parameter is unset, the traversal skips non-metadata blocks.
556 import has started to stop or start the traversal of non-metadata blocks.
558 .It Sy spa_load_verify_metadata Ns = Ns Sy 1 Ns | Ns 0 Pq int
568 .It Sy spa_load_verify_shift Ns = Ns Sy 4 Po 1/16th Pc Pq uint
572 .It Sy spa_slop_shift Ns = Ns Sy 5 Po 1/32nd Pc Pq int
578 It also limits the worst-case time to allocate space.
583 .It Sy spa_num_allocators Ns = Ns Sy 4 Pq int
592 .It Sy spa_cpus_per_allocator Ns = Ns Sy 4 Pq int
597 .It Sy spa_upgrade_errlog_limit Ns = Ns Sy 0 Pq uint
598 Limits the number of on-disk error log entries that will be converted to the
604 .It Sy vdev_removal_max_span Ns = Ns Sy 32768 Ns B Po 32 KiB Pc Pq uint
605 During top-level vdev removal, chunks of data are copied from the vdev
615 .It Sy vdev_file_logical_ashift Ns = Ns Sy 9 Po 512 B Pc Pq u64
616 Logical ashift for file-based devices.
618 .It Sy vdev_file_physical_ashift Ns = Ns Sy 9 Po 512 B Pc Pq u64
619 Physical ashift for file-based devices.
621 .It Sy zap_iterate_prefetch Ns = Ns Sy 1 Ns | Ns 0 Pq int
627 .It Sy zap_micro_max_size Ns = Ns Sy 131072 Ns B Po 128 KiB Pc Pq int
635 .It Sy zap_shrink_enabled Ns = Ns Sy 1 Ns | Ns 0 Pq int
638 .It Sy zfetch_min_distance Ns = Ns Sy 4194304 Ns B Po 4 MiB Pc Pq uint
644 prefetch depth didn't cover the read latency or the pool got saturated.
646 .It Sy zfetch_max_distance Ns = Ns Sy 67108864 Ns B Po 64 MiB Pc Pq uint
649 .It Sy zfetch_max_idistance Ns = Ns Sy 67108864 Ns B Po 64 MiB Pc Pq uint
652 .It Sy zfetch_max_reorder Ns = Ns Sy 16777216 Ns B Po 16 MiB Pc Pq uint
659 .It Sy zfetch_max_streams Ns = Ns Sy 8 Pq uint
662 .It Sy zfetch_min_sec_reap Ns = Ns Sy 1 Pq uint
665 .It Sy zfetch_max_sec_reap Ns = Ns Sy 2 Pq uint
668 .It Sy zfs_abd_scatter_enabled Ns = Ns Sy 1 Ns | Ns 0 Pq int
674 .It Sy zfs_abd_scatter_max_order Ns = Ns Sy MAX_ORDER\-1 Pq uint
682 .It Sy zfs_abd_scatter_min_size Ns = Ns Sy 1536 Ns B Po 1.5 KiB Pc Pq uint
683 This is the minimum allocation size that will use scatter (page-based) ABDs.
686 .It Sy zfs_arc_dnode_limit Ns = Ns Sy 0 Ns B Pq u64
688 bytes, try to unpin some of it in response to demand for non-metadata.
694 .It Sy zfs_arc_dnode_limit_percent Ns = Ns Sy 10 Ns % Pq u64
701 .It Sy zfs_arc_dnode_reduce_percent Ns = Ns Sy 10 Ns % Pq u64
702 Percentage of ARC dnodes to try to scan in response to demand for non-metadata
706 .It Sy zfs_arc_average_blocksize Ns = Ns Sy 8192 Ns B Po 8 KiB Pc Pq uint
710 with 8-byte pointers.
714 .It Sy zfs_arc_eviction_pct Ns = Ns Sy 200 Ns % Pq uint
725 .Sy 100 Ns % ,
732 .It Sy zfs_arc_evict_batch_limit Ns = Ns Sy 10 Pq uint
733 Number ARC headers to evict per sub-list before proceeding to another sub-list.
734 This batch-style operation prevents entire sub-lists from being evicted at once
737 .It Sy zfs_arc_evict_threads Ns = Ns Sy 0 Pq int
742 Each thread will process one sub-list at a time,
743 until the eviction target is reached or all sub-lists have been processed.
751 1-4 1
752 5-8 2
753 9-15 3
754 16-31 4
755 32-63 6
756 64-95 8
757 96-127 9
758 128-160 11
759 160-191 12
760 192-223 13
761 224-255 14
771 .It Sy zfs_arc_grow_retry Ns = Ns Sy 0 Ns s Pq uint
777 .No value Pq default Sy 5 Ns s
781 .It Sy zfs_arc_lotsfree_percent Ns = Ns Sy 10 Ns % Pq int
788 .It Sy zfs_arc_max Ns = Ns Sy 0 Ns B Pq u64
794 .Sy all_system_memory No \- Sy 1 GiB
799 .Sy 67108864 Ns B Pq 64 MiB .
807 .It Sy zfs_arc_meta_balance Ns = Ns Sy 500 Pq uint
812 .It Sy zfs_arc_min Ns = Ns Sy 0 Ns B Pq u64
820 .It Sy zfs_arc_min_prefetch_ms Ns = Ns Sy 0 Ns ms Ns Po Ns ≡ Ns 1s Pc Pq uint
823 .It Sy zfs_arc_min_prescient_prefetch_ms Ns = Ns Sy 0 Ns ms Ns Po Ns ≡ Ns 6s Pc Pq uint
828 .It Sy zfs_arc_prune_task_threads Ns = Ns Sy 1 Pq int
835 .It Sy zfs_max_missing_tvds Ns = Ns Sy 0 Pq int
836 Number of missing top-level vdevs which will be allowed during
837 pool import (only in read-only mode).
839 .It Sy zfs_max_nvlist_src_size Ns = Sy 0 Pq u64
849 .Pa zfs-dbgmsg
854 equivalent to a quarter of the user-wired memory limit under
857 .Sy 134217728 Ns B Pq 128 MiB
860 .It Sy zfs_multilist_num_sublists Ns = Ns Sy 0 Pq uint
861 To allow more fine-grained locking, each ARC state contains a series
863 Locking is performed at the level of these "sub-lists".
864 This parameters controls the number of sub-lists per ARC state,
872 .It Sy zfs_arc_overflow_shift Ns = Ns Sy 8 Pq int
893 .It Sy zfs_arc_shrink_shift Ns = Ns Sy 0 Pq uint
898 .It Sy zfs_arc_pc_percent Ns = Ns Sy 0 Ns % Po off Pc Pq uint
916 .It Sy zfs_arc_shrinker_limit Ns = Ns Sy 0 Pq int
932 .It Sy zfs_arc_shrinker_seeks Ns = Ns Sy 2 Pq int
939 .It Sy zfs_arc_sys_free Ns = Ns Sy 0 Ns B Pq u64
944 .It Sy zfs_autoimport_disable Ns = Ns Sy 1 Ns | Ns 0 Pq int
948 .It Sy zfs_checksum_events_per_second Ns = Ns Sy 20 Ns /s Pq uint
954 .It Sy zfs_commit_timeout_pct Ns = Ns Sy 10 Ns % Pq uint
959 latency to avoid significantly impacting the latency of each individual
962 .It Sy zfs_condense_indirect_commit_entry_delay_ms Ns = Ns Sy 0 Ns ms Pq int
967 .It Sy zfs_condense_indirect_obsolete_pct Ns = Ns Sy 25 Ns % Pq uint
974 .It Sy zfs_condense_indirect_vdevs_enable Ns = Ns Sy 1 Ns | Ns 0 Pq int
981 bytes on-disk.
985 .It Sy zfs_condense_max_obsolete_bytes Ns = Ns Sy 1073741824 Ns B Po 1 GiB Pc Pq u64
986 Only attempt to condense indirect vdev mappings if the on-disk size
990 .It Sy zfs_condense_min_mapping_bytes Ns = Ns Sy 131072 Ns B Po 128 KiB Pc Pq u64
994 .It Sy zfs_dbgmsg_enable Ns = Ns Sy 1 Ns | Ns 0 Pq int
1006 .It Sy zfs_dbgmsg_maxsize Ns = Ns Sy 4194304 Ns B Po 4 MiB Pc Pq uint
1009 .It Sy zfs_dbuf_state_index Ns = Ns Sy 0 Pq int
1014 .It Sy zfs_deadman_checktime_ms Ns = Ns Sy 60000 Ns ms Po 1 min Pc Pq u64
1021 .It Sy zfs_deadman_enabled Ns = Ns Sy 1 Ns | Ns 0 Pq int
1036 .It Sy zfs_deadman_events_per_second Ns = Ns Sy 1 Ns /s Pq int
1040 .It Sy zfs_deadman_failmode Ns = Ns Sy wait Pq charp
1043 .Bl -tag -compact -offset 4n -width "continue"
1049 Attempt to recover from a "hung" operation by re-dispatching it
1053 This can be used to facilitate automatic fail-over
1054 to a properly configured fail-over partner.
1057 .It Sy zfs_deadman_synctime_ms Ns = Ns Sy 600000 Ns ms Po 10 min Pc Pq u64
1064 .It Sy zfs_deadman_ziotime_ms Ns = Ns Sy 300000 Ns ms Po 5 min Pc Pq u64
1072 .It Sy zfs_dedup_prefetch Ns = Ns Sy 0 Ns | Ns 1 Pq int
1073 Enable prefetching dedup-ed blocks which are going to be freed.
1075 .It Sy zfs_dedup_log_flush_min_time_ms Ns = Ns Sy 1000 Ns Pq uint
1084 .It Sy zfs_dedup_log_flush_entries_min Ns = Ns Sy 100 Ns Pq uint
1096 .It Sy zfs_dedup_log_flush_entries_max Ns = Ns Sy UINT_MAX Ns Pq uint
1100 .It Sy zfs_dedup_log_flush_txgs Ns = Ns Sy 100 Ns Pq uint
1112 .It Sy zfs_dedup_log_cap Ns = Ns Sy UINT_MAX Ns Pq uint
1120 .It Sy zfs_dedup_log_hard_cap Ns = Ns Sy 0 Ns | Ns 1 Pq uint
1130 Enabling it will reduce worst-case import times, at the cost of increased TXG
1132 .It Sy zfs_dedup_log_flush_flow_rate_txgs Ns = Ns Sy 10 Ns Pq uint
1145 .It Sy zfs_dedup_log_txg_max Ns = Ns Sy 8 Ns Pq uint
1152 .It Sy zfs_dedup_log_mem_max Ns = Ns Sy 0 Ns Pq u64
1155 OpenZFS will spend no more than this much memory on maintaining the in-memory
1164 .It Sy zfs_dedup_log_mem_max_percent Ns = Ns Sy 1 Ns % Pq uint
1172 .It Sy zfs_delay_min_dirty_percent Ns = Ns Sy 60 Ns % Pq uint
1180 .It Sy zfs_delay_scale Ns = Ns Sy 500000 Pq int
1191 .It Sy zfs_dio_write_verify_events_per_second Ns = Ns Sy 20 Ns /s Pq uint
1194 .It Sy zfs_disable_ivset_guid_check Ns = Ns Sy 0 Ns | Ns 1 Pq int
1198 OpenZFS pre-release versions and now have compatibility issues.
1200 .It Sy zfs_key_max_salt_uses Ns = Ns Sy 400000000 Po 4*10^8 Pc Pq ulong
1205 .It Sy zfs_object_mutex_size Ns = Ns Sy 64 Pq uint
1209 are not created per-object and instead a hashtable is used where collisions
1213 .It Sy zfs_slow_io_events_per_second Ns = Ns Sy 20 Ns /s Pq int
1217 .It Sy zfs_unflushed_max_mem_amt Ns = Ns Sy 1073741824 Ns B Po 1 GiB Pc Pq u64
1218 Upper-bound limit for unflushed metadata changes to be held by the
1221 .It Sy zfs_unflushed_max_mem_ppm Ns = Ns Sy 1000 Ns ppm Po 0.1% Pc Pq u64
1225 .It Sy zfs_unflushed_log_block_max Ns = Ns Sy 131072 Po 128k Pc Pq u64
1236 This tunable is important because it involves a trade-off between import
1253 .It Sy zfs_unflushed_log_block_min Ns = Ns Sy 1000 Pq u64
1258 .It Sy zfs_unflushed_log_block_pct Ns = Ns Sy 400 Ns % Pq u64
1263 .It Sy zfs_unflushed_log_txg_max Ns = Ns Sy 1000 Pq u64
1265 It effectively limits maximum number of unflushed per-TXG spacemap logs
1268 .It Sy zfs_unlink_suspend_progress Ns = Ns Sy 0 Ns | Ns 1 Pq uint
1275 .It Sy zfs_delete_blocks Ns = Ns Sy 20480 Pq ulong
1286 .It Sy zfs_dirty_data_max Ns = Pq int
1298 .It Sy zfs_dirty_data_max_max Ns = Pq int
1313 for 32-bit systems.
1315 .It Sy zfs_dirty_data_max_max_percent Ns = Ns Sy 25 Ns % Pq uint
1327 .It Sy zfs_dirty_data_max_percent Ns = Ns Sy 10 Ns % Pq uint
1338 .It Sy zfs_dirty_data_sync_percent Ns = Ns Sy 20 Ns % Pq uint
1344 .It Sy zfs_wrlog_data_max Ns = Pq int
1345 The upper limit of write-transaction ZIL log data size in bytes.
1356 .It Sy zfs_fallocate_reserve_percent Ns = Ns Sy 110 Ns % Pq uint
1357 Since ZFS is a copy-on-write filesystem with snapshots, blocks cannot be
1375 .It Sy zfs_fletcher_4_impl Ns = Ns Sy fastest Pq string
1390 results in the original CPU-based calculation being used.
1396 .It Sy zfs_bclone_enabled Ns = Ns Sy 1 Ns | Ns 0 Pq int
1402 .It Sy zfs_bclone_wait_dirty Ns = Ns Sy 0 Ns | Ns 1 Pq int
1411 .It Sy zfs_blake3_impl Ns = Ns Sy fastest Pq string
1425 .It Sy zfs_free_bpobj_enabled Ns = Ns Sy 1 Ns | Ns 0 Pq int
1428 .It Sy zfs_async_block_max_blocks Ns = Ns Sy UINT64_MAX Po unlimited Pc Pq u64
1431 .It Sy zfs_max_async_dedup_frees Ns = Ns Sy 100000 Po 10^5 Pc Pq u64
1434 .It Sy zfs_vdev_async_read_max_active Ns = Ns Sy 3 Pq uint
1438 .It Sy zfs_vdev_async_read_min_active Ns = Ns Sy 1 Pq uint
1442 .It Sy zfs_vdev_async_write_active_max_dirty_percent Ns = Ns Sy 60 Ns % Pq uint
1450 .It Sy zfs_vdev_async_write_active_min_dirty_percent Ns = Ns Sy 30 Ns % Pq uint
1459 .It Sy zfs_vdev_async_write_max_active Ns = Ns Sy 10 Pq uint
1463 .It Sy zfs_vdev_async_write_min_active Ns = Ns Sy 2 Pq uint
1467 Lower values are associated with better latency on rotational media but poorer
1475 further increasing latency.
1477 .It Sy zfs_vdev_initializing_max_active Ns = Ns Sy 1 Pq uint
1481 .It Sy zfs_vdev_initializing_min_active Ns = Ns Sy 1 Pq uint
1485 .It Sy zfs_vdev_max_active Ns = Ns Sy 1000 Pq uint
1491 .It Sy zfs_vdev_open_timeout_ms Ns = Ns Sy 1000 Pq uint
1498 .It Sy zfs_vdev_rebuild_max_active Ns = Ns Sy 3 Pq uint
1502 .It Sy zfs_vdev_rebuild_min_active Ns = Ns Sy 1 Pq uint
1506 .It Sy zfs_vdev_removal_max_active Ns = Ns Sy 2 Pq uint
1510 .It Sy zfs_vdev_removal_min_active Ns = Ns Sy 1 Pq uint
1514 .It Sy zfs_vdev_scrub_max_active Ns = Ns Sy 2 Pq uint
1518 .It Sy zfs_vdev_scrub_min_active Ns = Ns Sy 1 Pq uint
1522 .It Sy zfs_vdev_sync_read_max_active Ns = Ns Sy 10 Pq uint
1526 .It Sy zfs_vdev_sync_read_min_active Ns = Ns Sy 10 Pq uint
1530 .It Sy zfs_vdev_sync_write_max_active Ns = Ns Sy 10 Pq uint
1534 .It Sy zfs_vdev_sync_write_min_active Ns = Ns Sy 10 Pq uint
1538 .It Sy zfs_vdev_trim_max_active Ns = Ns Sy 2 Pq uint
1542 .It Sy zfs_vdev_trim_min_active Ns = Ns Sy 1 Pq uint
1546 .It Sy zfs_vdev_nia_delay Ns = Ns Sy 5 Pq uint
1547 For non-interactive I/O (scrub, resilver, removal, initialize and rebuild),
1548 the number of concurrently-active I/O operations is limited to
1556 and the number of concurrently-active non-interactive operations is increased to
1560 .It Sy zfs_vdev_nia_credit Ns = Ns Sy 5 Pq uint
1562 random I/O latency reaches several seconds.
1565 .Sy zfs_*_max_active Ns = Sy 1
1567 To prevent non-interactive I/O, like scrub,
1575 .It Sy zfs_vdev_failfast_mask Ns = Ns Sy 1 Pq uint
1577 The following options may be bitwise-ored together:
1588 .It Sy zfs_vdev_disk_max_segs Ns = Ns Sy 0 Pq uint
1595 .It Sy zfs_expire_snapshot Ns = Ns Sy 300 Ns s Pq int
1599 .It Sy zfs_admin_snapshot Ns = Ns Sy 0 Ns | Ns 1 Pq int
1608 .It Sy zfs_snapshot_no_setuid Ns = Ns Sy 0 Ns | Ns 1 Pq int
1617 .It Sy zfs_flags Ns = Ns Sy 0 Pq int
1619 The following flags may be bitwise-ored together:
1632 256 ZFS_DEBUG_METASLAB_VERIFY Verify space accounting on disk matches in-memory \fBrange_trees\fP.
1639 16384 ZFS_DEBUG_BRT Enable BRT-related debugging messages.
1641 65536 ZFS_DEBUG_DDT Enable DDT-related debugging messages.
1645 .It Sy zfs_btree_verify_intensity Ns = Ns Sy 0 Pq uint
1661 .It Sy zfs_free_leak_on_eio Ns = Ns Sy 0 Ns | Ns 1 Pq int
1669 from the error-encountering filesystem is "temporarily leaked".
1683 .Bl -enum -compact -offset 4n -width "1."
1686 e.g. due to a top-level vdev going offline), or
1702 .It Sy zfs_free_min_time_ms Ns = Ns Sy 1000 Ns ms Po 1s Pc Pq uint
1710 .It Sy zfs_obsolete_min_time_ms Ns = Ns Sy 500 Ns ms Pq uint
1715 .It Sy zfs_immediate_write_sz Ns = Ns Sy 32768 Ns B Po 32 KiB Pc Pq s64
1718 .Sy logbias Ns = Ns Sy throughput
1721 .It Sy zfs_initialize_value Ns = Ns Sy 16045690984833335022 Po 0xDEADBEEFDEADBEEE Pc Pq u64
1723 .Xr zpool-initialize 8 .
1725 .It Sy zfs_initialize_chunk_size Ns = Ns Sy 1048576 Ns B Po 1 MiB Pc Pq u64
1727 .Xr zpool-initialize 8 .
1730 .It Sy zfs_livelist_max_entries Ns = Ns Sy 500000 Po 5*10^5 Pc Pq u64
1731 The threshold size (in block pointers) at which we create a new sub-livelist.
1735 .It Sy zfs_livelist_min_percent_shared Ns = Ns Sy 75 Ns % Pq int
1742 .It Sy zfs_livelist_condense_new_alloc Ns = Ns Sy 0 Pq int
1747 .It Sy zfs_livelist_condense_sync_cancel Ns = Ns Sy 0 Pq int
1752 .It Sy zfs_livelist_condense_sync_pause Ns = Ns Sy 0 Ns | Ns 1 Pq int
1758 .It Sy zfs_livelist_condense_zthr_cancel Ns = Ns Sy 0 Pq int
1763 .It Sy zfs_livelist_condense_zthr_pause Ns = Ns Sy 0 Ns | Ns 1 Pq int
1769 .It Sy zfs_lua_max_instrlimit Ns = Ns Sy 100000000 Po 10^8 Pc Pq u64
1773 .It Sy zfs_lua_max_memlimit Ns = Ns Sy 104857600 Po 100 MiB Pc Pq u64
1777 .It Sy zfs_max_dataset_nesting Ns = Ns Sy 50 Pq int
1782 .It Sy zfs_max_log_walking Ns = Ns Sy 5 Pq u64
1786 .It Sy zfs_max_logsm_summary_length Ns = Ns Sy 10 Pq u64
1789 .It Sy zfs_max_recordsize Ns = Ns Sy 16777216 Po 16 MiB Pc Pq uint
1794 Additionally, very large blocks can have an impact on I/O latency,
1806 .It Sy zfs_allow_redacted_dataset_mount Ns = Ns Sy 0 Ns | Ns 1 Pq int
1810 .It Sy zfs_min_metaslabs_to_flush Ns = Ns Sy 1 Pq u64
1813 .It Sy zfs_metaslab_fragmentation_threshold Ns = Ns Sy 77 Ns % Pq uint
1819 .It Sy zfs_mg_fragmentation_threshold Ns = Ns Sy 95 Ns % Pq uint
1827 .It Sy zfs_mg_noalloc_threshold Ns = Ns Sy 0 Ns % Pq uint
1843 Setting the threshold to a non-zero percentage will stop allocations
1850 .It Sy zfs_ddt_data_is_special Ns = Ns Sy 1 Ns | Ns 0 Pq int
1853 .It Sy zfs_user_indirect_is_special Ns = Ns Sy 1 Ns | Ns 0 Pq int
1857 .It Sy zfs_multihost_history Ns = Ns Sy 0 Pq uint
1860 .Pa /proc/spl/kstat/zfs/ Ns Ao Ar pool Ac Ns Pa /multihost .
1862 .It Sy zfs_multihost_interval Ns = Ns Sy 1000 Ns ms Po 1 s Pc Pq u64
1870 .Sy zfs_multihost_interval No / Sy leaf-vdevs .
1878 .It Sy zfs_multihost_import_intervals Ns = Ns Sy 20 Pq uint
1900 .It Sy zfs_multihost_fail_intervals Ns = Ns Sy 10 Pq uint
1917 due to normal, small I/O latency variations.
1919 .It Sy zfs_no_scrub_io Ns = Ns Sy 0 Ns | Ns 1 Pq int
1924 .It Sy zfs_no_scrub_prefetch Ns = Ns Sy 0 Ns | Ns 1 Pq int
1927 .It Sy zfs_nocacheflush Ns = Ns Sy 0 Ns | Ns 1 Pq int
1930 if a volatile out-of-order write cache is enabled.
1932 .It Sy zfs_nopwrite_enabled Ns = Ns Sy 1 Ns | Ns 0 Pq int
1933 Allow no-operation writes.
1937 .It Sy zfs_dmu_offset_next_sync Ns = Ns Sy 1 Ns | Ns 0 Pq int
1944 .It Sy zfs_pd_bytes_max Ns = Ns Sy 52428800 Ns B Po 50 MiB Pc Pq int
1949 .It Sy zfs_traverse_indirect_prefetch_limit Ns = Ns Sy 32 Pq uint
1950 The number of blocks pointed by indirect (non-L0) block which should be
1955 .It Sy zfs_per_txg_dirty_frees_percent Ns = Ns Sy 30 Ns % Pq u64
1960 .It Sy zfs_prefetch_disable Ns = Ns Sy 0 Ns | Ns 1 Pq int
1968 .It Sy zfs_qat_checksum_disable Ns = Ns Sy 0 Ns | Ns 1 Pq int
1973 .It Sy zfs_qat_compress_disable Ns = Ns Sy 0 Ns | Ns 1 Pq int
1978 .It Sy zfs_qat_encrypt_disable Ns = Ns Sy 0 Ns | Ns 1 Pq int
1979 Disable QAT hardware acceleration for AES-GCM encryption.
1983 .It Sy zfs_vnops_read_chunk_size Ns = Ns Sy 33554432 Ns B Po 32 MiB Pc Pq u64
1986 .It Sy zfs_read_history Ns = Ns Sy 0 Pq uint
1988 .Pa /proc/spl/kstat/zfs/ Ns Ao Ar pool Ac Ns Pa /reads .
1990 .It Sy zfs_read_history_hits Ns = Ns Sy 0 Ns | Ns 1 Pq int
1993 .It Sy zfs_rebuild_max_segment Ns = Ns Sy 1048576 Ns B Po 1 MiB Pc Pq u64
1995 top-level vdev.
1997 .It Sy zfs_rebuild_scrub_enabled Ns = Ns Sy 1 Ns | Ns 0 Pq int
2003 .It Sy zfs_rebuild_vdev_limit Ns = Ns Sy 67108864 Ns B Po 64 MiB Pc Pq u64
2007 .It Sy zfs_reconstruct_indirect_combinations_max Ns = Ns Sy 4096 Pq int
2017 .It Sy zfs_recover Ns = Ns Sy 0 Ns | Ns 1 Pq int
2022 .It Sy zfs_removal_ignore_errors Ns = Ns Sy 0 Ns | Ns 1 Pq int
2031 .It Sy zfs_removal_suspend_progress Ns = Ns Sy 0 Ns | Ns 1 Pq uint
2035 .It Sy zfs_remove_max_segment Ns = Ns Sy 16777216 Ns B Po 16 MiB Pc Pq uint
2042 .It Sy zfs_resilver_disable_defer Ns = Ns Sy 0 Ns | Ns 1 Pq int
2048 .It Sy zfs_resilver_defer_percent Ns = Ns Sy 10 Ns % Pq uint
2055 .It Sy zfs_resilver_min_time_ms Ns = Ns Sy 3000 Ns ms Po 3 s Pc Pq uint
2060 .It Sy zfs_scan_ignore_errors Ns = Ns Sy 0 Ns | Ns 1 Pq int
2066 .It Sy zfs_scrub_after_expand Ns = Ns Sy 1 Ns | Ns 0 Pq int
2072 .It Sy zfs_scrub_min_time_ms Ns = Ns Sy 1000 Ns ms Po 1 s Pc Pq uint
2077 .It Sy zfs_scrub_error_blocks_per_txg Ns = Ns Sy 4096 Pq uint
2080 .It Sy zfs_scan_checkpoint_intval Ns = Ns Sy 7200 Ns s Po 2 hour Pc Pq uint
2085 .It Sy zfs_scan_fill_weight Ns = Ns Sy 3 Pq uint
2094 .It Sy zfs_scan_issue_strategy Ns = Ns Sy 0 Pq uint
2096 .Bl -tag -compact -offset 4n -width "a"
2103 The largest mostly-contiguous chunk of found data will be verified first.
2111 .It Sy zfs_scan_legacy Ns = Ns Sy 0 Ns | Ns 1 Pq int
2118 .It Sy zfs_scan_max_ext_gap Ns = Ns Sy 2097152 Ns B Po 2 MiB Pc Pq int
2124 .It Sy zfs_scan_mem_lim_fact Ns = Ns Sy 20 Ns ^-1 Pq uint
2131 .It Sy zfs_scan_mem_lim_soft_fact Ns = Ns Sy 20 Ns ^-1 Pq uint
2140 .It Sy zfs_scan_report_txgs Ns = Ns Sy 0 Ns | Ns 1 Pq uint
2147 .It Sy zfs_scan_strict_mem_lim Ns = Ns Sy 0 Ns | Ns 1 Pq int
2151 .It Sy zfs_scan_suspend_progress Ns = Ns Sy 0 Ns | Ns 1 Pq int
2155 .It Sy zfs_scan_vdev_limit Ns = Ns Sy 16777216 Ns B Po 16 MiB Pc Pq int
2159 .It Sy zfs_send_corrupt_data Ns = Ns Sy 0 Ns | Ns 1 Pq int
2162 .It Sy zfs_send_unmodified_spill_blocks Ns = Ns Sy 1 Ns | Ns 0 Pq int
2166 Including unmodified copies of the spill blocks creates a backwards-compatible
2169 .It Sy zfs_send_no_prefetch_queue_ff Ns = Ns Sy 20 Ns ^\-1 Pq uint
2175 .It Sy zfs_send_no_prefetch_queue_length Ns = Ns Sy 1048576 Ns B Po 1 MiB Pc Pq uint
2177 .Nm zfs Cm send Ns 's
2180 .It Sy zfs_send_queue_ff Ns = Ns Sy 20 Ns ^\-1 Pq uint
2186 .It Sy zfs_send_queue_length Ns = Ns Sy 16777216 Ns B Po 16 MiB Pc Pq uint
2191 .It Sy zfs_recv_queue_ff Ns = Ns Sy 20 Ns ^\-1 Pq uint
2197 .It Sy zfs_recv_queue_length Ns = Ns Sy 16777216 Ns B Po 16 MiB Pc Pq uint
2203 .It Sy zfs_recv_write_batch_size Ns = Ns Sy 1048576 Ns B Po 1 MiB Pc Pq uint
2212 .It Sy zfs_recv_best_effort_corrective Ns = Ns Sy 0 Pq int
2213 When this variable is set to non-zero a corrective receive:
2214 .Bl -enum -compact -offset 4n -width "1."
2223 .It Sy zfs_override_estimate_recordsize Ns = Ns Sy 0 Ns | Ns 1 Pq uint
2232 .It Sy zfs_sync_pass_deferred_free Ns = Ns Sy 2 Pq uint
2236 .It Sy zfs_spa_discard_memory_limit Ns = Ns Sy 16777216 Ns B Po 16 MiB Pc Pq int
2240 .It Sy zfs_special_class_metadata_reserve_pct Ns = Ns Sy 25 Ns % Pq uint
2247 .It Sy zfs_sync_pass_dont_compress Ns = Ns Sy 8 Pq uint
2256 many blocks' size will change, and thus we have to re-allocate
2269 .It Sy zfs_sync_pass_rewrite Ns = Ns Sy 2 Pq uint
2272 .It Sy zfs_trim_extent_bytes_max Ns = Ns Sy 134217728 Ns B Po 128 MiB Pc Pq uint
2277 .It Sy zfs_trim_extent_bytes_min Ns = Ns Sy 32768 Ns B Po 32 KiB Pc Pq uint
2284 .It Sy zfs_trim_metaslab_skip Ns = Ns Sy 0 Ns | Ns 1 Pq uint
2286 This option is useful for pools constructed from large thinly-provisioned
2294 .It Sy zfs_trim_queue_limit Ns = Ns Sy 10 Pq uint
2299 .It Sy zfs_trim_txg_batch Ns = Ns Sy 32 Pq uint
2302 This setting represents a trade-off between issuing larger,
2314 .It Sy zfs_txg_history Ns = Ns Sy 100 Pq uint
2316 .Pa /proc/spl/kstat/zfs/ Ns Ao Ar pool Ac Ns Pa /TXGs .
2318 .It Sy zfs_txg_timeout Ns = Ns Sy 5 Ns s Pq uint
2322 .It Sy zfs_vdev_aggregation_limit Ns = Ns Sy 1048576 Ns B Po 1 MiB Pc Pq uint
2325 .It Sy zfs_vdev_aggregation_limit_non_rotating Ns = Ns Sy 131072 Ns B Po 128 KiB Pc Pq uint
2326 Max vdev I/O aggregation size for non-rotating media.
2328 .It Sy zfs_vdev_mirror_rotating_inc Ns = Ns Sy 0 Pq int
2334 .It Sy zfs_vdev_mirror_rotating_seek_inc Ns = Ns Sy 5 Pq int
2342 .It Sy zfs_vdev_mirror_rotating_seek_offset Ns = Ns Sy 1048576 Ns B Po 1 MiB Pc Pq int
2347 .It Sy zfs_vdev_mirror_non_rotating_inc Ns = Ns Sy 0 Pq int
2349 the purpose of selecting the least busy mirror member on non-rotational vdevs
2352 .It Sy zfs_vdev_mirror_non_rotating_seek_inc Ns = Ns Sy 1 Pq int
2361 .It Sy zfs_vdev_read_gap_limit Ns = Ns Sy 32768 Ns B Po 32 KiB Pc Pq uint
2362 Aggregate read I/O operations if the on-disk gap between them is within this
2365 .It Sy zfs_vdev_write_gap_limit Ns = Ns Sy 4096 Ns B Po 4 KiB Pc Pq uint
2366 Aggregate write I/O operations if the on-disk gap between them is within this
2369 .It Sy zfs_vdev_raidz_impl Ns = Ns Sy fastest Pq string
2372 Variants that don't depend on CPU-specific features
2385 fastest selected by built-in benchmark
2388 sse2 SSE2 instruction set 64-bit x86
2389 ssse3 SSSE3 instruction set 64-bit x86
2390 avx2 AVX2 instruction set 64-bit x86
2391 avx512f AVX512F instruction set 64-bit x86
2392 avx512bw AVX512F & AVX512BW instruction sets 64-bit x86
2393 aarch64_neon NEON Aarch64/64-bit ARMv8
2394 aarch64_neonx2 NEON with more unrolling Aarch64/64-bit ARMv8
2398 .It Sy zfs_zevent_len_max Ns = Ns Sy 512 Pq uint
2401 .Xr zpool-events 8 .
2403 .It Sy zfs_zevent_retain_max Ns = Ns Sy 2000 Pq int
2409 .It Sy zfs_zevent_retain_expire_secs Ns = Ns Sy 900 Ns s Po 15 min Pc Pq int
2412 .It Sy zfs_zil_clean_taskq_maxalloc Ns = Ns Sy 1048576 Pq int
2417 .It Sy zfs_zil_clean_taskq_minalloc Ns = Ns Sy 1024 Pq int
2418 The number of taskq entries that are pre-populated when the taskq is first
2421 .It Sy zfs_zil_clean_taskq_nthr_pct Ns = Ns Sy 100 Ns % Pq int
2428 .It Sy zil_maxblocksize Ns = Ns Sy 131072 Ns B Po 128 KiB Pc Pq uint
2434 .It Sy zil_maxcopied Ns = Ns Sy 7680 Ns B Po 7.5 KiB Pc Pq uint
2437 space efficiency vs additional range lock/unlock.
2439 .It Sy zil_nocacheflush Ns = Ns Sy 0 Ns | Ns 1 Pq int
2443 if a volatile out-of-order write cache is enabled.
2445 .It Sy zil_replay_disable Ns = Ns Sy 0 Ns | Ns 1 Pq int
2449 .It Sy zil_slog_bulk Ns = Ns Sy 67108864 Ns B Po 64 MiB Pc Pq u64
2454 .It Sy zfs_zil_saxattr Ns = Ns Sy 1 Ns | Ns 0 Pq int
2456 .Sy xattr Ns = Ns Sy sa
2464 .It Sy zfs_embedded_slog_min_ms Ns = Ns Sy 64 Pq uint
2465 Usually, one metaslab from each normal-class vdev is dedicated for use by
2473 .It Sy zstd_earlyabort_pass Ns = Ns Sy 1 Pq uint
2475 using LZ4 and zstd-1 passes is enabled.
2477 .It Sy zstd_abort_size Ns = Ns Sy 131072 Pq uint
2481 .It Sy zio_deadman_log_all Ns = Ns Sy 0 Ns | Ns 1 Pq int
2482 If non-zero, the zio deadman will produce debugging messages
2490 .It Sy zio_slow_io_ms Ns = Ns Sy 30000 Ns ms Po 30 s Pc Pq int
2497 .It Sy zio_dva_throttle_enabled Ns = Ns Sy 1 Ns | Ns 0 Pq int
2501 .It Sy zfs_xattr_compat Ns = Ns 0 Ns | Ns 1 Pq int
2525 .It Sy zio_requeue_io_start_cut_in_line Ns = Ns Sy 0 Ns | Ns 1 Pq int
2528 .It Sy zio_taskq_batch_pct Ns = Ns Sy 80 Ns % Pq uint
2537 latency issues and inconsistent application performance,
2541 .It Sy zio_taskq_batch_tpq Ns = Ns Sy 0 Pq uint
2544 while lower reduce lock contention.
2549 generate a system-dependent value close to 6 threads per taskq.
2552 .It Sy zio_taskq_write_tpq Ns = Ns Sy 16 Pq uint
2558 .It Sy zio_taskq_read Ns = Ns Sy fixed,1,8 null scale null Pq charp
2564 .It Sy zio_taskq_write Ns = Ns Sy sync null scale null Pq charp
2570 .It Sy zvol_inhibit_dev Ns = Ns Sy 0 Ns | Ns 1 Pq uint
2575 .It Sy zvol_major Ns = Ns Sy 230 Pq uint
2578 .It Sy zvol_max_discard_blocks Ns = Ns Sy 16384 Pq long
2584 .It Sy zvol_prefetch_bytes Ns = Ns Sy 131072 Ns B Po 128 KiB Pc Pq uint
2592 .It Sy zvol_request_sync Ns = Ns Sy 0 Ns | Ns 1 Pq uint
2602 .Pq Li blk-mq .
2604 .It Sy zvol_num_taskqs Ns = Ns Sy 0 Pq uint
2611 .It Sy zvol_threads Ns = Ns Sy 0 Pq uint
2619 .It Sy zvol_blk_mq_threads Ns = Ns Sy 0 Pq uint
2622 .Li blk-mq
2630 .It Sy zvol_use_blk_mq Ns = Ns Sy 0 Ns | Ns 1 Pq uint
2634 .Li blk-mq
2642 .Li blk-mq
2645 .It Sy zvol_blk_mq_blocks_per_thread Ns = Ns Sy 8 Pq uint
2649 .Sy volblocksize Ns -sized blocks per zvol thread.
2657 .Li blk-mq
2660 .It Sy zvol_blk_mq_queue_depth Ns = Ns Sy 0 Pq uint
2662 .Li blk-mq
2665 .Li blk-mq
2673 .Dv BLKDEV_MAX_RQ Ns / Ns Dv BLKDEV_DEFAULT_RQ
2676 .It Sy zvol_volmode Ns = Ns Sy 1 Pq uint
2678 .Sy volmode Ns = Ns Sy default :
2679 .Bl -tag -compact -offset 4n -width "a"
2688 .It Sy zvol_enforce_quotas Ns = Ns Sy 0 Ns | Ns 1 Pq uint
2703 Note that the sum of the per-queue minima must not exceed the aggregate maximum.
2704 If the sum of the per-queue maxima exceeds the aggregate maximum,
2708 regardless of whether all per-queue minima have been met.
2711 concurrent operations, but latency typically suffers.
2729 .Sy max_active Ns s
2730 will lead to lower latency of synchronous operations.
2732 .Sy max_active Ns s
2736 .Sy max_active Ns s
2741 but reads and writes to have higher latency and lower throughput.
2753 Since both throughput and latency typically increase with the number of
2762 follows a piece-wise linear function defined by a few adjustable points:
2763 .Bd -literal
2764 | o---------| <-- \fBzfs_vdev_async_write_max_active\fP
2771 |-------o | | <-- \fBzfs_vdev_async_write_min_active\fP
2775 | `-- \fBzfs_vdev_async_write_active_max_dirty_percent\fP
2776 `--------- \fBzfs_vdev_async_write_active_min_dirty_percent\fP
2812 .D1 min_time = min( Ns Sy zfs_delay_scale No \(mu Po Sy dirty No \- Sy min Pc / Po Sy max No \- Sy …
2825 .Bd -literal
2827 10ms +-------------------------------------------------------------*+
2846 | \fBzfs_delay_scale\fP ----------> ******** |
2847 0 +-------------------------------------*********----------------+
2848 0% <- \fBzfs_dirty_data_max\fP -> 100%
2864 .Bd -literal
2866 100ms +-------------------------------------------------------------++
2875 + \fBzfs_delay_scale\fP ----------> ***** +
2886 +--------------------------------------------------------------+
2887 0% <- \fBzfs_dirty_data_max\fP -> 100%
2894 for the I/O scheduler to reach optimal throughput on the back-end storage,