[PATCH] fio: add 'directory' and 'numjobs' options
[disktools.git] / README.fio
CommitLineData
e709787c
JA
1fio
2---
3
4fio is a tool that will spawn a number of thread doing a particular
5type of io action as specified by the user. fio takes a number of
6global parameters, each inherited by the thread unless otherwise
7parameters given to them overriding that setting is given.
8
9Options
10-------
11
12$ fio
13 -s IO is sequential
86184d14 14 -b block size in KiB for each io
e709787c 15 -t <sec> Runtime in seconds
e709787c 16 -r For random io, sequence must be repeatable
02bdd9ba 17 -R <on> If one thread fails to meet rate, quit all
e709787c 18 -o <on> Use direct IO is 1, buffered if 0
a0a9b35b
JA
19 -l Generate per-job latency logs
20 -w Generate per-job bandwidth logs
7dd1389e 21 -f <file> Read <file> for job descriptions
e709787c 22
e709787c
JA
23The <jobs> format is as follows:
24
fe74f555 25 directory=x Use 'x' as the top level directory for storing files
e709787c
JA
26 rw=0/1 0 is read, 1 is write
27 prio=x Run io at prio X, 0-7 is the kernel allowed range
28 prioclass=x Run io at prio class X
29 file=foo Do the io to file foo
8c033f93 30 bs=x Thread blocksize is x bytes
7889f07b 31 bsrange=x-y Mix thread block sizes randomly between x and y
e709787c 32 direct=x 1 for direct IO, 0 for buffered IO
e97712ed 33 thinktime=x "Think" x usec after each io
e709787c
JA
34 random IO is randomized
35 sequential IO is sequential
86184d14 36 rate=x Throttle rate to x KiB/sec
4240cfa1
JA
37 ratemin=x Quit if rate of x KiB/sec can't be met
38 ratecycle=x ratemin averaged over x msecs
18e0b78c 39 cpumask=x Allow job to run on CPUs defined by mask
4240cfa1 40 fsync=x If writing, fsync after every x blocks have been written
fc24389f 41 startdelay=x Start this thread x seconds after startup
67903a2e 42 timeout=x Terminate x seconds after startup
43000118
JA
43 aio Use Linux async io
44 aio_depth=x Allow x iocbs in flight
02983297
JA
45 size=x Set file size to x bytes (x string can include k/m/g)
46 offset=x Start io at offset x (x string can include k/m/g)
b95799ca 47 invalidate=x Invalidate page cache for file prior to doing io
74b4b5fb 48 sync=x Use sync writes if x and writing
99c6704f
JA
49 mem=x If x == malloc, use malloc for buffers. If x == shm,
50 use shm for buffers.
98dd52d6 51 exitall When one thread quits, terminate the others
1d035750 52 bwavgtime=x Average bandwidth stats over x msec
b6794fbf
JA
53 create_serialize=x If 'x', serialize file creation.
54 create_fsync=x If 'x', run fsync() after file creation.
55 loops=x Run the job 'x' number of times.
cfc702bd 56 verify=x If 'x' and writing, verify data written.
2a81240d 57 stonewall Wait for preceeding jobs to end before running.
fe74f555 58 numjobs=x Create 'x' similar entries for this job
e709787c
JA
59
60
7dd1389e
JA
61Examples using a job file
62-------------------------
63
64A sample job file doing the same as above would look like this:
65
66[read_file]
67rw=0
68bs=4096
69
70[write_file]
71rw=1
72bs=16384
73
74And fio would be invoked as:
75
76$ fio -o1 -s -f file_with_above
77
78The second example would look like this:
79
80[rf1]
81rw=0
82prio=6
83
84[rf2]
85rw=0
86prio=3
87
88[rf3]
89rw=0
90prio=0
91direct=1
92
93And fio would be invoked as:
94
95$ fio -o0 -s -b4096 -f file_with_above
96
47d45203
JA
97'global' is a reserved keyword. When used as the filename, it sets the
98default options for the threads following that section. It is possible
99to have more than one global section in the file, as it only affects
100subsequent jobs.
ed864e24
JA
101
102Also see the examples/ dir for sample job files.
47d45203 103