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 子进程名 查找。

  • 相关阅读:
    leetcode -- Add Binary
    leetcode -- 4sum
    leecode -- 3sum Closet
    C++单例模式
    MapReduce的模式、算法和用例
    react 学习笔记
    css3 文字过长用...代替
    scss/css 中添加ie hack
    springmvc 解决跨域CORS
    springmvc 添加Junit4
  • 原文地址:https://www.cnblogs.com/plefan/p/13797823.html
Copyright © 2011-2022 走看看