1IOPING(1) User Commands IOPING(1)
2
3
4
6 ioping - simple disk I/O latency monitoring tool
7
9 ioping [-ABCDLRWGYykq] [-c count] [-i interval] [-l speed] [-t time]
10 [-T time] [-s size] [-S wsize] [-o offset] [-w deadline]
11 [-p period] [-P period] directory|file|device
12 ioping -h | -v
13
15 This tool generates various I/O patterns and lets you monitor I/O speed
16 and latency in real time.
17
19 -c count
20 Stop after count requests.
21
22 -i interval
23 Set time between requests to interval (1s).
24
25 -l speed
26 Set speed limit in bytes per second. Set interval to request-
27 size / speed.
28
29 -t time
30 Minimal valid request time (0us). Too fast requests are ignored
31 in statistics.
32
33 -T time
34 Maximum valid request time. Too slow requests are ignored in
35 statistics.
36
37 -s size
38 Request size (4k).
39
40 -S wsize
41 Working set size (1m for directory, whole size for file or
42 device).
43
44 -o offset
45 Starting offset in the file/device (0).
46
47 -w deadline
48 Stop after deadline time passed.
49
50 -p period
51 Print raw statistics for every period requests (see format
52 below).
53
54 -P period
55 Print raw statistics for every period in time.
56
57 -A Use asynchronous I/O (io_setup(2), io_submit(2) etc syscalls).
58
59 -B Batch mode. Be quiet and print final statistics in raw format.
60
61 -C Use cached I/O. Suppress cache invalidation via
62 posix_fadvise(2)) before read and fdatasync(2) after each write.
63
64 -D Use direct I/O (see O_DIRECT in open(2)).
65
66 -L Use sequential operations rather than random. This also sets
67 default request size to 256k (as in -s 256k).
68
69 -R Disk seek rate test. This option suppress human-readable output
70 for each request (as -q), sets default interval to zero (-i 0),
71 stops measurement after 3 seconds (-w 3) and increases default
72 working set size to 64m (-S 64m). Working set (-S) should be
73 increased accordingly if disk has huge cache.
74
75 -W Use writes rather than reads. Safe for directory target. Write
76 I/O gives more reliable results for systems where non-cached
77 reads are not supported or cached at some level. Might be
78 *DANGEROUS* for file/device: it will shred your data. In this
79 case should be repeated three times (-WWW).
80
81 -G Alternate read and write requests.
82
83 -Y Use sync I/O (see O_SYNC in open(2)).
84
85 -y Use data sync I/O (see O_DSYNC in open(2)).
86
87 -k Keep and reuse temporary working file "ioping.tmp" (only for
88 directory target).
89
90 -q Suppress periodical human-readable output.
91
92 -h Display help message and exit.
93
94 -v Display version and exit.
95
96 Argument suffixes
97 For options that expect time argument (-i, -P and -w), default is
98 seconds, unless you specify one of the following suffixes (case-
99 insensitive):
100
101 ns, nsec
102 nanoseconds (a billionth of a second, 1 / 1 000 000 000)
103
104 us, usec
105 microseconds (a millionth of a second, 1 / 1 000 000)
106
107 ms, msec
108 milliseconds (a thousandth of a second, 1 / 1 000)
109
110 s, sec seconds
111
112 m, min minutes
113
114 h, hour
115 hours
116
117 For options that expect "size" argument (-s, -S and -o), default is
118 bytes, unless you specify one of the following suffixes (case-
119 insensitive):
120
121 sector disk sectors (a sector is always 512).
122
123 KiB, k, kb
124 kilobytes (1 024 bytes)
125
126 page memory pages (a page is always 4KiB).
127
128 MiB, m, mb
129 megabytes (1 048 576 bytes)
130
131 GiB, g, gb
132 gigabytes (1 073 741 824 bytes)
133
134 TiB, t, tb
135 terabytes (1 099 511 627 776 bytes)
136
137 For options that expect "number" argument (-p and -c) you can
138 optionally specify one of the following suffixes (case-insensitive):
139
140 k kilo (thousands, 1 000)
141
142 m mega (millions, 1 000 000)
143
144 g giga (billions, 1 000 000 000)
145
146 t tera (trillions, 1 000 000 000 000)
147
149 Returns 0 upon success. The following error codes are defined:
150
151 1 Invalid usage (error in arguments).
152
153 2 Error during preparation stage.
154
155 3 Error during runtime.
156
158 ioping -p 100 -c 200 -i 0 -q .
159 99 10970974 9024 36961531 90437 110818 358872 30756 100 12516420
160 100 9573265 10446 42785821 86849 95733 154609 10548 100 10649035
161 (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
162
163 (1) count of requests in statistics
164 (2) running time (nanoseconds)
165 (3) requests per second (iops)
166 (4) transfer speed (bytes per second)
167 (5) minimal request time (nanoseconds)
168 (6) average request time (nanoseconds)
169 (7) maximum request time (nanoseconds)
170 (8) request time standard deviation (nanoseconds)
171 (9) total requests (including warmup, too slow or too fast)
172 (10) total running time (nanoseconds)
173
175 ioping .
176 Show disk I/O latency using the default values and the current
177 directory, until interrupted. This command prepares temporary
178 (unlinked/hidden) working file and reads random chunks from it
179 using non-cached read requests.
180
181 ioping -c 10 -s 1M /tmp
182 Measure latency on /tmp using 10 requests of 1 megabyte each.
183
184 ioping -R /dev/sda
185 Measure disk seek rate.
186
187 ioping -RL /dev/sda
188 Measure disk sequential speed.
189
190 ioping -RLB . | awk '{print $4}'
191 Get disk sequential speed in bytes per second.
192
194 iostat(1), dd(1), fio(1), stress(1), stress-ng(1), dbench(1),
195 sysbench(1), fsstress, xfstests, hdparm(8), badblocks(8),
196
198 ⟨https://github.com/koct9i/ioping/⟩.
199
201 This program was written by Konstantin Khlebnikov ⟨koct9i@gmail.com⟩.
202 Man-page was written by Kir Kolyshkin ⟨kir@openvz.org⟩.
203
204
205
206 Oct 2014 IOPING(1)