可能重复:
Linux:是否有类似于“top”的 I/O?
我正在尝试在 Linux 机器上执行一些 CPU 密集型操作,并且显示负载非常高。
我想弄清楚这个负载是由于 I/O 还是 CPU 使用率造成的。如何获取进程的 I/O 使用率百分比?
答案1
尝试使用名为“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
“us”代表用户空间代码,“sy”代表系统,“id”代表空闲,“wa”代表 IO 等待。
答案2
答案3
首先,您可以运行top
并查看显示屏第三行中的总 CPU 使用率。如果第一行中的平均负载较高,但第三行中的 CPU 使用率较低,则问题出在 I/O 使用率上。要从那里更具体地缩小范围,您可以使用iotop
,就像 Zds 建议的那样。