评估Linux上的CPU I / O等待
做一个顶部检查io等,我得到这些数字:
Cpu(s): 6.7%us,1.4%sy,1.2%ni,85.5%id,5.0%wa,0.0%hi,0.3%si,0.0%st 看看这些数字(%us~ =%wa),它们是否意味着: >有多少CPU进程在等待工作? (=>坏) 解决方法
评估这些数字时需要小心.
> IOWait是相关的,但不一定与磁盘活动线性相关. 在此上下文中,IOWait是CPU(或所有CPUS)空闲的给定时间段内的时间度量,因为所有可运行的任务都在等待IO操作得到满足. 在您的示例中,如果您有20个CPU,其中一个任务真正锤击磁盘,则此任务(实际上)在IOWait中花费100%的时间,随后运行此任务的CPU将花费近100%的时间在IOWAIT.但是,如果其他19个CPU实际上处于空闲状态且未使用该磁盘,则它们会报告0%IOWait.这导致平均Iowait百分比为5%,实际上如果您要查看磁盘利用率,则可以报告100%.如果在磁盘上等待的应用程序对您来说至关重要 – 这5%有点误导,因为瓶颈中的任务可能会出现比5%慢的性能问题.
也许,记住大多数CPU运行任务和任务都是请求IO.如果两个单独的任务忙于在两个单独的CPU上查询同一个磁盘,这将使两个CPU处于100%IOWait(并且在20个CPU示例中为10%的总体平均值IOWait). 基本上,如果你有很多请求IO的任务,特别是来自同一磁盘,加上该磁盘100%被利用(参见iostat -mtx),那么这很糟糕.
不会.工作流程几乎肯定会等待IO的全职工作.这只是平均报告情况(“其他CPU不忙”)捏造CPU有许多任务要运行的百分比或事实,其中许多不需要执行IO. 作为一般规则,在多CPU系统上,IOWait百分比等于您所分配的CPU数量100可能需要调查.
往上看.但请注意,执行大量写入的应用程序会受到限制(停止使用写回,开始直接写入磁盘).这导致这些任务产生高IOWait,而同一CPU上的其他任务写入同一磁盘则不会.所以存在异常. 另请注意,如果您有1个专门用于运行2个任务的CPU,一个是繁重的IO读/写,另一个是繁重的CPU用户,那么在这种情况下CPU将报告50%IOWait,如果您有10个这样的任务它将是10%的IOWait(以及可怕的负载),因此报告的数量远低于实际可能存在的问题. 我认为你真的需要看看iostat -mtx来获得一些磁盘利用率指标,而pidstat -d来获取一些每个进程的指标,然后考虑以这种方式攻击这些磁盘的应用程序是否可能导致问题,或其他潜在的应用程序,这些磁盘可能会导致问题. CPU指标确实可以作为潜在问题的指标,它们是通用的,因此了解它们可能过于笼统的地方是一件好事. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |