如何识别磁盘重度写入?

如何识别磁盘重度写入?

我在运行 CakePHP 应用程序的服务器上遇到了这个问题。服务器速度非常慢,我一开始以为是应用程序的问题,但后来我发现磁盘写入速度一直保持在 5-6MB/s。

找出如此大量写入的原因的最简单方法是什么?

该服务器正在运行 Gentoo。

答案1

安装iotop,并找出哪个程序正在执行此操作。

答案2

作为 Dstat 的作者,我想指出其他选项。您可以轻松查看哪个进程消耗了最多的 I/O 带宽:

dstat -ta --top-bio

或 dstat -ta --top-io

第一个是最高块 I/O,第二个是最高 I/O(包括缓存)。这可以帮助您验证这是否符合您的预期(无论是作为消费者还是消费方)。

还有一些其他插件可以帮助您识别磁盘利用率:

dstat -tdf --disk-util

因此,如果您有 I/O 瓶颈,这将告诉您涉及哪些磁盘,以便您可以了解是否可以采取一些措施来解决这个问题。

如果您正在排除特定(网络)文件系统的故障,则可以使用其他插件来获取有关这些文件系统的更多信息。Dstat 还具有用于其他指标(cpu、VM、虚拟化等)的插件,并且根据您需要可视化的内容,您可以编写自己的插件,或修改现有插件以准确显示您需要关联的内容。

但是如果您需要帮助、想要贡献或有一个漂亮的新想法,请联系我,看看我们如何进行......

答案3

您可以使用 dstat 工具

答案4

尝试 vmstat 和 iostat

相关内容