IOTOP(8)
๐ IOTOP(8) โ the manual page bestie ๐
okay so this is iotop, from the System Manager's Manual section 8 (that's the admin-girlies section, iykyk). It's a simple top-like I/O monitor and honestly? iconic.
โจ NAME โจ
iotop โ a simple top-like I/O monitor ๐
๐ฆ SYNOPSIS ๐ฆ
iotop [OPTIONS]
๐ธ DESCRIPTION ๐ธ
okay so picture this: iotop sits there watching all the I/O usage info that the Linux kernel is spilling out (and it needs 2.6.20 or later, no old-kernel vibes allowed), and then it serves you a whole table of current I/O usage by processes or threads on your system. Main character energy fr.
But bestie, there's a prerequisites check ๐. At least these options need to be enabled in your Linux kernel build configuration:
CONFIG_TASK_DELAY_ACCTCONFIG_TASK_IO_ACCOUNTINGCONFIG_TASKSTATSCONFIG_VM_EVENT_COUNTERS
โฆand since Linux kernel 5.14, the kernel.task_delayacct sysctl needs to be enabled too. No cap, if those aren't on, this whole thing is not gonna slay. ๐
iotop shows you columns for the I/O bandwidth read and written by each process/thread during the sampling period. It also shows the percentage of time the thread/process spent while swapping in and while waiting on I/O. And for each process, its I/O priority (class/level) is right there. So much info, so pretty. โจ
Plus! the total I/O bandwidth read and written during the sampling period is displayed at the top of the interface. Let's break those numbers down because they lowkey trip people up:
- Total DISK READ and Total DISK WRITE values = the total read and write bandwidth between processes and kernel threads on the one side, and the kernel block device subsystem on the other.
- Current DISK READ and Current DISK WRITE values = the corresponding bandwidths for current disk I/O between the kernel block device subsystem and the underlying hardware (HDD, SSD, etc.).
So yeah, Total and Current values may not be equal at any given moment of time โ that's because of data caching and I/O operations reordering happening inside the Linux kernel. It's not a bug, it's just the kernel being mysterious. ๐ง
๐ฎ Keyboard shortcuts, the fun part ๐ฎ
- left and right arrows โ change the sorting
rโ reverse the sorting orderoโ toggle the--onlyoptionpโ toggle the--processesoptionaโ toggle the--accumulatedoptionqโ quitiโ change the priority of a thread or a process's thread(s)- any other key โ forces a refresh ๐
๐ OPTIONS ๐
--versionโ show the version number and exit. Bye! ๐-h,--helpโ show usage information and exit.-o,--onlyโ only show processes or threads that are actually doing I/O, instead of showing all of them. You can dynamically toggle this by pressingo. Filtered, curated, obsessed.-b,--batchโ turn on non-interactive mode. Super useful for logging I/O usage over time. ๐-n NUM,--iter=NUMโ set the number of iterations before quitting (it never quits by default, it's committed like that). Most useful in non-interactive mode.-d SEC,--delay=SECโ set the delay between iterations in seconds (1 second by default). It accepts non-integer values such as1.1seconds, so go off with your decimals. ๐-p PID,--pid=PIDโ a list of processes/threads to monitor (all by default).-u USER,--user=USERโ a list of users to monitor (all by default).-P,--processesโ only show processes. Normallyiotopshows all threads.-a,--accumulatedโ show accumulated I/O instead of bandwidth. In this mode,iotopshows the amount of I/O processes have done sinceiotopstarted. โจ-k,--kilobytesโ use kilobytes instead of a human friendly unit. This mode is useful when scripting the batch mode ofiotop. Instead of choosing the most appropriate unit,iotopwill display all sizes in kilobytes.-t,--timeโ add a timestamp on each line (this implies--batch). Each line will be prefixed by the current time. ๐-q,--quietโ suppress some lines of header (this implies--batch). This option can be specified up to three times to remove header lines.--no-helpโ suppress the keyboard shortcuts help display.
And here's the quiet-mode lore, because the number of -qs literally changes what you get:
-qโ column names are only printed on the first iteration-qqโ column names are never printed-qqqโ the I/O summary is never printed
๐ SEE ALSO ๐
ionice(1), top(1), vmstat(1), atop(1), htop(1) โ the whole friend group, go say hi ๐ซถ
๐ AUTHOR ๐
iotop was written by Guillaume Chazarain. ๐ซถ
This manual page was started by Paul Wise for the Debian project and is placed in the public domain.
cute little sign-off bestie: this page is from the System Manager's Manual, dated October 1, 2021, and it's filed under section 8. Take care of your kernel config and it'll take care of you ๐โจ๐
๐ฆ where this page comes from
- debian bookworm: iotop 0.6-42-ga14256a-0.1+b2 ยท GPL-2.0-or-later
- debian trixie: iotop 0.6-42-ga14256a-0.3+b1 ยท GPL-2.0-or-later
- ubuntu noble: iotop 0.6-42-ga14256a-0.2build1 ยท GPL-2.0-or-later
- ubuntu questing: iotop 0.6-42-ga14256a-0.3build1
- ubuntu resolute: iotop 0.6-42-ga14256a-0.3build4 ยท GPL-2.0-or-later
- ubuntu stonking: iotop 0.6-42-ga14256a-0.3build4 ยท GPL-2.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms