No processes shown (option "-o")
I switched from iotop to iotop-c because of the "CONFIG_TASK_DELAY_ACCT not enabled in kernel, cannot determine SWAPIN and IO %" error since I guess Debian 11.
Now comparing both, I discover that with the same set of parameters no processes are shown at all:
- left:
sudo iotop -aoP - right:
sudo iotop-c -aoP
I tracked it down: using o parameter is responsible for the empty list of processes. Using a and/or P is working fine.
There is one catch with option o - when the sysctl is disabled it checks bytes in+out, else io.
But the kernel does not keep the io stats for processes started before enabling the sysctl...
I do not have a clean idea how to change it in a way to avoid confusion like the above
So the only workaround is to use it without the o option to get a list of relevant processes at all and fully rely on the (top-down) sorting... right?
BTW: I also noticed there's
- a huge difference in the shown values (top section, current read/write), but at least the total read/write is shown correctly
- no info section at the bottom anymore (did not find a way to re-introduce it - quite hard to use iotop without that supporting keystroke hints)
I did change the logic of -o to consider both READ+WRITE and IO. Please re-test with version 1.26 or latest git.
About that difference - iotop-c gets the data from /proc/vmstat, I do not see how that can go wrong...
Did you try the ? and h hotkeys? ? toggles the bottom row, while h displays the full help.
For me no values (IO / SWAP / Disk read / Disk write) are shown at all. I bet that's because of the 64 bit kernel and the 32 bit userland. Current versions served by package repositories are quite old (Debian 11):
iotop-c/oldstable,now 1.17-1+deb11u1 armhf [installiert]
iotop/oldstable,now 0.6-24-g733f3f8-1.1 armhf [installiert]
I guess I would/could manually upgrade to latest https://github.com/Tomas-M/iotop/releases/tag/v1.26 but I suspect the core issue will remain due to the kernel change. Does that make sense to you? --> Edit: tried manual upgrade which initially failed in the make part. Don't want to waste any more time on this, I will upgrade the OS to participate from younger releases provided by the package manager instead.
I am not sure how the difference in type sizes is handled on the 64bit kernel/32bit userland combo... It may be ok, because netlink handles it. Or maybe there are bugs to be discovered.
There is 1.23 in backports:
apt -t oldstable/backports install iotop-c
The best way is to compile from source using the master branch. iotop-c needs only libncurses*-dev and pkgconfig to build
Please re-open if the difference is still there with the latest git version