• Centos7 查看磁盘i/o, 定位占用i/o读写高的进程


    概要:

    iostat 主要用于输出磁盘IO 和 CPU的统计信息。

    iostat属于sysstat软件包。可以用yum install sysstat 直接安装。

    1、iostat 用法

    用法:iostat [选项] [<时间间隔>] [<次数>]

    命令参数:
    -c: 显示CPU使用情况
    -d: 显示磁盘使用情况
    -N: 显示磁盘阵列(LVM) 信息
    -n: 显示NFS 使用情况
    -k: 以 KB 为单位显示
    -m: 以 M 为单位显示
    -t: 报告每秒向终端读取和写入的字符数和CPU的信息
    -V: 显示版本信息
    -x: 显示详细信息
    -p:[磁盘] 显示磁盘和分区的情况
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2、先用iostat查看磁盘io 是否读写负载很高

    iostat -d -m -x 1 10, 查看TPS和吞吐量信息

    [root@app01 ~]# iostat -d -m -x 1 10
    Linux 3.10.0-1160.15.2.el7.x86_64 (app01)       2022年08月02日  _x86_64_        (4 CPU)
    
    Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
    fd0               0.00     0.00    0.00    0.00     0.00     0.00     8.00     0.00   41.50   41.50    0.00  41.50   0.00
    sdb               0.00     0.03    0.31    0.34     0.01     0.01    64.67     0.02   27.73   56.85    1.22   0.16   0.01
    sda               0.00     0.01    0.02   15.26     0.00     0.08    10.46     0.01    0.49    5.92    0.48   0.25   0.38
    dm-0              0.00     0.00    0.02   15.27     0.00     0.08    10.45     0.01    0.49    5.93    0.48   0.25   0.38
    dm-1              0.00     0.00    0.00    0.00     0.00     0.00    47.27     0.00    0.49    0.49    0.00   0.39   0.00
    dm-2              0.00     0.00    0.00    0.00     0.00     0.00    46.40     0.00    6.53    6.53    0.00   2.36   0.00
    dm-3              0.00     0.00    0.31    0.37     0.01     0.01    61.42     0.02   27.32   56.93    2.27   0.15   0.01
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    如果%util接近100%,表明I/O请求太多,I/O系统已经满负荷,磁盘可能存在瓶颈,一般%util大于70%,I/O压力就比较大,读取速度有较多的wait,然后再看其他的参数。

    rrqm/s:每秒进行merge的读操作数目。即delta(rmerge)/s
    wrqm/s:每秒进行merge的写操作数目。即delta(wmerge)/s
    r/s:每秒完成的读I/O设备次数。即delta(rio)/s
    w/s:每秒完成的写I/0设备次数。即delta(wio)/s
    rsec/s:每秒读扇区数。即delta(rsect)/s
    wsec/s:每秒写扇区数。即delta(wsect)/s
    rKB/s:每秒读K字节数。是rsec/s的一半,因为每扇区大小为512字节
    
    wKB/s:每秒写K字节数。是wsec/s的一半
    avgrq-sz:平均每次设备I/O操作的数据大小(扇区)。即delta(rsect+wsect)/delta(rio+wio)
    avgqu-sz:平均I/O队列长度。即delta(aveq)/s/1000(因为aveq的单位为毫秒)
    await:平均每次设备I/O操作的等待时间(毫秒)。即delta(ruse+wuse)/delta(rio+wio)
    svctm:平均每次设备I/O操作的服务时间(毫秒)。即delta(use)/delta(rio+wio)
    %util:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    iostat -c 1 2
    查看cpu状态
    间隔1秒显示一次,总共显示2次

    3、找出使用io高的进程的工具 iotop

    yum install iotop -y
    
    • 1
    [root@app01 ~]# iotop
    
    • 1

    在这里插入图片描述

    4、lsof查看端口占用情况

    需要安装 :yum -y install lsof

    lsof -i 列出占用端口情况
    lsof -i:80 查看80端口情况
    
    • 1
    • 2
  • 相关阅读:
    Nacos win10 安装配置教程
    超详细!手把手带你实现一个完整的Promise
    生命周期成本VE——五十铃汽车
    Edge 浏览器『版本回退』和『关闭更新』
    C语言入门 Day_13 二维数组
    如何通过财务体系建设,助推企业数智化转型?
    今年最大的开源盛会 KubeCon 为开发者带来了什么?
    虚拟化技术 分布式资源调度
    面试官:设计模式中的适配器模式是什么?
    windows/mac/linux 用C++搭建一个刷题模拟器
  • 原文地址:https://blog.csdn.net/lihongbao80/article/details/126118191