1IOTOP(8) System Manager's Manual IOTOP(8)
2
3
4
6 iotop - simple top-like I/O monitor
7
9 iotop [OPTIONS]
10
12 iotop watches I/O usage information available in the Linux kernel (re‐
13 quires 2.6.20 or later) and displays a table of current I/O usage by
14 processes or threads on the system. At least the CONFIG_TASK_DE‐
15 LAY_ACCT, CONFIG_TASK_IO_ACCOUNTING, CONFIG_TASKSTATS and CON‐
16 FIG_VM_EVENT_COUNTERS options need to be enabled in your Linux kernel
17 build configuration.
18
19 Running iotop as non-root user is possible by adding the NET_ADMIN ca‐
20 pability. This can be done by e.g.:
21
22 $ sudo setcap 'cap_net_admin+eip' <path-to>/iotop
23
24 Be warned that this will also allow other users to run it and get ac‐
25 cess to information that normally should not be available to them.
26
27 iotop displays columns for the I/O bandwidth read and written by each
28 process/thread during the sampling period. It also displays the per‐
29 centage of time the thread/process spent while swapping in and while
30 waiting on I/O. For each process, its I/O priority (class/level) is
31 shown.
32
33 In addition, the total I/O bandwidth read and written during the sam‐
34 pling period are displayed at the top of the interface. Total DISK
35 READ and Total DISK WRITE values represent total read and write band‐
36 width between processes and kernel threads on one side and kernel block
37 device subsystem on the other. While Current DISK READ and Current DISK
38 WRITE values represent corresponding bandwidths for current disk I/O
39 between the kernel block device subsystem and the underlying hardware
40 (HDD, SSD, etc.). Thus Total and Current values may not be equal at any
41 given moment of time due to data caching and I/O operations reordering
42 that take place inside the Linux kernel.
43
44 Use the left and right arrows to select the sort column, r or space to
45 reverse the sorting order, o to toggle the --only option (this uses the
46 visible values from the GRAPH column or the IO column in case the GRAPH
47 column is hidden), p to toggle the --processes option, a to toggle the
48 --accumulated option, i to change the priority of a thread or a
49 process's thread, f to change filtering by UID/PID (--user and --pid
50 options), 1-9 to toggle the visibility of the respective column, 0 to
51 show all columns, up/down arrows, page-up/page-down/home/end keys to
52 scroll and q to quit. Any unrecognized key will be ignored.
53
54 All processes or threads that have exited are displayed grayed for the
55 same time as is visible in the GRAPH column or 3 seconds when it is
56 hidden. The invalid data points in the GRAPHS column are displayed in‐
57 verse or with letter x (see option --dead-x and x shortcut). When using
58 unicode characters each position contains two datapoints and only the
59 positions with two invalid data points are reversed.
60
61 It is possible for threads of a process to have different priority from
62 their main process. This is shown with ! in the PRIO column of the main
63 process as e.g. !be/4.
64
65 Threads activity is always aggregated with and shown inside the main
66 process.
67
68 When showing threads, they always appear below their main process and
69 are sorted in the same way as the processes.
70
71 There are two ways to change the IO priority of a process or thread -
72 press i and use arrows to select the process or thread from the visible
73 ones on screen or press i and type its TID (PID and TID have the same
74 value for the main process). Then use tab and arrows to change the pri‐
75 ority value and confirm with enter. Shortcuts esc or q will cancel this
76 mode.
77
78 To change the UID and PID filters, press f and use tab to select the
79 UID or PID field, then type the numerical id or n to remove the filter
80 and confirm with enter. Filtering is always done by TID because it is
81 unique. Note that for the main process PID is the same as TID. Short‐
82 cuts esc or q will cancel this mode.
83
84 Starting with Linux kernel 5.14.x task_delayacct is configurable at
85 runtime and set to off by default. This setting can be changed in in‐
86 teractive mode by the Ctrl-T shortcut. In batch mode a warning is
87 printed when the setting is OFF. From the command line this can be en‐
88 abled by:
89
90 $ sudo sysctl kernel.task_delayacct=1
91
92 and disabled again by:
93
94 $ sudo sysctl kernel.task_delayacct=0
95
96 It is advisable to keep this option off when not using this or another
97 monitoring program because when enabled it has some effect on system
98 performance.
99
101 -v, --version
102 Show the version number and exit
103
104 -h, --help
105 Show usage information and exit
106
107 -H, --help-type=TYPE
108 Set the type of interactive help shown. Accepted values for TYPE
109 are none, win and inline.
110
111 -o, --only
112 Only show processes or threads actually doing I/O, instead of
113 showing all processes or threads. This can be dynamically tog‐
114 gled by pressing o
115
116 -b, --batch
117 Turn on non-interactive mode. Useful for logging I/O usage over
118 time
119
120 -n NUM, --iter=NUM
121 Set the number of iterations before quitting (never quit by de‐
122 fault). This is most useful in non-interactive mode
123
124 -d SEC, --delay=SEC
125 Set the delay between iterations in seconds (1 second by de‐
126 fault). Accepts non-integer values such as 1.1 seconds
127
128 -p PID, --pid=PID
129 A process/thread id to monitor (all by default)
130
131 -u USER, --user=USER
132 A user id to monitor (all by default). The value will always be
133 resolved first unless it is prefixed by + in which case it is
134 treated as numeric only. Values that do not resolve but appear
135 to be numeric are used as numeric
136
137 -P, --processes
138 Only show processes. Normally iotop shows processes and all
139 threads
140
141 -a, --accumulated
142 Show accumulated I/O instead of bandwidth. In this mode, iotop
143 shows the amount of I/O processes have done since iotop started
144
145 -k, --kilobytes
146 Use kilobytes instead of a human friendly unit. This mode is
147 useful when scripting the batch mode of iotop. Instead of choos‐
148 ing the most appropriate unit iotop will display all sizes in
149 kilobytes
150
151 -t, --time
152 Add a timestamp on each line (implies --batch). Each line will
153 be prefixed by the current time
154
155 -c, --fullcmdline
156 Show processes' full file path and parameters
157
158 -1, --hide-pid
159 Hide PID/TID column
160
161 -2, --hide-prio
162 Hide PRIO column
163
164 -3, --hide-user
165 Hide USER column
166
167 -4, --hide-read
168 Hide DISK READ column
169
170 -5, --hide-write
171 Hide DISK WRITE column
172
173 -6, --hide-swapin
174 Hide SWAPIN column
175
176 -7, --hide-io
177 Hide IO column
178
179 -8, --hide-graph
180 Hide GRAPH column
181
182 -9, --hide-command
183 Hide COMMAND column
184
185 -g TYPE, --grtype=TYPE
186 Set GRAPH column data source. Accepted values for TYPE are io,
187 r, w, rw and sw.
188
189 -q, --quiet
190 Suppress some lines of header (implies --batch). This option can
191 be specified up to three times to remove header lines
192 -q column names are only printed on the first iteration,
193 -qq column names are never printed,
194 -qqq the I/O summary is never printed
195
196 -x, --dead-x
197 Show exited processes/threads with letter x instead of inverse
198 background
199
200 -e, --hide-exited
201 Hide exited processes
202
203 -l, --no-color
204 Do not colorize values
205
207 q, Q Exit
208
209 <space>, r, R
210 Toggle sort order
211
212 <home> Scroll to the top of the list
213
214 <end> Scroll to the bottom of the list
215
216 <page-up>
217 Scroll one screen up
218
219 <page-down>
220 Scroll one screen down
221
222 <up> Scroll one line up
223
224 <down> Scroll one line down
225
226 <right>
227 Sort by next column
228
229 <left> Sort by previous column
230
231 <esc> Cancel ionice or filter selection. In case only the help window
232 is open then close it
233
234 o, O Toggle showing only processes with IO activity
235
236 p, P Toggle showing processes/threads
237
238 a, A Toggle showing accumulated/current values
239
240 ? Toggle showing inline help
241
242 h, H Toggle showing window help
243
244 c, C Toggle showing full command line
245
246 1, 2, 3, 4, 5, 6, 7, 8, 9
247 Toggle showing the column (column number corresponds to the
248 shortcut)
249
250 0 Show all columns
251
252 g, G Cycle GRAPH source (IO=IO, R=DISK READ , W=DISK WRITE, R+W=DISK
253 READ+DISK WRITE, SW=SWAPIN). Using g will cycle forward and G
254 will cycle backward.
255
256 i, I IOnice a process/thread (depends on process/thread display mode)
257
258 f, F Change UID and PID filters
259
260 u, U Toggle using Unicode/ASCII characters for pseudo graph
261
262 l, L Toggle colorizing values
263
264 x, X Toggle the display mode of exited processes/threads between let‐
265 ter x and inverse background
266
267 e, E Toggle the display of exited processes
268
269 s, S Toggle freeze of data collection
270
271 Ctrl-T Toggle task_delayacct kernel sysctl
272
273 / Change search regular expression. While the search regular ex‐
274 pression is being edited, there is an indicator next to it that
275 shows if the expression is valid. The search is confirmed by
276 <enter> or cancelled by <esc>.
277
278 List of shortcuts in the editor:
279
280 <esc> Cancel editing and remove the regular expression filter
281
282 <enter>
283 Confirm the current regular expression and exit edit
284 mode. In case the regular expression is empty or invalid
285 it will match everything.
286
287 Alt/Meta-<backspace>, Ctrl-W
288 Delete one word from cursor to the left
289
290 Alt/Meta-D
291 Delete one word from cursor to the right
292
293 Alt/Meta-B, Ctrl-<left>
294 Move the cursor to the beginning of the word on the left
295
296 Alt/Meta-F, Ctrl-<right>
297 Move the cursor after the end of the word on the right
298
299 Ctrl-A, <home>
300 Move the cursor to the leftmost position
301
302 Ctrl-E, <end>
303 Move the cursor after the last character
304
305 Ctrl-B, <left>
306 Move the cursor to the left
307
308 Ctrl-F, <right>
309 Move the cursor to the right
310
311 Ctrl-H, <backspace>
312 Delete the character left of cursor
313
314 Ctrl-D, <del>
315 Delete the character under the cursor
316
317 Ctrl-K Delete from the character under the cursor to the end of
318 the line
319
320 Ctrl-U Delete everything
321
322 [anything-else]
323 Non-printable characters are ignored. Normal characters
324 are inserted before the character under the cursor. UTF-8
325 sequences are parsed and treated as a single character.
326 Unicode combining characters will be appended to the
327 character under the cursor.
328
330 As per the recommendation of https://www.no-color.org/ iotop honors the
331 contents of the environment variable NO_COLOR and when it is set to a
332 non empty string, all color output is suppressed.
333
335 ionice(1), top(1), vmstat(1), atop(1), htop(1)
336
338 The original Python iotop implementation was written by Guillaume Chaz‐
339 arain. This rewrite in C was started in 2014 by Vyacheslav Trushkin
340 and reworked to include all missing features from the original Python
341 code and several new ones from 2020 to 2022 by Boian Bonev.
342
343 This manual page was started by Paul Wise for the Debian project and is
344 placed in the public domain.
345
346
347
348 July 8, 2022 IOTOP(8)