如何在 Unix 中按进程获取 I/O 使用情况?

sam*_*rth 6 linux unix cpu-usage io

可能的重复:
Linux:是否有类似于 I/O 的“top”?

我正在尝试在 Linux 机器上执行一些 CPU 密集型操作,它显示出非常高的负载。

我想弄清楚这个负载是由于 I/O 还是 CPU 使用造成的。我怎样才能按进程获得 I/O 使用率的百分比?

Zds*_*Zds 6

试试名为“iotop”的程序。它以与 CPU 使用率的“top”类似的方式显示本地磁盘驱动器的使用率。对于网络流量,有一个名为“iftop”的工具。

此外,如果您不确定负载高的原因,请查看“顶部”视图中的“IO 等待”列。如果 CPU 时间主要用于“用户”或“系统”工作,则 CPU 是瓶颈,如果是“IO 等待”,则是磁盘。同样值得一看的是交换数——如果物理内存的可用空间少于 5% 和/或使用了大量交换文件,则您可能会受到物理内存的限制。

例如:

top - 17:18:37 up 1 day,  5:20, 19 users,  load average: 0.18, 0.26, 0.35
Tasks: 249 total,   2 running, 246 sleeping,   0 stopped,   1 zombie
Cpu(s):  8.5%us,  2.1%sy,  0.3%ni, 85.4%id,  3.7%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   8183668k total,  8082464k used,   101204k free,    11148k buffers
Swap: 11847900k total,   248528k used, 11599372k free,  3361444k cached
Run Code Online (Sandbox Code Playgroud)

“us”代表用户空间代码,“sy”代表系统,“id”代表空闲,“wa”代表IO等待。


归档时间:

查看次数:

10436 次

最近记录:

6 年,1 月 前