Merge branch 'zipf-pareto-lock' of https://github.com/aclamk/fio
[fio.git] / HOWTO
diff --git a/HOWTO b/HOWTO
index d663166d3a300e7aa6093d48072f8f6227f9965c..372f268f55853efd7d6c10507e5f34e75d97cdf3 100644 (file)
--- a/HOWTO
+++ b/HOWTO
@@ -1361,7 +1361,7 @@ I/O type
        limit reads or writes to a certain rate.  If that is the case, then the
        distribution may be skewed. Default: 50.
 
-.. option:: random_distribution=str:float[,str:float][,str:float]
+.. option:: random_distribution=str:float[:float][,str:float][,str:float]
 
        By default, fio will use a completely uniform random distribution when asked
        to perform random I/O. Sometimes it is useful to skew the distribution in
@@ -1396,6 +1396,14 @@ I/O type
        map. For the **normal** distribution, a normal (Gaussian) deviation is
        supplied as a value between 0 and 100.
 
+       The second, optional float is allowed for **pareto**, **zipf** and **normal** distributions.
+       It allows to set base of distribution in non-default place, giving more control
+       over most probable outcome. This value is in range [0-1] which maps linearly to
+       range of possible random values.
+       Defaults are: random for **pareto** and **zipf**, and 0.5 for **normal**.
+       If you wanted to use **zipf** with a `theta` of 1.2 centered on 1/4 of allowed value range,
+       you would use ``random_distibution=zipf:1.2:0.25``.
+
        For a **zoned** distribution, fio supports specifying percentages of I/O
        access that should fall within what range of the file or device. For
        example, given a criteria of:
@@ -1912,12 +1920,14 @@ I/O engine
 
                **cpuio**
                        Doesn't transfer any data, but burns CPU cycles according to the
-                       :option:`cpuload` and :option:`cpuchunks` options. Setting
-                       :option:`cpuload`\=85 will cause that job to do nothing but burn 85%
+                       :option:`cpuload`, :option:`cpuchunks` and :option:`cpumode` options.
+                       Setting :option:`cpuload`\=85 will cause that job to do nothing but burn 85%
                        of the CPU. In case of SMP machines, use :option:`numjobs`\=<nr_of_cpu>
                        to get desired CPU usage, as the cpuload only loads a
                        single CPU at the desired rate. A job never finishes unless there is
                        at least one non-cpuio job.
+                       Setting :option:`cpumode`\=qsort replace the default noop instructions loop
+                       by a qsort algorithm to consume more energy.
 
                **rdma**
                        The RDMA I/O engine supports both RDMA memory semantics