zoukankan      html  css  js  c++  java
  • 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详细解说
  • 相关阅读:
    HDU 5528 Count a * b 欧拉函数
    HDU 5534 Partial Tree 完全背包
    HDU 5536 Chip Factory Trie
    HDU 5510 Bazinga KMP
    HDU 4821 String 字符串哈希
    HDU 4814 Golden Radio Base 模拟
    LA 6538 Dinner Coming Soon DP
    HDU 4781 Assignment For Princess 构造
    LA 7056 Colorful Toy Polya定理
    LA 6540 Fibonacci Tree
  • 原文地址:https://www.cnblogs.com/clement-jiao/p/10175979.html
Copyright © 2011-2022 走看看