• iostat命令


    1、介绍

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

    2、语法格式

    iostat [ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -s ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ] [-j { ID | LABEL | PATH | UUID | ... } ] [ -o JSON ] [ [ -H ] -g group_name ] [ --human ] [-p [ device [,...] | ALL ] ] [ device [...] | ALL ] [ interval [ count ] ]
    interval:间隔多久统计一次数据,可选
    count:统计一次,可选
    注意:若只传了 interval,则统计次数是无限次,结束统计后会打印本次所有数据的平均值

    选项:
    -c:仅显示CPU使用情况;
    -d:仅显示设备利用率;
    -k:显示状态以千字节每秒为单位,而不使用块每秒;
    -m:显示状态以兆字节每秒为单位;
    -p:仅显示块设备和所有被使用的其他分区的状态;
    -t:显示每个报告产生时的时间;
    -V:显示版号并退出;
    -x:显示扩展状态。
    参数:
    间隔时间:每次报告的间隔时间(秒);
    次数:显示报告的次数。

     3、实例

    • 每隔 1s 统计打印一次数据,统计无限次

    iostat 1

    • 每隔 2s 统计打印一次数据,共统计 5 次

    iostat 2 5

    • 默认输出显示的字段说明

    cpu属性值说明:
    %user:CPU处在用户模式下的时间百分比。
    %nice:CPU处在带NICE值的用户模式下的时间百分比。
    %system:CPU处在系统模式下的时间百分比。
    %iowait:CPU等待输入输出完成时间的百分比。
    %steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
    %idle:CPU空闲时间百分比。
    
    备注:
    如果%iowait的值过高,表示硬盘存在I/O瓶颈
    如果%idle值高,表示CPU较空闲
    如果%idle值高但系统响应慢时,可能是CPU等待分配内存,应加大内存容量。
    如果%idle值持续低于10,表明CPU处理能力相对较低,系统中最需要解决的资源是CPU。
    
    cpu属性值说明:
    tps:该设备每秒的传输次数
    kB_read/s:每秒从设备(drive expressed)读取的数据量;
    kB_wrtn/s:每秒向设备(drive expressed)写入的数据量;
    kB_read:  读取的总数据量;
    kB_wrtn:写入的总数量数据量;
    • 只显示系统 CPU 信息,并伴随着时间戳

    •  只显示指定磁盘的统计信息

    •  显示指定磁盘和他所有分区的信息,并友好显示

    •  整合所有设备的磁盘信息

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

    #【-d 显示磁盘使用情况,-x 显示详细信息】
    # d: detail

    说明:
    rrqm/s: 每秒进行 merge 的读操作数目。即 rmerge/s
    wrqm/s: 每秒进行 merge 的写操作数目。即 wmerge/s
    r/s: 每秒完成的读 I/O 设备次数。即 rio/s
    w/s: 每秒完成的写 I/O 设备次数。即 wio/s
    rkB/s: 每秒读K字节数。是 rsect/s 的一半,因为每扇区大小为512字节。
    wkB/s: 每秒写K字节数。是 wsect/s 的一半。
    avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。 每个请求平均大小,单位是扇区数,一般在200~400之间算是正常和理想的状态,如果这个值比较小,比方说只在100左右,说明太多的IO请求没有被合并,或者大的IO请求被“打散”,在写操作时,过多小的请求会造成磁盘磁头的频繁移动,降低IO性能。
    avgqu-sz: 平均I/O队列长度。 avgqu-sz 平均请求队列长度,这个值在正常的系统中不应超过113太多,如果在200左右,甚至上千那说明发生了IO拥塞,而系统还在向IO请求队列中放请求(有一个例外是在执行sync,fsync操作时,该值到达最大值8192是正常的)
    rsec/s: 每秒读扇区数。即 rsect/s
    wsec/s: 每秒写扇区数。即 wsect/s
    r_await:每个读操作平均所需的时间
    不仅包括硬盘设备读操作的时间,还包括了在kernel队列中等待的时间。
    w_await:每个写操作平均所需的时间
    不仅包括硬盘设备写操作的时间,还包括了在kernel队列中等待的时间。
    await: 平均每次设备I/O操作的等待时间 (毫秒)。
    svctm: 平均每次设备I/O操作的服务时间 (毫秒)。
    %util: 一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比
    
    备注:如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;如果 await 远大于 svctm,
    说明I/O 队列太长,io响应太慢,则需要进行必要优化。如果avgqu-sz比较大,也表示有当量io在等待。

      

  • 相关阅读:
    规则引擎集成接口(一)初始体验
    转载--Defunct僵尸进程
    转载--sigprocmask阻塞进程
    转载--__attribute__ 你知多少?
    转载--va_list
    转载--如何使用# ## ... _ _VA_ARGS_ _
    转载--C语言中的__FILE__、__LINE__和__func__
    转载--wait waitpid解释
    转载--c语言宏定义(1)
    转载--c语言宏定义(2)
  • 原文地址:https://www.cnblogs.com/uestc2007/p/14647288.html
Copyright © 2020-2023  润新知