• Linux 系统管理命令


    命令详解

    重要星级:

            ★★★★☆

    功能说明:

            iostat 是 I/O statistics ( 输入/输出统计 ) 的缩写,其主要功能是对系统的磁盘 I/O 操作进行监视、它的输出主要是显示磁盘读写操作的统计信息。同时也会给出 CPU 的使用情况。同 vmstat 命令一样,iostat 命令也不能对某个进程进行深入分析,仅会对系统的整体情况进行分析。

    语法格式:

        iostat [option] [interval [count]]
        iostat [选项]    [时间间隔 [次数]]

            说明:

                1. 在 iostat 命令及后面的选项里,每个元素之间都至少要有一个空格。
                2. interval 表示两次输出之间的间隔时间。
                3. count 表示按照 delay 指定的时间间隔统计的次数。

     选项说明:

    -c :显示 CPU 的使用情况。  ※
    
    -d :显示磁盘的使用情况。 ※
    
    -k :每秒以 KB 为单位显示数据。
    
    -m :每秒以 MB 为单位显示数据。
    
    -n :显示 NFS 的使用情况。
    
    -t :显示每次统计的执行时间。
    
    -p device :指定要统计的磁盘设备名称,默认为所有的磁盘设备。
    
    -x :显示扩展统计。

     使用范例:

    显示所有设备的负载情况( iostat ):

    [root@localhost :~]# iostat     # 如果省略 "时间间隔" 和 "次数" 参数,则仅显示一次报告后就退出。
    Linux 3.10.0-862.14.4.el7.x86_64 (localhost.localdomain)     2018年12月27日     _x86_64_    (2 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.03    0.00    0.12    0.01    0.00   99.84
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               0.76        11.79         2.13     133653      24137
    dm-0              0.72        10.88         1.95     123336      22089
    dm-1              0.01         0.20         0.00       2228          0

            以下是命令结果说明:

    第1-2行中各列的含义具体如下:
        1. %user :用户进程消耗的 CPU 时间百分比。
        2. %nice :改变过优先级的进程占用的 CPU 时间百分比。
        3. %system :系统 ( 内核 ) 进程消耗的 CPU  时间百分比。
        4. %iowait :IO 等待所占用的 CPU 时间百分比。
        5. %steal :虚拟机强制 CPU 等待的时间百分比。
        6. %idle : CPU 处在空闲状态的时间百分比。
    第3-4行中各列的含义具体如下:
        1. tps :表示该设备每秒的传输次数,"一次传输" 的意思是 "一次I/O请求",多个逻辑请求可能会被合并为 "一次I/O请求","一次传输" 请求的大小是未知的。
        2. kB_read/s :表示每秒从设备 (drive expressed ) 读取的数据量。
        3. kB_wrtn/s :表示每秒向设备 (drive expressed ) 写入的数据量。
        4. kB_read :表示读取的总数据量。
        5. kB_wrtn :表示写入的总数量数据量;这些单位都为 Kilobytes。

    定时显示所有信息( iostat 2 3 ):

    [root@localhost :~]# iostat 2 3        # 每隔两秒刷新显示一次,共显示三次。
    Linux 3.10.0-862.14.4.el7.x86_64 (localhost.localdomain)     2018年12月27日     _x86_64_    (2 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.03    0.00    0.12    0.01    0.00   99.84
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               0.70        10.57         2.10     133661      26527
    dm-0              0.66         9.75         1.94     123344      24479
    dm-1              0.01         0.18         0.00       2228          0
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.00    0.00    0.25    0.00    0.00   99.75
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               0.00         0.00         0.00          0          0
    dm-0              0.00         0.00         0.00          0          0
    dm-1              0.00         0.00         0.00          0          0
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.00    0.00    0.00    0.00    0.00  100.00
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               0.00         0.00         0.00          0          0
    dm-0              0.00         0.00         0.00          0          0
    dm-1              0.00         0.00         0.00          0          0

    只显示磁盘统计信息( iostat -d ):

    [root@localhost :~]# iostat -d        # 选项 -d 只显示磁盘的统计信息。
    Linux 3.10.0-862.14.4.el7.x86_64 (localhost.localdomain)     2018年12月27日     _x86_64_    (2 CPU)
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               0.69        10.47         2.08     133661      26527
    dm-0              0.66         9.67         1.92     123344      24479
    dm-1              0.01         0.17         0.00       2228          0
    
    [root@localhost :~]# iostat -d -k     # 选项 -k 以 KB 为单位显示数据。
    Linux 3.10.0-862.14.4.el7.x86_64 (localhost.localdomain)     2018年12月27日     _x86_64_    (2 CPU)
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               0.69        10.43         2.07     133661      26527
    dm-0              0.65         9.62         1.91     123344      24479
    dm-1              0.01         0.17         0.00       2228          0
    
    [root@localhost :~]# iostat -d -m     # 选项 -m 以 MB 为单位显示数据。
    Linux 3.10.0-862.14.4.el7.x86_64 (localhost.localdomain)     2018年12月27日     _x86_64_    (2 CPU)
    
    Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
    sda               0.68         0.01         0.00        130         25
    dm-0              0.65         0.01         0.00        120         23
    dm-1              0.01         0.00         0.00          2          0
    
    [root@localhost :~]# 

    查看扩展信息( iostat -x ):

    [root@localhost :~]# iostat -x        # 选项 -x 显示扩展信息。
    Linux 3.10.0-862.14.4.el7.x86_64 (localhost.localdomain)     2018年12月27日     _x86_64_    (2 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.03    0.00    0.12    0.01    0.00   99.84
    
    Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
    sda               0.00     0.03    0.38    0.29    10.25     2.05    36.33     0.00    1.26    0.83    1.83   0.49   0.03
    dm-0              0.00     0.00    0.33    0.32     9.46     1.89    35.12     0.00    1.70    0.97    2.45   0.50   0.03
    dm-1              0.00     0.00    0.01    0.00     0.17     0.00    47.40     0.00    0.22    0.22    0.00   0.15   0.00

            以下是命令结果说明:

    rrqm/s:每秒这个设备相关的读取请求有多少被Merge了( 当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge )。
    wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。
    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。
    rkB/s :每秒读入的千字节数。
    wkB/s :每秒写入的千字节数。
    avgrq-sz :设备平均每次进行 I/O 操作的数据大小( 扇区 )。
    avgqu-sz :平均 I/O 队列长度。
    await :每一个 I/O 请求的处理的平均时间 ( 毫秒 )。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。
    svctm :设备平均每次 I/O 操作的服务时间 ( 毫秒 )。服务时间包括:磁头寻道时间(目前平均为3毫秒)+旋转延迟时间(磁盘转速相关)+数据传输时间 ( 简单计算时可忽略不计 )
    %util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的 %util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是 100% 表示设备已经接近满负荷运行了 ( 当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈 )。

            说明:

                1. 注意 %util 的陷阱和 svctm 数值全部都不可取
                2. IOSTAT中关于%util,svctm存在的陷阱及解决办法

    只查看 CPU 的统计信息:

    [root@localhost :~]# iostat -c       # 使用了 -c 选项只显示系统 CPU 的统计信息。
    Linux 3.10.0-862.14.4.el7.x86_64 (localhost.localdomain)     2018年12月27日     _x86_64_    (2 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.03    0.00    0.12    0.01    0.00   99.83

    参考资料:

    1. Linux命令详解----iostat
    2. IOSTAT中关于%util,svctm存在的陷阱及解决办法
    3. iostat和iowait详细解说
  • 相关阅读:
    【构建二叉树】01根据前序和中序序列构造二叉树【Construct Binary Tree from Preorder and Inorder Traversal】
    PHP 语言需要避免的 10 大误区
    极客编程必备的五大PHP开发应用
    你听说过PHP 的面向方面编程吗?
    8个开发必备的PHP功能
    写给系统管理员的25个PHP安全实践
    PHP输出缓冲控制- Output Control 函数应用详解
    创建高安全性PHP网站的几个实用要点
    简化PHP开发的10个工具
    PHP文件下载原理
  • 原文地址:https://www.cnblogs.com/clement-jiao/p/10175979.html
Copyright © 2020-2023  润新知