如何识别大量写入磁盘?


9

服务器运行CakePHP应用程序时出现此问题。服务器异常缓慢,我首先以为这是应用程序问题,但随后我发现以5-6MB / s的速度不断写入磁盘。

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

服务器正在运行Gentoo。

Answers:



17

作为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手册页-``dstat -M time,cpu,net,disk,sys,load,proc,topcpu''。dstat随大多数发行版一起安装,因此比安装iotop更快。


3

尝试vmstat和iostat


1

您可以使用以下命令在syslog中转储磁盘活动(以及生成它的pid):

echo 1 > /proc/sys/vm/block_dump

在发出此消息之前,请确保您的系统日志不在块设备上,否则您将陷入无限循环。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.