vsync Basic readv(2) or writev(2) IO.
+ psyncv Basic preadv(2) or pwritev(2) IO.
+
libaio Linux native asynchronous io. Note that Linux
may only support queued behaviour with
non-buffered IO (set direct=1 or buffered=0).
random_distribution=zipf:1.2 as the option. If a non-uniform
model is used, fio will disable use of the random map.
+percentage_random=int For a random workload, set how big a percentage should
+ be random. This defaults to 100%, in which case the workload
+ is fully random. It can be set from anywhere from 0 to 100.
+ Setting it to 0 would make the workload fully sequential. Any
+ setting in between will result in a random mix of sequential
+ and random IO, at the given percentages.
+
+percentage_sequential=int See percentage_random. It is guaranteed that
+ they add up to 100. The later setting has priority, each
+ will adjust the other.
+
norandommap Normally fio will cover every block of the file when doing
random IO. If this option is given, fio will just get a
new random offset without looking at past io history. This
to sleeping for the rest of the period specified by
thinktime.
-thinktime_blocks
+thinktime_blocks=int
Only valid if thinktime is set - control how many blocks
to issue, before waiting 'thinktime' usecs. If not set,
defaults to 1 which will make fio wait 'thinktime' usecs
- after every block.
+ after every block. This effectively makes any queue depth
+ setting redundant, since no more than 1 IO will be queued
+ before we have to complete it and do our thinktime. In
+ other words, this setting effectively caps the queue depth
+ if the latter is larger.
rate=int Cap the bandwidth used by this job. The number is in bytes/sec,
the normal suffix rules apply. You can use rate=500k to limit
write_lat_log=foo
- The actual log names will be foo_slat.log, foo_slat.log,
+ The actual log names will be foo_slat.log, foo_clat.log,
and foo_lat.log. This helps fio_generate_plot fine the logs
automatically.
lockmem=int Pin down the specified amount of memory with mlock(2). Can
potentially be used instead of removing memory or booting
with less memory to simulate a smaller amount of memory.
+ The amount specified is per worker.
exec_prerun=str Before running this job, issue the command specified
through system(3).
It is also possible to get fio to dump the current output while it is
running, without terminating the job. To do that, send fio the USR1 signal.
+You can also get regularly timed dumps by using the --status-interval
+parameter, or by creating a file in /tmp named fio-dump-status. If fio
+sees this file, it will unlink it and dump the current output status.
7.0 Terse output
9.0 CPU idleness profiling
-
+--------------------------
In some cases, we want to understand CPU overhead in a test. For example,
we test patches for the specific goodness of whether they reduce CPU usage.
fio implements a balloon approach to create a thread per CPU that runs at