我有一个 IO 绑定的进程:
my_username@GPU8:~$ ps -U my_username -u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
my_username 151348 12.7 52.4 47051296 34544380 pts/16 DNl+ 11:38 15:27 python my_py.py
系统上还有来自其他用户的其他 IO 绑定进程。
我知道iotop
,但它需要根访问权限,而我没有。
如何知道我的程序正在等待的资源数量(占容量的比例)?我本质上是在寻找我的程序可以再次运行之前的估计等待时间。
答案1
但它需要 root 访问权限,而我没有。
对整体系统性能或影响行为的干预措施的任何详细了解也都需要 root 访问权限。你想达到什么目的?
我的程序可以再次运行之前的估计等待时间。
所以你跑了ps
几次,每次你都看到它处于不间断的睡眠状态,所以你的结论是它一直处于这种状态?如果是这样,你的逻辑就有问题。
我们无法开始猜测它何时完成。我们不仅不知道您的程序做了什么,我们也不知道系统上的其他所有东西正在做什么,我们也不知道您的存储的功能是什么。即使我们这样做了,诸如利用率之类的测量结果也有一定的误导性。
如果它是 IO 绑定的,那么每次调用时内核中使用的时间可能远少于 RR_TIMESLICE (100ms)。它到达队列顶部的频率取决于任一时间可运行进程的数量。但是,如果大多数其他进程也是 IO Bound,那么当该进程可运行但尚未进入 CPU 时,可能只会有很短的时间间隔。