了解 iotop

了解 iotop

我有一个 postgresql 选择查询,它只消耗 12% 的 CPU,并且几乎不消耗内存,但它仍然需要大约一分钟才能运行。

我立即尝试使用 iotop 检查 IO。果然,在 iotop 的“IO>”列中,我的进程显示的值在 90-100 范围内。

几个问题:这是所有可用 IO 的百分比吗?如何计算?我的硬盘是 7200RPM 硬盘,整个表只有 1000 万行。IO 是否总是受硬盘读取速度的限制,还是可能是其他问题?

答案1

看看这个问题:https://unix.stackexchange.com/questions/282225/how-does-iotop-calculate-the-relative-io-activity

IO 列显示等待 IO 操作所花费的进程时间百分比。因此它与磁盘的全局使用情况无关。

您在评论中指出,您的磁盘读取速度约为 130 MB/s。我这里有一个 5400 RPM 硬盘,我使用 gnome-disks 对我的系统分区进行了基准测试,读取速度无法超过 100 MB/s。所以也许您的磁盘无法处理所有负载,这就是查询缓慢的原因。

相关内容