加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

评估Linux上的CPU I / O等待

发布时间:2020-12-13 16:54:17 所属栏目:Linux 来源:网络整理
导读:做一个顶部检查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%? (=在这种情况下确定) 别的 解决
做一个顶部检查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指标确实可以作为潜在问题的指标,它们是通用的,因此了解它们可能过于笼统的地方是一件好事.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读