Answers:
iotop显示的信息对于单个进程以及整个系统的收集方式不同。“实际”全局数字不是每个进程数字的总和(这就是“总数”)。
所有信息都是从proc文件系统中收集的。
/proc/PID/io
rchar
wchar
read
write
readv
writev
recv
send
/proc/vmstat
,特别是pgpgin
和pgpgout
值。这些度量了内核和硬件之间交换的数据(更确切地说,这是内核中的块设备层重新排列的数据)。每进程数据和块设备层数据不同的原因有很多。尤其是:
最后的区别解释了您在这里看到的内容。删除文件只会影响元数据,不会影响数据,因此该过程不会写入任何内容。它可能正在读取目录内容以列出要删除的文件,但是它很小,可能被不经意滚动。
我认为Linux没有提供任何监视文件元数据更新的方法。您可以通过/sys/fs
某些文件系统下的条目监视每个文件系统的I / O。我认为您无法针对特定进程来处理元数据I / O,在一般情况下,这样做会非常复杂,因为多个进程可能导致读取或更改同一元数据。
rm -r
当前正在处理的文件strace
,但是由于每个目录中的遍历顺序有些不可预测,因此它不能为完成百分比提供非常有用的估计。如果该文件系统中仅执行一项大型操作,并且没有太多硬链接,那么观看将df -i
告诉您已处理了多少文件。