zoukankan      html  css  js  c++  java
  • iostat使用心得

    
    

    iostat用于输出CPU和磁盘I/O相关的统计信息. 
    命令格式:

    iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ] | ALL ] [ -p [ device | ALL ]  ]
    [ interval [ count ] ]


    -c 仅显示CPU统计信息.与-d选项互斥.
     -d 仅显示磁盘统计信息.与-c选项互斥.
     -k 以K为单位显示每秒的磁盘请求数,默认单位块.
     -p device | ALL
      与-x选项互斥,用于显示块设备及系统分区的统计信息.也可以在-p后指定一个设备名,如:
      # iostat -p hda
      或显示所有设备
      # iostat -p ALL
     -t    在输出数据时,打印搜集数据的时间.
     -V    打印版本号和帮助信息.
     -x    输出扩展信息.


    常用:
    iostat -dx 1
    iostat


    
    
    rrqm/s:read request merge将读入请求合并后,每秒发送到设备的读入请求数.读取时等几秒过程中,有多少块是连续的,连续的块将merge一起来读取;这个可以看到业务的关系,是不是连续的读,越大说明越多连续读。
    wrqm/s:将写入请求合并后,每秒发送到设备的写入请求数,也能说明业务关系,当该值很大时,说明可以考虑将块划分大一点。
    r/s:每秒读取的次数。
    w/s:每秒写入的次数。
    rkB/s:读取多少kB每秒。    
    wkB/s:写入多少kB每秒。
    avgrq-sz:average request size 发送到设备的请求的平均大小,单位是扇区,一个扇区一般为512B,16个扇区为8KB。上述就是438*8=3504。 
    avgqu-sz:发送到设备的请求的平均队列长度
    await:I/O请求平均执行时间.包括发送请求和执行的时间.单位是毫秒。 
    r_await:读的平均耗时。
    w_await:写入平均耗时。
    svctm:发送到设备的I/O请求的平均执行时间.单位是毫秒。
    %util:队列不为空的占比,一定程度可以反映系统是否繁忙。在I/O请求发送到设备期间,占用CPU时间的百分比.用于显示设备的带宽利用率。
    Blk_read:读入块的当总数.
    Blk_wrtn:写入块的总数.
    kB_read/s:每秒从驱动器读入的数据量,单位为K.
    kB_wrtn/s:每秒向驱动器写入的数据量,单位为K.
    kB_read:读入的数据总量,单位为K.
    kB_wrtn:写入的数据总量,单位为K.
    rsec/s:每秒从设备读入的扇区数.
    wsec/s:每秒向设备写入的扇区数.


    await的大小一般取决于服务时间(svctm) 以及 I/O 队列的长度和 I/O 请求的发出模式。
    如果 svctm 比较接近 await,说明I/O 几乎没有等待时间;
    如果 await 远大于 svctm,说明 I/O队列太长,应用得到的响应时间变慢,
    如果响应时间超过了用户可以容许的范围,这时可以考虑更换更快的磁盘,调整内核 elevator算法,优化应用,或者升级 CPU。
    队列长度(avgqu-sz)也可作为衡量系统 I/O 负荷的指标,但由于 avgqu-sz 是按照单位时间的平均值,所以不能反映瞬间的 I/O 洪水

     svctm:每次io设备的服务时间(毫秒),它的大小一般和磁盘性能有关:CPU/内存的负荷也会对其有影响,请求过多也会间接导致 svctm 的增加

     %util:处理io操作的cpu比例,如果这个着接近100%,说明io请求非常多,cpu的所有时间都用来处理io请求,io系统负载很大(也有可能cpu资源不足),磁盘可能存在瓶颈;在%util等于70%的时候,io的读取就会有很多等待。




    ~$ iostat -dx 1
    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
    zfsds0            0.00     0.00    0.00  438.00     0.00  3504.00    16.00     1.00    4.57    0.00    2.28   2.28 100.00

    iostat

    140215195215332.png

    ~$ iostat 


    第一部分包含了CPU报告
    %user : 显示了在执行用户(应用)层时的CPU利用率 %nice : 显示了在以nice优先级运行用户层的CPU利用率 %system : 显示了在执行系统(内核)层时的CPU利用率 %iowait : 显示了CPU在I/O请求挂起时空闲时间的百分比 %steal : 显示了当hypervisor正服务于另外一个虚拟处理器时无意识地等待虚拟CPU所占有的时间百分比。 %idle : 显示了CPU在I/O没有挂起请求时空闲时间的百分比 第二部分包含了设备利用率报告 Device : 列出的/dev 目录下的设备/分区名称 tps : 显示每秒传输给设备的数量。更高的tps意味着处理器更忙。 Blk_read/s : 显示了每秒从设备上读取的块的数量(KB,MB) Blk_wrtn/s : 显示了每秒写入设备上块的数量(KB,MB) Blk_read : 显示所有已读取的块 Blk_wrtn : 显示所有已写入的块
     
     
  • 相关阅读:
    ListView添加HeaderView的顺序问题
    shape与selector配合使用实现Tab下划线效果
    在java代码中设置TextView的字体大小,单位设为sp
    一个textView中的文字设置成两种颜色
    Android studio生成类图
    linux常用命令总结
    主机CPU与显卡选择
    电脑与显示器四种接口
    Linux shell
    Linux 常用命令二
  • 原文地址:https://www.cnblogs.com/kuang17/p/6808325.html
Copyright © 2011-2022 走看看