linuxシステムの下でiostat、iotop、vmstatのインストールと使い方の紹介


一、iostatのインストールと使い方の紹介
主にシステムデバイスのIO負荷状況を監視するために使用され、iostatの初回実行時にシステム起動からの各統計が表示され、その後iostatを実行すると、このコマンドが最後に実行されてからの統計が表示されます.
ユーザは、統計の回数と時間を指定することによって、必要な統計を得ることができる.
1、取り付け(RedHatシリーズ)
システムがこのコマンドをインストールしているかどうかを確認します.
#which iostat       ##    ,         
/usr/bin/iostat
      ,   
#yum install sysstat -y

2、文法
iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ device [...] | ALL ] [ -p [ device [,...] | ALL ] ] [ interval [ count ] ]
-d          (  )    
-x         io       
-k          block         Kilobytes   

使用法1:
#iostat -x -k    
Linux 2.6.18-308.el5 (Ser108)   10/31/2014
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.01    0.00    0.00    0.04    0.00   99.95
Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.97  0.01  0.58     0.20     6.29    21.98     0.02   28.71   6.81   0.40
sda1              0.00     0.00  0.00  0.00     0.00     0.00    14.83     0.00    8.87   7.90   0.00
sda2              0.00     0.00  0.00  0.00     0.00     0.00    35.35     0.00    5.23   4.60   0.00
sda3              0.00     0.97  0.01  0.58     0.20     6.29    21.98     0.02   28.71   6.81   0.40

注意:%utilが100%に近い場合は、発生したI/O要求が多すぎて、I/Oシステムがフル負荷になっていることを示します.このディスクにボトルネックがある可能性があります.
使用法2:
#iostat -d -k 2     --  2        2     
    :
Linux 2.6.18-308.el5 (Ser108)   11/05/2014
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               0.82         0.18         8.47     857070   39382031
sda1              0.00         0.00         0.00        869         59
sda2              0.00         0.00         0.00        760          0
sda3              0.82         0.18         8.47     855221   39381972
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              10.45         0.00       121.39          0        244
sda1              0.00         0.00         0.00          0          0
sda2              0.00         0.00         0.00          0          0
sda3             10.45         0.00       121.39          0        244

出力情報の説明:
tps:          (Indicate the number of transfers per second that were issued to the device.)
"    "   "  I/O  "。             "  I/O  "。"    "         。
kB_read/s:     (drive expressed)      ;
kB_wrtn/s:     (drive expressed)      ;
kB_read:       ;
kB_wrtn:      :      Kilobytes, KB

3、監視する設備を指定する
#iostat -d sda 2

-xパラメータこのオプションはioに関連する拡張データを表示するために使用され、より詳細なデータを取得できます.
例:
#iostat -d -x -k 1 4    --   1     ,    4 。
Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     1.29  0.01  0.81     0.18     8.47    21.18     0.03   39.95   5.98   0.49
sda1              0.00     0.00  0.00  0.00     0.00     0.00    14.73     0.00    9.71   8.75   0.00
sda2              0.00     0.00  0.00  0.00     0.00     0.00    35.35     0.00    5.23   4.60   0.00
sda3              0.00     1.29  0.01  0.81     0.18     8.47    21.18     0.03   39.95   5.98   0.49
Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda1              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda2              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda3              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda1              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda2              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda3              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
Device:         rrqm/s   wrqm/s   r/s   w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     3.00  0.00 18.00     0.00    80.00     8.89     0.88   32.56   2.72   4.90
sda1              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda2              0.00     0.00  0.00  0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda3              0.00     3.00  0.00 18.00     0.00    80.00     8.89     0.88   32.56   2.72   4.90

出力情報の説明:
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: The number of kilobytes read from the device per second             
wkB/s: The number of kilobytes written to the device per second.              
avgrq-sz          
avgqu-sz           。    ,        。    
await:     IO          (       )。       IO     ,     IO        5ms,    10ms     。
                         ,    ,     ,await  svctm,       ,         ,      ,      ,        。         
svctm            I/O       (      )。  svctm   await   ,      I/O  ,      ,  await     svctm  ,   I/O      ,             。

%util:        ,          IO  ,        。  ,      1 ,    0.8    IO, 0.2   ,      %util = 0.8/1 = 80%,               
。   ,      100%              (        ,  %util 100%,         ,             )。
rsec/s:        ;
wsec/:         。

-cパラメータ、cpu情報の表示
#iostat -c 1 2     #   1     ,    2 
Linux 2.6.32-431.23.3.el6.x86_64 (zookeeper1)   05/27/2016      _x86_64_        (2 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.92    0.00    0.27    0.32    0.00   98.49
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.00    0.00    0.00  100.00

4、よくある使い方:
#iostat -d -k 1 10         #  TPS      
#iostat -d -x -k 1 10      #       (%util)、    (await)
#iostat -c 1 10            #  cpu  

5、実例分析
#iostat -d -k 1 8
Linux 2.6.32-504.el6.x86_64 (kvm5)      05/27/2016      _x86_64_        (8 CPU)
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              25.41         3.72        93.20   16601966  416182172
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              42.00         0.00       104.00          0        104
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              52.00         0.00       172.00          0        172
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              34.00         0.00       128.00          0        128
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               9.00         0.00        16.00          0         16
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              25.00         0.00        72.00          0         72
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              31.00         0.00        80.00          0         80
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              24.00         0.00        92.00          0         92
      ,           30,        ,    ,  100kB
#iostat -d -k -x 1 5
Linux 2.6.32-504.el6.x86_64 (kvm5)      05/27/2016      _x86_64_        (8 CPU)
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     1.27    0.11   25.30     3.72    93.20     7.63     0.03    1.04   35.76    0.89   0.71   1.81
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     7.00    0.00   32.00     0.00   132.00     8.25     0.12    3.84    0.00    3.84   1.75   5.60
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     7.00    0.00   58.00     0.00   420.00    14.48     0.03    0.60    0.00    0.60   0.59   3.40
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.00    0.00   27.00     0.00    76.00     5.63     0.01    0.37    0.00    0.37   0.33   0.90
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.00    0.00    5.00     0.00    32.00    12.80     0.02    4.80    0.00    4.80   4.80   2.40
      ,           , 0,        3.0  ,   。

二、iotopツール
1、紹介
iotopコマンドは、ハードディスクIOを表示するコマンドで、インタフェーススタイルはtopコマンドに似ています.このコマンドはkernelv 2にしかありません.6.20以降のバージョンではありません.
2、取り付け
#yum install iotop -y

3、実例
#iotop     ,         ,io     
Total DISK READ: 6.42 M/s | Total DISK WRITE: 0.00 B/s    
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                                                                         
 1476 be/4 root        6.42 M/s    0.00 B/s  0.00 % 57.63 % java -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -server -Xm~2.5.4-SNAPSHOT-FERDI/lib/stax2-api-3.1.1.jar:/root/dubbo-monitor-simple-2
 1475 be/4 root        0.00 B/s   92.21 K/s  0.00 %  0.00 % java -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -server -Xm~2.5.4-SNAPSHOT-FERDI/lib/stax2-api-3.1.1.jar:/root/dubbo-monitor-simple-2
 1455 be/4 root        0.00 B/s    7.68 K/s  0.00 %  0.00 % java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp /usr/~per.server.quorum.QuorumPeerMain /usr/local/zookeeper/bin/../conf/zoo.cfg
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    4 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
    5 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [stopper/0]
    6 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
    7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/1]
    8 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [stopper/1]
    9 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/1]
   10 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/1]
   11 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [events/0]
   12 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [events/1]
   13 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [cgroup]
   14 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [khelper]
   15 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [netns]
   16 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [async/mgr]
   17 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [pm]
   18 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [sync_supers]
   19 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [bdi-default]
   20 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kintegrityd/0]
   21 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kintegrityd/1]

2、パラメータ
Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -o, --only            only show processes or threads actually doing I/O
  -b, --batch           non-interactive mode
  -n NUM, --iter=NUM    number of iterations before ending [infinite]
  -d SEC, --delay=SEC   delay between iterations [1 second]
  -p PID, --pid=PID     processes/threads to monitor [all]
  -u USER, --user=USER  users to monitor [all]
  -P, --processes       only show processes, not all threads
  -a, --accumulated     show accumulated I/O instead of bandwidth
  -k, --kilobytes       use kilobytes instead of a human friendly unit
  -t, --time            add a timestamp on each line (implies --batch)
  -q, --quiet           suppress some lines of header (implies --batch)

二、vmstatツール
vmstatはメモリの使用状況を即時に表示するツールで、一般的なシステムはすべて持っています
vmstatの使用方法:
vmstat [-V] [-n] [delay [count]]
 -V   vmstat   ;
 -n causes the headers not to be reprinted regularly.
 -a                ;print inactive/active page stats.
 -d         ;prints disk statistics
 -D        ;prints disk table
 -p            ;prints disk partition statistics
 -s         ;prints vm table
 -m prints slabinfo
 -S     ,k K
 delay          ;
     : k:1000 K:1024 m:1000000 M:1048576 (    K)
 count     ;

例:
#vmstat 3 5   ##   3         ,    5   。
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 5  1      0 82471648 149068 7528352    0    0     0    12    0    1 16 18 66  0  0
 3  0      0 82471760 149068 7528352    0    0     0    72 79652 150274 17 20 63  0  0
 3  0      0 82471936 149068 7528352    0    0     0    64 79561 150275 16 20 64  0  0
 5  0      0 82471936 149068 7528352    0    0     0    88 79784 150146 17 20 62  0  0

説明:
r  :The number of processes waiting for run time.           ,       、
b  :The number of processes in uninterruptible sleep.    io    
swpd:         
free:     
buff:       
cache:             
si:               ,  :KB/ 。
so:               ,  :KB/ 。
bi:          ,  : / 。
bo:           ,  : / 。
in:       ,      。
cs:      (   )    。
us:          。      。
sy:         。       。
id:           。      。
wa:io    
st:Time stolen from a virtual machine