如何识别大量写入磁盘?

Jak*_*old 9 linux performance scaling io

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

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

服务器正在运行 Gentoo。

小智 18

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

dstat -ta --top-bio
Run Code Online (Sandbox Code Playgroud)

或 dstat -ta --top-io

第一个是顶部块 I/O,第二个是顶部 I/O(包括缓存)。这可以帮助您验证这是否是您的期望(作为消费者和消费)。

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

dstat -tdf --disk-util
Run Code Online (Sandbox Code Playgroud)

因此,如果您有 I/O 瓶颈,这将告诉您涉及哪些磁盘,以便您可以查看是否可以对此采取某些措施。

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

但是,如果您需要帮助,想要做出贡献或有一个漂亮的新想法,请与我联系以了解我们如何继续...


waz*_*oox 15

安装iotop,并找到哪个程序正在执行它。