如何诊断不稳定的磁盘行为?

如何诊断不稳定的磁盘行为?

我有一个带有用户 lighttpd 和 CGI​​ 脚本的网站。

升级到 Fedora 11 (ext4) 后,磁盘访问变得不稳定。时间python -c 'import cgi'在 0.1 到近 10 秒之间变化: 图形

我如何诊断问题?(工具、方法、最佳实践......)

2009 年 7 月 30 日更新:
发现几个 CGI 进程占用了驱动器。关闭它们后,图表稳定在 0.02 和 0.03 之间。仍然没有得到答案如何来诊断此类问题。

答案1

诊断此类问题的唯一方法是使用大量数据。熟悉和vmstatiostat我最近在此主题dstat将两者有效结合起来。

对于您描述的问题,此命令可能会有用:

$ dstat -M app -cdnygl

它将报告 CPU、IO(磁盘和网络)、中断、交换和平均负载。作为一项不错的小福利,它将包括拍摄快照时“最昂贵”的进程的名称。不幸的是,该特定命令产生的输出太宽泛,无法在此处粘贴,因此这里有一个更保守的版本:

$ dstat -M 应用程序-cdn
--最昂贵-- ----总 CPU 使用率---- -dsk/total- -net/total-
     进程 |usr sys idl wai hiq siq| 读写| recv 发送
bacula-fd 0| 1 0 98 0 0 0| 426k 108k| 0 0
重击 1| 2 2 96 0 0 0| 0 20k|1460B 1804B
Apache2 8| 4 2 94 0 0 0| 0 0 | 76k 15k
                  | 1 3 96 0 0 0| 0 0 |1132B 1034B
apache2 1| 2 2 96 0 0 0| 0 8192B| 11k 3895B
                  | 2 1 96 0 0 0| 0 32k|3322B 1338B
kipmi0 1| 2 2 96 0 0 0| 0 0 |1309B 1146B

答案2

如果是全新安装,那么 apropos、whatis 使用的 makewhatis 等工具可能会导致磁盘占用过高。等待几天让一切稳定下来(updatedb、prelink、makewhatis 等),然后时间可能会一致。

它还取决于您在服务器上执行的其他操作以及 cgi 脚本实际在执行的操作、它从哪里获取输入、输入的大小等等。

此外,如果磁盘非常旧,请使用诊断工具(如希捷seatools) 来查找控制器/坏扇区问题。如果驱动器确实来自 Seagate,这些工具还允许您选择性地修复扇区。

答案3

你真的需要/想要在生产服务器上使用 ext4 吗?对于我对服务器的品味来说,它仍然有点太过青涩。

相关内容