zoukankan      html  css  js  c++  java
  • Linux disk 100% busy,谁造成的?

    disk 100% busy,谁造成的?

    iostat等命令看到的是系统级的统计,比如下例中我们看到/dev/sdb很忙,如果要追查是哪个进程导致的I/O繁忙,应该怎么办?

    进程的内核数据结构中包含了I/O数量的统计:

    可以直接在 /proc/<pid>/io 中看到:

    我们关心的是实际发生的物理I/O,从上面的注释可知,应该关注 read_bytes 和 write_bytes。请注意这都是历史累计值,从进程开始执行之初就一直累加。如果要观察动态变化情况,可以使用 pidstat 命令,它就是利用了/proc/<pid>/io 中的原始数据计算单位时间内的增量:

    另外还有一个常用的命令 iotop 也可以观察进程的动态I/O:

    pidstat 和 iotop 也有不足之处,它们无法具体到某个硬盘设备,如果系统中有很多硬盘设备,都在忙,而我们只想看某一个特定的硬盘的I/O来自哪些进程,这两个命令就帮不上忙了。怎么办呢?可以用上万能工具SystemTap。比如:我们希望找出访问/dev/sdb的进程,可以用下列脚本,它的原理是对submit_bio下探针:

    这个脚本需要在命令行参数中指定需要监控的硬盘设备号,得到这个设备号的方法如下:

    执行脚本,我们看到:

    结果很令人满意,我们看到是进程号为31202的dd命令在对/dev/sdb进行读操作。

    转载自:

    linuxperf.com/?cat=11

  • 相关阅读:
    Vue 框架-09-初识组件的应用
    Vue 框架-08-基础实战 demo
    Vue 框架-07-循环指令 v-for,和模板的使用
    Vue 框架-06-条件语句 v-if 实现选项卡效果
    Vue 框架-05-动态绑定 css 样式
    Vue 框架-04-计算属性
    Vue 框架-03-键盘事件、健值修饰符、双向数据绑定
    MUI框架-14-使用自定义icon图标、引入阿里巴巴矢量图标
    在【此电脑】隐藏【设备和驱动器】中不需要的图标
    MUI框架-13-使用百度地图 API(图文教程)
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/11096514.html
Copyright © 2011-2022 走看看