Commit | Line | Data |
---|---|---|
e709787c JA |
1 | fio |
2 | --- | |
3 | ||
4 | fio is a tool that will spawn a number of thread doing a particular | |
5 | type of io action as specified by the user. fio takes a number of | |
6 | global parameters, each inherited by the thread unless otherwise | |
7 | parameters given to them overriding that setting is given. | |
8 | ||
9 | Options | |
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 JA |
22 | |
23 | <jobs> | |
24 | ||
25 | The <jobs> format is as follows: | |
26 | ||
27 | rw=0/1 0 is read, 1 is write | |
28 | prio=x Run io at prio X, 0-7 is the kernel allowed range | |
29 | prioclass=x Run io at prio class X | |
30 | file=foo Do the io to file foo | |
86184d14 | 31 | bs=x Thread blocksize is x KiB |
e709787c JA |
32 | direct=x 1 for direct IO, 0 for buffered IO |
33 | delay=x Delay x useconds before each io | |
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. | |
e709787c JA |
51 | |
52 | ||
7dd1389e JA |
53 | Examples using cmd line jobs |
54 | ---------------------------- | |
e709787c JA |
55 | |
56 | Spawn 2 threads, one read and one writer. Both threads want direct and | |
57 | sequential io, set these as global options. The reader wants a 4kb block | |
58 | size and the writer a 16kb block size, set those as thread options. | |
59 | ||
60 | $ fio -o1 -s "{rw=0,file=read_file,bs=4096}" "{rw=1,file=write_file,bs=16384}" | |
61 | ||
62 | Spawn 3 reader threads doing io at priorities 0, 3, and 6. The highest | |
63 | prio thread wants direct io, the others buffered. All want a 4kb block | |
64 | size. | |
65 | ||
66 | $ fio -o0 -s -b4096 "{rw=0,file=rf1,prio=6}" "{rw=0,file=rf2,prio=3}" "{rw=0,file=rf3,prio=0,direct=1}" | |
67 | ||
7dd1389e JA |
68 | Examples using a job file |
69 | ------------------------- | |
70 | ||
71 | A sample job file doing the same as above would look like this: | |
72 | ||
73 | [read_file] | |
74 | rw=0 | |
75 | bs=4096 | |
76 | ||
77 | [write_file] | |
78 | rw=1 | |
79 | bs=16384 | |
80 | ||
81 | And fio would be invoked as: | |
82 | ||
83 | $ fio -o1 -s -f file_with_above | |
84 | ||
85 | The second example would look like this: | |
86 | ||
87 | [rf1] | |
88 | rw=0 | |
89 | prio=6 | |
90 | ||
91 | [rf2] | |
92 | rw=0 | |
93 | prio=3 | |
94 | ||
95 | [rf3] | |
96 | rw=0 | |
97 | prio=0 | |
98 | direct=1 | |
99 | ||
100 | And fio would be invoked as: | |
101 | ||
102 | $ fio -o0 -s -b4096 -f file_with_above | |
103 | ||
47d45203 JA |
104 | 'global' is a reserved keyword. When used as the filename, it sets the |
105 | default options for the threads following that section. It is possible | |
106 | to have more than one global section in the file, as it only affects | |
107 | subsequent jobs. | |
ed864e24 JA |
108 | |
109 | Also see the examples/ dir for sample job files. | |
47d45203 | 110 |