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

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

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

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

2009年7月30日更新:
发现有几个CGI进程占用了硬盘空间。 杀死他们后,graphics稳定在0.02和0.03之间。 仍然没有得到如何诊断这样的问题的答案。

诊断这种问题的唯一方法是使用大量的数据。 熟悉vmstatiostat 。 我最近在这个线程中学到的工具是dstat ,它有效地结合了这两者。

对于你所描述的问题,这个命令可能是有用的:

 $ dstat -M app -cdnygl 

它将报告CPU,IO(磁盘和networking),中断,交换和平均负载。 作为一个不错的小红利,它将包括拍摄快照时任何过程“最昂贵”的名称。 不幸的是,特定的命令产生的输出太大,无法粘贴在这里,所以这里有一个更保守的版本:

 $ dstat -M app -cdn
 - 最便宜 -  ---- total-cpu-usage ---- -dsk / total- -net / total-
     进程| usr sys idl wai hiq siq | 阅读|  recv发送
 bacula-fd 0 |  1 0 98 0 0 0 |  426k 108k |  0 0 
 bash 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

如果是全新安装,那么apropos使用的makewhatis等工具,可能会导致磁盘被大量使用。 等待几天的事情得到稳定(updatedb,prelink,makewhatis等),然后可能是时间将是一致的。

这也取决于你在服务器上做什么,以及cgi脚本实际在做什么,从哪里inputinput的大小等等。

此外,如果磁盘非常陈旧,请使用诊断工具(如希捷座椅 )来查找控制器/坏扇区问题。 如果驱动器实际上来自希捷,这些工具还可以让您select修复扇区。

你真的需要/想在生产服务器上的ext4? 根据我对服务器的喜好来说,这仍然是一个巨大的挑战。