zoukankan      html  css  js  c++  java
  • io异常消耗定位进程

    iostat 工具定位到磁盘

    #iostat -d 3 -k -x -t 30

    07/14/2020 03:42:55 PM

    Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util

    vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

    scd0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

    通过iostat命令确认 io异常发生在

    哪个磁盘、

    哪个时间点、

    磁盘的iops以及数据吞吐量

     

    iotop 工具定位到进程

    #iotop -b -o -d 3 -t -qqq -n 30
    15:44:59 254 be/3 root 0.00 B/s 10.61 K/s 0.00 % 0.11 % [jbd2/vda1-8]
    15:44:59 2337 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.01 % [kworker/0:0]

    通过iotop 命令检查问提发生
    哪个时间点、
    哪个pid号和进程参数、
    进程产生的磁盘消耗吞吐量、
    占用百分比

     

    排查过程:

    1、top 命令检查iowait 情况,已经是否有进程消耗cpu过高,找到pid号
    2、通过iostat -d -x 1检查是否磁盘io使用率高引起的。util%
    3、通过pidstat -d 1 查到io写入高的进程,以及对应的pid号
    4、通过strace -f -T -tt -p pid 通过strace 跟踪pid对应的进程 和子进程 的消耗时间和跟踪时间
    5、lsof -p 子进程号 找到系统调用(pid)的操作对象
    6、如果通过ps 命令找不到子进程号,可以通过pstree -p|grep 子进程名 查找。

  • 相关阅读:
    Windows 黑屏问题
    Java原生API操作XML
    Java使用Schema模式对XML验证
    使用Spring构建RMI服务器和客户端
    Eclipse多个console的使用
    jsr133-第一二章
    装个centos虚拟机之设置桥接网络
    Hadoop学习
    关于配置中心选型
    maven的SNAPSHOT版本和正式版本不同
  • 原文地址:https://www.cnblogs.com/plefan/p/13797823.html
Copyright © 2011-2022 走看看