我想检查哪个进程占用最高的 I/O。确切地说,我想检查哪个进程执行最高写入操作以及多少。
我知道有一些工具,例如iotop
. 但是由于我必须在没有 sudo 和特权非常有限的外国环境的情况下工作,我想知道如何使用内置工具(如ps
. 我想要类似下面的东西来查找 CPU/内存使用情况,
$ps -eo pid,command,%cpu,%mem --sort=-%cpu
更新:在尝试了几种方法后,我发现/proc/[pid]/io
由于缺乏特权而无法读取文件,所以我猜如果没有适当的特权就无法获得 I/O。
$cd /proc/; for i in $(ls | egrep -o ^\[0-9\]*); do cat $i/io; done
cat: 1/io: Permission denied
cat: 10/io: Permission denied
cat: 10284/io: Permission denied
cat: 11/io: Permission denied
cat: 1174/io: Permission denied
cat: 12/io: Permission denied
........
问题是您无法以普通用户身份访问其他用户进程的此信息。