• Linux IO分析


    一、iostat命令

    1.1 安装iostat命令,用于监控系统io的负载情况,安装sysstat工具包

    yum install sysstat -y

    1.2 默认命令输出,如果iostat不带任何参数或选项,iostat会打印一个自启动以来的带选项-c和-d的汇总报告

    先查看avg-cpu看瓶颈是否出现在IO层面

    # iostat 
    Linux 3.10.0-1160.53.1.el7.x86_64 (gitlab)      04/05/2022      _x86_64_        (8 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               1.32    0.00    0.70    1.39    0.14   96.45
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    vda              39.95         0.53       224.74    2115465  897466244
    vdb               0.00         0.00         0.01       4848      42924
    dm-0             0.00         0.00         0.00          0          0
    #%user        用户模式下所花费的时间  <60%
    #%nice         用户进程改变过优先级的进程占用CPU时间 
    #%system     内核进程所花费的CPU时间  sys+user  <80%
    #%iowait       IO等待所占用的CPU时间(重要)  <30% 
    #%steal         丢失时间占用CPU
    #%idle          CPU处在中断(空闲)状态的时间
    一般来说%idle持续游走在20%以下,瓶颈出现在CPU的性能层面。
    %iowait高而%idle在70%以上,瓶颈出现在I/O设备层面。
    
    Device:        设备名dm是disk mapper的缩写,可以在/dev/mapper下查对应谁,参数-N 可以将dm输换成相应的LVM名
    tps            设备每秒接受的IO传输请求tps=transfers per second 【每秒处理事务数IOPS】
    kB_read/s      设备每秒读取的数据量(KB)参数-m 可以转换成MB
    kB_wrtn/s      设备每秒写入的数据量(KB)
    kB_read        设备读取的总数据量
    kB_wrtn        设备写入的总数据量
    单纯iostat输出的值并不代表当前I/O状态,而是系统
    当前状态请用iostat 1 2 输出的第2组值来获得

    1.3 相关参数

    -c      显示CPU报告
    -d      显示磁盘报告
    -k      使用KB代替(512B)块数目
    -m      使用MB代替(512B)块数目
    -p      包括单个分区的统计信息
    -t      时间戳输出
    -x      扩展信息统计
    -z      不显示空活动汇总
    -N 显示磁盘阵列(LVM) 信息

    1.4 常用命令参数

    iostat -d -x -p -N 

    rrqm/s        每秒合并放入驱动请求队列的读请求数
    wrqm/s        每秒合并放入驱动请求队列的写请求数
    r/s           每秒发给磁盘设备的读请求数    # 每秒完成读写I/O设备次数(顾客总数)
    w/s           每秒发给磁盘设备的写请求数    # 每秒完成读写I/O设备次数(顾客总数)
    rkB/s         每秒从磁盘设备读取的KB数
    wkB/s         每秒从磁盘设备写入的KB数
    avgrq-sz      平均请求大小,单位为扇区(512B)    # 平均I/O数据大小,平均每人所买的东西多少
    avgqu-sz      在驱动请求队列和在设备中活跃的平均请求数    # 单位时间里平均排队等待人的个数
    await         平均I/O响应时间,包括在驱动请求队列里等待和设备的I/O响应时间(ms)   # 每人买完包子平均等待时间
    r_await       和await一样,不过只针对读(ms) 
    w_await       和await一样,不过只针对写(ms) 
    svctm        (推断)磁盘设备的I/O平均响应时间(ms)
    %util         设备忙处理I/O请求的百分比(使用率)    # 单位时间内包子铺有人买包子的时间比例

    输出性能里最重要的指标是await。如果应用程序和文件系统使用了降低写延时(例如,写空)的方法,w_await可能不那么重要,而你可以主要关注 r_wait

    二、iotop

    安装命令

    yum install iotop -y

    常用参数

    -o:只显示有io操作的进程
    -b:批量显示,无交互,主要用作记录到文件。
    -n NUM:显示NUM次,主要用于非交互式模式。
    -d SEC:间隔SEC秒显示一次。
    -p PID:监控的进程pid。
    -u USER:监控的进程用户
  • 相关阅读:
    element-ui Message组件源码分析整理笔记(八)
    element-ui Pagination组件源码分析整理笔记(七)
    element-ui Tag、Dialog组件源码分析整理笔记(五)
    element-ui Progress、Badge、Alert组件源码分析整理笔记(四)
    element-ui inputNumber、Card 、Breadcrumb组件源码分析整理笔记(三)
    element-ui switch组件源码分析整理笔记(二)
    element-ui button组件 radio组件源码分析整理笔记(一)
    vue项目中引入bootstrap
    微信获取openId
    react各种表单的写法
  • 原文地址:https://www.cnblogs.com/cyleon/p/16102482.html
Copyright © 2020-2023  润新知