当前位置:  开发笔记 > 运维 > 正文

如何找出消耗"等待CPU"的进程(即I/O被阻止)

如何解决《如何找出消耗"等待CPU"的进程(即I/O被阻止)》经验,为你挑选了3个好方法。

通过top它可以很容易地找出每个作业使用多少CPU.但是,我想找一个导致高等待CPU的工作.有没有办法找出哪些作业在I/O上被阻止?



1> Johannes Wei..:

在IO上阻止的进程是D在状态列(S顶部的列)中标记的进程.



2> 小智..:

更准确地说,使用此命令可以轻松找出哪些进程正在"占用"您的CPU周期:

while true; do date; ps auxf | awk '{if($8=="D") print $0;}'; sleep 1; done

这个网址可能会有所帮助:Linux等待IO问题


看-n 1"(ps aux | awk'\ $ 8~/D/{print\$ 0}')"

3> ephemient..:

iotop和latencytop可能会有所帮助.两者都没有给出"由进程引起的CPU等待时间" - 我不确定它是否有意义,因为CPU可以并且确实在等待IO时为其他进程提供服务 - 但这两个工具给出了概述(分别)系统I/O流量和调度延迟.


指向LatencyTOP.org的链接已失效-没有根DNS记录。该项目似乎已经死了,自2009年以来没有任何承诺。
推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有