Unix 在linux中调试100%iowait问题

Unix 在linux中调试100%iowait问题,unix,iowait,Unix,Iowait,我一直在追查为什么我的箱子上有100%的欠费。若我执行类似于mysql select查询的操作,系统将转到100%iowait(在我的服务器上的多个cpu上),这会杀死我的看门狗,有时还会杀死httpd本身 在vmstat中,我看到大约每8秒就有5MB的磁盘写入。这会导致至少一个cpu(4个cpu中的一个)阻塞一两秒 我不得不说,在我的ext3中有几百万个文件(我尝试了ext2,没有启用atime和日志记录)。有一个硬件raid,镜像了两个300gbide 我错过了比赛。有没有办法找出是什么原因

我一直在追查为什么我的箱子上有100%的欠费。若我执行类似于mysql select查询的操作,系统将转到100%iowait(在我的服务器上的多个cpu上),这会杀死我的看门狗,有时还会杀死httpd本身

在vmstat中,我看到大约每8秒就有5MB的磁盘写入。这会导致至少一个cpu(4个cpu中的一个)阻塞一两秒

我不得不说,在我的ext3中有几百万个文件(我尝试了ext2,没有启用atime和日志记录)。有一个硬件raid,镜像了两个300gbide

我错过了比赛。有没有办法找出是什么原因导致这些书写?如何加快文件系统的速度

欢迎提出意见


谢谢大家!

好,可能的诊断步骤(针对后代):

  • 您是否已确认,您实际上没有耗尽虚拟内存,因此无法将进程交换到磁盘

  • 如果不是内核交换,那么您可以使用
    strace
    (因为您没有
    dtrace
    )来证明是否是MySQL在进行写操作


  • 你能提供硬件和O/S配置的更多细节吗?

    使用。

    虚拟内存被完全禁用:)有足够的内存,我已经将mysql设置为使用1GB的内存作为索引。