我有一台负载非常高的服务器。就 CPU 使用率而言,我没有任何反应,也没有交换。
我认为这是因为某些进程正在等待磁盘 IO,我想看看在等待什么。
是否有任何程序可以显示哪些进程正在等待 IO?我知道,iotop
但这显示了当前正在执行 IO 的操作。
或者这是一个愚蠢的问题?(如果是这样解释如何:))
我在 Debian 7.3 服务器上遇到高 I/O 问题(平均 I/O 等待时间长达 7 秒)。我试图通过使用 iotop -o 找出导致这种情况的原因。现在我看到了一些奇怪的东西:iotop 在顶部告诉我“总磁盘写入:32.46M/s”。但是在任务列表中,我看不到任何进程在磁盘上写了这么多。最高的是两个 90K/s 和 8K/s 的 mysql 进程和一个 kjournald 进程。所有三个都以 99.99% 的 IO 列出。# 如果我把所有的写入速度都加起来,我就离 32MB/s 不远了。
iotop的屏幕:
这里有什么问题?我认为 32.46MB/s 的写入是正确的,因为此时我的网络服务器页面加载时间较长,可能是高 I/O 造成的。但是为什么使用这么多容量的“大任务”没有列在下面的列表中?
编辑:我也可以通过磁盘写入对它进行排序,我也会得到这样的奇怪结果: