评估Linux上的CPU I / O等待

前端之家收集整理的这篇文章主要介绍了评估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进程在等待工作? (=>坏)
>工作流程正在等待执行计划的5.0%? (=>在这种情况下确定)
>别的

解决方法

评估这些数字时需要小心.

> IOWait是相关的,但不一定与磁盘活动线性相关.
>您拥有的cpu数量会影响您的百分比.
>高Iowait(取决于您的应用程序)并不一定表明您有问题.或者,一个小的IOWait可能会为您解决问题.它基本上归结为等待的任务.

在此上下文中,IOWait是cpu(或所有cpuS)空闲的给定时间段内的时间度量,因为所有可运行的任务都在等待IO操作得到满足.

在您的示例中,如果您有20个cpu,其中一个任务真正锤击磁盘,则此任务(实际上)在IOWait中花费100%的时间,随后运行此任务的cpu将花费近100%的时间在IOWAIT.但是,如果其他19个cpu实际上处于空闲状态且未使用该磁盘,则它们会报告0%IOWait.这导致平均Iowait百分比为5%,实际上如果您要查看磁盘利用率,则可以报告100%.如果在磁盘上等待的应用程序对您来说至关重要 – 这5%有点误导,因为瓶颈中的任务可能会出现比5%慢的性能问题.

there are almost as many cpu processes waiting than working? (=> bad)

也许,记住大多数cpu运行任务和任务都是请求IO.如果两个单独的任务忙于在两个单独的cpu查询同一个磁盘,这将使两个cpu处于100%IOWait(并且在20个cpu示例中为10%的总体平均值IOWait).

基本上,如果你有很多请求IO的任务,特别是来自同一磁盘,加上该磁盘100%被利用(参见iostat -mtx),那么这很糟糕.

the working processeses are waiting 5,0% of their execution plan? (=> ok in this case)

不会.工作流程几乎肯定会等待IO的全职工作.这只是平均报告情况(“其他cpu不忙”)捏造cpu有许多任务要运行的百分比或事实,其中许多不需要执行IO.

作为一般规则,在多cpu系统上,IOWait百分比等于您所分配的cpu数量100可能需要调查.

something else

往上看.但请注意,执行大量写入的应用程序会受到限制(停止使用写回,开始直接写入磁盘).这导致这些任务产生高IOWait,而同一cpu上的其他任务写入同一磁盘则不会.所以存在异常.

另请注意,如果您有1个专门用于运行2个任务的cpu,一个是繁重的IO读/写,另一个是繁重的cpu用户,那么在这种情况下cpu将报告50%IOWait,如果您有10个这样的任务它将是10%的IOWait(以及可怕的负载),因此报告的数量远低于实际可能存在的问题.

我认为你真的需要看看iostat -mtx来获得一些磁盘利用率指标,而pidstat -d来获取一些每个进程的指标,然后考虑以这种方式攻击这些磁盘的应用程序是否可能导致问题,或其他潜在的应用程序,这些磁盘可能会导致问题.

cpu指标确实可以作为潜在问题的指标,它们是通用的,因此了解它们可能过于笼统的地方是一件好事.

猜你在找的Linux相关文章