• linux命令(1)iostat


    iostat——I/O statistics(输入输出统计)

    1. 作用

    实时列出整个CPU与接口设备的I/O状态。

    2. 安装

    iostat属于sysstat软件包,可以用yum直接安装:

    yum install sysstat

    3. 用法

    iostat 【参数】【间隔秒数】【检测次数】

    参数:[-c | -d]  [-k | -m]  [-t]  [-x]

    -c:仅显示CPU的状态;

    -d:仅显示存储设备的状态,不可与-c一起用;

    -k:默认显示的是block单位,这里可以改成KB为单位;

    -m:与-k类似,这里以MB为单位;

    -t:显示日期;

    -x:显示详细信息。

    4. 范例

    4.1 iostat

    avg-cpu: 总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值

          %user:CPU处在用户模式下的时间百分比。

          %nice:CPU处在带NICE值的用户模式下的时间百分比。

          %system:CPU处在系统模式下的时间百分比。

          %iowait:CPU等待输入输出完成时间的百分比。

          %steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。

          %idle:CPU空闲时间百分比。

    备注:  对于cpu统计信息一行,我们主要看iowait的值,它指示cpu用于等待io请求完成的时间。

       如果%iowait的值过高,表示硬盘存在I/O瓶颈;%idle值高,表示CPU较空闲;

       如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。

         %idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

    Device: 各磁盘设备的IO统计信息

          tps:平均每秒的传输次数(Indicate the number of transfers per second that were issued to the device),与数据传输“次数”有关,非容量。 “一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”。“一次传输”请求的大小是未知的。

          Blk_read/s:开机到现在平均每秒的读扇区数量(一扇区为512bytes);

          Blk_wrtn/s:开机到现在平均每秒的写扇区数量;

          Blk_read:开机到现在总共读出来的扇区数量;

          Blk_wrtn:开机到现在总共写入的扇区数量。

    4.2 iostat -c

     仅显示CPU的状态:

    4.3 iostat -d

    仅显示存储设备的状态:

    4.4 iostat -k

    以KB大小来显示,相比以扇区数为单位,这里的值为原值的一半(1KB=512bytes*2):

    4.5 iostat -m

    以MB大小来显示:

    4.6 iostat -t

    显示时间:

     4.7 iostat 2 3

    每2秒检测一次,共检测3次:

    备注:如果有检测次数的情况,那么第一次显示的是从开机到现在的数据,第二次以后所显示的数据则代表两次检测之间的系统传输值。

     4.8 iostat -x

    显示更详细的信息:

    属性说明:

      rrqm/s:每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并;

      wrqm/s:每秒对该设备的写请求被合并次数;

      r/s:每秒完成的读次数;

      w/s:每秒完成的写次数;

      rsec/s:每秒读取的扇区数;

      wsec/s:每秒写入的扇区数;

      avgrq-sz:平均请求扇区的数量;

      avgqu-sz:平均请求队列的长度,队列长度越短越好;

      await:平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)。这里可以理解为IO的响应时间,一般地系统IO响应时间应低于5ms,如果大于10ms就比较大了。一般情况下,await大于svctm,它们的差值越小,说明等待时间越短,几乎没有I/O等待,磁盘性能很好;反之差值越大,等待时间越长,系统上运行的应用程序变慢;

      svctm:平均每次IO请求的处理时间(毫秒为单位);

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

      

      

  • 相关阅读:
    select,epoll,poll比较(网络资源总结)
    c++(重载、覆盖、隐藏)
    TCP状态转换图
    TCP心跳 | TCP keepAlive
    回车、换行、空格的ASCII码值—(附ASCII码表)
    C++ dlopen mini HOWTO 一篇非常好的介绍
    shell十三问
    linux IPC消息队列 的内核限制
    C++ string 类常用函数
    const用法的解惑
  • 原文地址:https://www.cnblogs.com/seaBiscuit0922/p/7234063.html
Copyright © 2020-2023  润新知