• linux iostat用法


    iostat指令可以给我们提供丰富的IO状态数据

    1. 基本用法

    -laptop:~$ iostat -d -k 2 5
    Linux 2.6.32-21-generic (vigar-laptop)     2012年11月19日     _i686_    (4 CPU)
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda              29.01       579.76       152.34     988019     259608
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               0.00         0.00         0.00          0          0
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               4.00         0.00       550.00          0       1100
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda              19.00         0.00       908.00          0       1816
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               3.00         0.00       392.00          0        784

    参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;2 每隔1秒刷新一次,5 共显示5次

    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。

    上面的例子中,我们可以看到磁盘sda以及它的各个分区的统计数据,当时统计的磁盘总TPS是39.29,下面是各个分区的TPS。(因为是瞬间值,所以总TPS并不严格等于各个分区TPS的总和)

    2. -c 用于取cpu状态

    laptop:~$ iostat -c 2 5
    Linux 2.6.32-21-generic (vigar-laptop)     2012年11月19日     _i686_    (4CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
              24.49    0.58    4.77    3.60    0.00   66.57
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
              49.00    0.00   10.45    0.25    0.00   40.30
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
              31.22    0.24    7.07    1.46    0.00   60.00
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
              33.33    0.00    6.81    0.00    0.00   59.85
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
              29.48    0.00    7.37    0.00    0.00   63.14

    %user:用户进程时间占用量

    %nice: nice进程时间占用量。不贪婪使用cpu的进程称为nice的^^

    %system:系统时间占用量

    %iowait:等待io动作的时间占用量

    %steal:用于进程切换的时间占用量

    %idle: cpu空闲比例,最真观看出cpu负载

    3. 常用指令:

    $iostat -d -k 1 10        #查看TPS和吞吐量信息
    iostat -d -x -k 1 10      #查看设备使用率(%util)、响应时间(await)
    iostat -c 1 10            #查看cpu状态

    4. -x参数获取详细信息

    vigar@vigar-laptop:~$ iostat -d -k -x 2 5
    Linux 2.6.32-21-generic (vigar-laptop)     2012年11月19日     _i686_    (4 CPU)
    
    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
    sda               9.70    58.96   17.32    5.53   475.59   257.90    64.21     0.94   41.17   3.91   8.94
    
    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
    sda               5.50   194.00    5.50   23.00   230.00   884.00    78.18     0.37   13.12   3.51  10.00
    
    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
    sda               0.00     0.00    3.00    0.00   306.00     0.00   204.00     0.05   18.00   9.33   2.80
    
    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
    sda               5.00   114.00    8.00    4.00   782.00   472.00   209.00     0.13   11.17  10.17  12.20
    
    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
    sda               5.00     0.00    3.00    0.00   160.00     0.00   106.67     0.01    2.00   1.33   0.40

    rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。

    rsec/s:每秒读取的扇区数;wsec/:每秒写入的扇区数。r/s:The number of read requests that were issued to the device per second;w/s:The number of write requests that were issued to the device per second;

    await:每一个IO请求的处理的平均时间(单位是毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。

    %util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

    参考文章:http://www.orczhou.com/index.php/2010/03/iostat-detail/

     

     

     

  • 相关阅读:
    C++ Programming with TDD之一:GMOCK框架简介
    Linux Programming之MySQL
    Python之自动单元测试之一(unittest使用实例)
    关于过去的这一个月——面试经历
    谈谈Python中对象拷贝
    C++之Effective STL学习笔记Item21
    C++之Effective STL学习笔记Item7
    C++之Effective STL学习笔记Item20
    C++之Effective STL学习笔记Item14
    Coding Rules
  • 原文地址:https://www.cnblogs.com/vigarbuaa/p/2777124.html
Copyright © 2020-2023  润新知