1IOTOP(8)                    System Manager's Manual                   IOTOP(8)
2
3
4

NAME

6       iotop - simple top-like I/O monitor
7

SYNOPSIS

9       iotop [OPTIONS]
10

DESCRIPTION

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

OPTIONS

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

KEYBOARD SHORTCUTS

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

ENVIRONMENT

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

SEE ALSO

335       ionice(1), top(1), vmstat(1), atop(1), htop(1)
336

AUTHOR

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)
Impressum