zoukankan      html  css  js  c++  java
  • iostat命令

    iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。

    [root@elk2 ~]# iostat 
    Linux 3.10.0-957.1.3.el7.x86_64 (elk2)  09/24/2021      _x86_64_        (4 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.06    0.00    0.04    0.01    0.00   99.89
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    vda               0.91         0.11        13.57    3069867  393757408
    

    avg-cpu段字段含义:

    %user: 在用户级别运行所使用的CPU的百分比。
    %nice: nice操作所使用的CPU的百分比。
    %system: 在系统级别(kernel)运行所使用CPU的百分比。
    %iowait: CPU等待硬件I/O时,所占用CPU百分比。
    %steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
    %idle: CPU空闲时间的百分比。
    

    备注:

    如果%iowait的值过高,表示硬盘存在I/O瓶颈。
    如果%idle值高,表示CPU较空闲。
    如果%idle值高但系统响应慢时,可能是CPU等待分配内存,应加大内存容量。
    如果%idle值持续低于10,表明CPU处理能力相对较低,系统中最需要解决的资源是CPU。
    

    Device段字段含义:

    tps:该设备每秒的传输次数(Indicate the number of transfers per second that were issued to the device.)。"一次传输"意思是"一次I/O请求"。多个逻辑请求可能会被合并为"一次I/O请求"。"一次传输"请求的大小是未知的。
    kB_read/s:每秒从设备(drive expressed)读取的数据量;
    kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
    kB_read:读取的总数据量;
    kB_wrtn:写入的总数量数据量;这些单位都为Kilobytes。
    

    iostat常用参数说明:

    -c           # 仅显示CPU统计信息.与-d选项互斥.
    -d           # 仅显示磁盘统计信息.与-c选项互斥.
    -k           # 以K为单位显示每秒的磁盘请求数,默认单位块.
    -t           # 在输出数据时,打印搜集数据的时间.
    -V           # 打印版本号和帮助信息.
    -x           # 输出扩展信息.
    

    显示磁盘信息:

    [root@elk2 ~]# iostat -d
    Linux 3.10.0-957.1.3.el7.x86_64 (elk2)  09/24/2021      _x86_64_        (4 CPU)
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    vda               0.91         0.11        13.57    3078171  393805196
    

    显示cpu信息:

    [root@elk2 ~]# iostat -c
    Linux 3.10.0-957.1.3.el7.x86_64 (elk2)  09/24/2021      _x86_64_        (4 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.06    0.00    0.04    0.01    0.00   99.89
    

    以m为单位显示扩展信息:

    [root@elk2 ~]# iostat -xm
    Linux 3.10.0-957.1.3.el7.x86_64 (elk2)  09/24/2021      _x86_64_        (4 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.06    0.00    0.04    0.01    0.00   99.89
    
    Device:         rrqm/s   wrqm/s     r/s     w/s    rMB/s    wMB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
    vda               0.00     0.45    0.01    0.90     0.00     0.01    30.09     0.00    1.17    7.61    1.14   0.09   0.01
    

    定时显示所有信息:

    # 每隔2秒刷新显示,且显示3次
    [root@elk2 ~]# iostat 2 3
    Linux 3.10.0-957.1.3.el7.x86_64 (elk2)  09/24/2021      _x86_64_        (4 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.06    0.00    0.04    0.01    0.00   99.89
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    vda               0.91         0.11        13.58    3329559  394280868
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.12    0.00    0.38    0.12    0.00   99.38
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    vda              26.00         0.00       582.00          0       1164
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.38    0.00    0.00    0.13    0.00   99.50
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    vda              32.50         0.00       792.00          0       1584
    

    显示指定磁盘信息:

    [root@elk2 ~]# iostat -d /dev/vda
    Linux 3.10.0-957.1.3.el7.x86_64 (elk2)  09/24/2021      _x86_64_        (4 CPU)
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    vda               0.91         0.11        13.59    3329831  394331236
    

    显示tty和cpu信息:

    [root@elk2 ~]# iostat -t
    Linux 3.10.0-957.1.3.el7.x86_64 (elk2)  09/24/2021      _x86_64_        (4 CPU)
    
    09/24/2021 03:07:57 PM
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.06    0.00    0.04    0.01    0.00   99.89
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    vda               0.91         0.11        13.59    3330087  394361676
    

    以M为单位显示所有信息:

    [root@elk2 ~]# iostat -m
    Linux 3.10.0-957.1.3.el7.x86_64 (elk2)  09/24/2021      _x86_64_        (4 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.06    0.00    0.04    0.01    0.00   99.89
    
    Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
    vda               0.91         0.00         0.01       3252     385132
    

    查看设备使用率(%util)、响应时间(await):

    # -d显示磁盘使用情况,-x显示详细信息
    # d:detail
    [root@elk2 ~]# iostat -d -x -k 1 1
    Linux 3.10.0-957.1.3.el7.x86_64 (elk2)  09/24/2021      _x86_64_        (4 CPU)
    
    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.45    0.01    0.90     0.12    13.59    30.12     0.00    1.17    7.55    1.14   0.09   0.01
    

    Device字段含义:

    rrqm/s:每秒读请求被合并次数
    wrqm/s:每秒写请求被合并次数
    r/s:每秒完成的读次数
    w/s:每秒完成的写次数
    rkB/s:每秒读数据量(kb)
    wkB/s:每秒写数据量(kb)
    avgrq-sz:平均每次IO请求的扇区大小
    avgqu-sz:平均每次IO请求的队列长度(越短越好)
    await:平均每次IO请求等待时间(毫秒),一般的系统IO等待时间应该低于5ms,如果大于10ms就比较大了。这个时间包括了队列时间和服务时间,也就是说,一般情况下,await大于svctm,它们的差值越小,则说明队列时间越短,反之差值越大,队列时间越长,说明系统出了问题。
    r_await:读的平均耗时(毫秒)
    w_await:写入平均耗时(毫秒)
    svctm:平均每次IO请求处理时间(毫秒),如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢。
    %util:IO队列非空比例,该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了。
    
  • 相关阅读:
    Effective Java 19 Use interfaces only to define types
    Effective Java 18 Prefer interfaces to abstract classes
    Effective Java 17 Design and document for inheritance or else prohibit it
    Effective Java 16 Favor composition over inheritance
    Effective Java 15 Minimize mutability
    Effective Java 14 In public classes, use accessor methods, not public fields
    Effective Java 13 Minimize the accessibility of classes and members
    Effective Java 12 Consider implementing Comparable
    sencha touch SortableList 的使用
    sencha touch dataview 中添加 button 等复杂布局并添加监听事件
  • 原文地址:https://www.cnblogs.com/even160941/p/15330983.html
Copyright © 2011-2022 走看看