]> granicus.if.org Git - zfs/commitdiff
Make metaslab_aliquot a module parameter.
authorEtienne Dechamps <etienne@edechamps.fr>
Sun, 10 May 2015 15:40:20 +0000 (16:40 +0100)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Mon, 22 Jun 2015 21:19:38 +0000 (14:19 -0700)
This seems generally useful. metaslab_aliquot is the ZFS allocation
granularity, which is roughly equivalent to what is called the stripe
size in traditional RAID arrays. It seems relevant to performance
tuning.

Signed-off-by: Etienne Dechamps <etienne@edechamps.fr>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
man/man5/zfs-module-parameters.5
module/zfs/metaslab.c

index 250adc9efa2b6d7019cf7dc5b96edaae24380c99..14c7fb81ad37d9093bda1560b459b401e1f4e927 100644 (file)
@@ -134,6 +134,20 @@ Max write bytes per interval
 Default value: \fB8,388,608\fR.
 .RE
 
+.sp
+.ne 2
+.na
+\fBmetaslab_aliquot\fR (ulong)
+.ad
+.RS 12n
+Metaslab granularity, in bytes. This is roughly similar to what would be
+referred to as the "stripe size" in traditional RAID arrays. In normal
+operation, ZFS will try to write this amount of data to a top-level vdev
+before moving on to the next one.
+.sp
+Default value: \fB524,288\fR.
+.RE
+
 .sp
 .ne 2
 .na
index 15859908f00710d14cfefc90f55e92f7dcea5067..3b556b6dbfae17c04a565408de08849d8ee83e6a 100644 (file)
@@ -59,7 +59,7 @@
  * operation, we will try to write this amount of data to a top-level vdev
  * before moving on to the next one.
  */
-uint64_t metaslab_aliquot = 512ULL << 10;
+unsigned long metaslab_aliquot = 512 << 10;
 
 uint64_t metaslab_gang_bang = SPA_MAXBLOCKSIZE + 1;    /* force gang blocks */
 
@@ -2707,6 +2707,7 @@ metaslab_check_free(spa_t *spa, const blkptr_t *bp)
 }
 
 #if defined(_KERNEL) && defined(HAVE_SPL)
+module_param(metaslab_aliquot, ulong, 0644);
 module_param(metaslab_debug_load, int, 0644);
 module_param(metaslab_debug_unload, int, 0644);
 module_param(metaslab_preload_enabled, int, 0644);
@@ -2717,6 +2718,8 @@ module_param(metaslab_fragmentation_factor_enabled, int, 0644);
 module_param(metaslab_lba_weighting_enabled, int, 0644);
 module_param(metaslab_bias_enabled, int, 0644);
 
+MODULE_PARM_DESC(metaslab_aliquot,
+       "allocation granularity (a.k.a. stripe size)");
 MODULE_PARM_DESC(metaslab_debug_load,
        "load all metaslabs when pool is first opened");
 MODULE_PARM_DESC(metaslab_debug_unload,