GNU/Linux >> Linux の 問題 >  >> Linux

24 Linux パフォーマンス監視の iostat、vmstat、および mpstat の例

この記事では、iostat、vmstat、および mpstat コマンドに関する合計 24 の例を提供します。

  • iostat は、CPU、ディスク I/O、および NFS 統計をレポートします
  • vmstat は、仮想メモリの統計を報告します
  • mpstat はプロセッサの統計を報告します

この記事は、進行中の Linux パフォーマンス モニタリング シリーズの一部です。

iostat と vmstat は sar ユーティリティの一部であることに注意してください。 iostat と vmstat を機能させるには、sar (sysstat) の記事で説明されているように、sysstat パッケージをインストールする必要があります。

IOSTAT の例

1. iostat – 基本的な例

引数なしの iostat は、以下に示すように、システム上のすべてのパーティションに関する CPU 使用率と I/O 統計に関する情報を表示します。

$ iostat
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             194.72      1096.66      1598.70 2719068704 3963827344
sda1            178.20       773.45      1329.09 1917686794 3295354888
sda2             16.51       323.19       269.61  801326686  668472456
sdb             371.31       945.97      1073.33 2345452365 2661206408
sdb1            371.31       945.95      1073.33 2345396901 2661206408
sdc             408.03       207.05       972.42  513364213 2411023092
sdc1            408.03       207.03       972.42  513308749 2411023092

2. iostat – CPU 統計のみを表示

iostat オプション -c は、以下に示すように CPU 使用率の統計のみを表示します。

$ iostat -c
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

3. iostat – ディスク I/O 統計のみを表示

iostat オプション -d は、以下に示すようにディスク I/O 統計のみを表示します。

$ iostat -d
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             194.71      1096.61      1598.63 2719068720 3963827704
sda1            178.20       773.41      1329.03 1917686810 3295355248
sda2             16.51       323.18       269.60  801326686  668472456
sdb             371.29       945.93      1073.28 2345452365 2661209192
sdb1            371.29       945.91      1073.28 2345396901 2661209192
sdc             408.01       207.04       972.38  513364213 2411024484
sdc1            408.01       207.02       972.38  513308749 2411024484

4. iostat – ネットワーク統計のみを表示

iostat オプション -n は、以下に示すように、デバイスと NFS の統計のみを表示します。

$ iostat -n
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)        07/09/2011

avg-cpu:  %user   %nice    %sys %iowait   %idle
           4.33    0.01    1.16    0.31   94.19

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               2.83         0.35         5.39   29817402  457360056
sda1              3.32        50.18         4.57 4259963994  387641400
sda2              0.20         0.76         0.82   64685128   69718576
sdb               6.59        15.53        42.98 1318931178 3649084113
sdb1             11.80        15.53        42.98 1318713382 3649012985

Device:                  rBlk_nor/s   wBlk_nor/s   rBlk_dir/s   wBlk_dir/s   rBlk_svr/s   wBlk_svr/s
192.168.1.4:/home/data      90.67        0.00         0.00         0.00         5.33         0.00
192.168.1.4:/backup         8.74         0.00         0.00         0.00         8.74         0.00
192.168.1.8:/media          0.02         0.00         0.00         0.00         0.01         0.00

5. iostat – I/O データを MB/秒で表示

デフォルトでは、iostat はデバイス I/O 統計をブロック単位で表示します。 MB に変更するには、以下に示すように -m を使用します。

$ iostat -m
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sda             194.70         0.54         0.78    1327670    1935463
sda1            178.19         0.38         0.65     936370    1609060
sda2             16.51         0.16         0.13     391272     326402
sdb             371.27         0.46         0.52    1145240    1299425
sdb1            371.27         0.46         0.52    1145213    1299425
sdc             407.99         0.10         0.47     250666    1177259
sdc1            407.99         0.10         0.47     250639    1177259

6. iostat – デバイスの I/O 統計のみを表示

デフォルトでは、iostat はシステムで使用可能なすべてのディスクの I/O データを表示します。特定のデバイス (たとえば、/dev/sda) の統計を表示するには、以下に示すようにオプション -p を使用します。

$ iostat -p sda
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             194.69      1096.51      1598.48 2719069928 3963829584
sda2            336.38        27.17        54.00   67365064  133905080
sda1            821.89         0.69       243.53    1720833  603892838

7. iostat – タイムスタンプ情報を表示

デフォルトでは、iostat は現在の日付のみを表示します。現在の時刻を表示するには、以下に示すようにオプション -t を使用します。

$ iostat -t
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

Time: 08:57:52 AM
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             194.69      1096.49      1598.45 2719070384 3963829704
sda1            178.18       773.32      1328.88 1917688474 3295357248
sda2             16.51       323.14       269.57  801326686  668472456
sdb             371.25       945.82      1073.16 2345452741 2661228872
sdb1            371.25       945.80      1073.16 2345397277 2661228872
sdc             407.97       207.02       972.27  513364233 2411030200
sdc1            407.97       207.00       972.27  513308769 2411030200

8. iostat – 拡張ステータスを表示

オプション -x を使用すると、以下に示すように拡張ディスク I/O 統計情報が表示されます。

$ iostat -x
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda              27.86    63.53 61.77 132.91  1096.46  1598.40    13.84     0.21    1.06   2.28  44.45
sda1              0.69    33.22 48.54 129.63   773.30  1328.84    11.80     1.39    7.82   2.28  40.57
sda2             27.16    30.32 13.23  3.28   323.13   269.56    35.90     0.55   32.96   3.44   5.68
sdb              39.15   215.16 202.20 169.04   945.80  1073.13     5.44     1.05    2.78   1.64  60.91
sdb1             39.15   215.16 202.20 169.04   945.77  1073.13     5.44     1.05    2.78   1.64  60.91
sdc               8.90     3.63 356.56 51.40   207.01   972.24     2.89     1.04    2.56   1.55  63.30
sdc1              8.90     3.63 356.55 51.40   206.99   972.24     2.89     1.04    2.56   1.55  63.30

特定のパーティション (たとえば、/dev/sda1) の拡張情報を表示するには、次のようにします。

$ iostat -x sda1
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda1              0.69    33.21 48.54 129.62   773.23  1328.76    11.80     1.39    7.82   2.28  40.56

9. iostat – x 秒ごとに実行 (y 回)

(Ctl-C を押すまで) 2 秒ごとに iostat を実行するには、次のようにします。

$ iostat 2
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.68    0.00    0.52    2.03    0.00   91.76

Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda             194.67      1096.39      1598.33 2719070584 3963891256
sda1            178.16       773.26      1328.79 1917688482 3295418672
sda2             16.51       323.11       269.54  801326878  668472584
sdb             371.22       945.74      1073.08 2345454041 2661251200
sdb1            371.22       945.72      1073.08 2345398577 2661251200
sdc             407.93       207.00       972.19  513366813 2411036564
sdc1            407.93       206.98       972.19  513311349 2411036564
..

2 秒ごとに合計 3 回実行するには、次のようにします。

$ iostat 2 3

10. iostat – LVM 統計 (およびバージョン) を表示します

LVM 統計を表示するには、以下に示すようにオプション -N を使用します。

$ iostat -N

iostat のバージョンを表示するには、-V を使用します。 iostat は sysstat パッケージの一部であるため、実際には sysstat のバージョン情報が表示されます。

$ iostat -V
sysstat version 7.0.2
(C) Sebastien Godard

VMSTAT の例

11. vmstat – 基本的な例

デフォルトでは、vmstat は以下に示すようにメモリ使用量 (スワップを含む) を表示します。

$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0 305416 260688  29160 2356920    2    2     4     1    0    0  6  1 92  2  0

vmstat 出力には次のフィールドが含まれます:

  • Procs – r:実行を待機しているプロセスの総数
  • Procs – b:ビジー プロセスの総数
  • メモリ – swpd:使用済み仮想メモリ
  • メモリ – フリー:仮想メモリの空き容量
  • Memory – buff:バッファとして使用されるメモリ
  • メモリ – キャッシュ:キャッシュとして使用されるメモリ
  • Swap – si:ディスクからスワップされたメモリ (毎秒)
  • スワップ – つまり:ディスクにスワップされたメモリ (毎秒)
  • IO – bi:ブロックイン。つまり、デバイスから受信したブロック (毎秒)
  • IO – bo:ブロックアウト。つまり、デバイスに送信されるブロック (毎秒)
  • システム – in:1 秒あたりの割り込み数
  • システム – cs:コンテキスト スイッチ
  • CPU – us、sy、id、wa、st:CPU ユーザー時間、システム時間、アイドル時間、待機時間

12. vmstat – アクティブおよび非アクティブなメモリを表示

デフォルトでは、vmstat はこの情報を表示しません。以下に示すように、オプション -a を使用して、アクティブおよび非アクティブなメモリ情報を表示します。

 
$ vmstat -a
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 0  0 305416 253820 1052680 2688928    2    2     4     1    0    0  6  1 92  2  0

13. vmstat – 前回の起動以降のフォーク数を表示

これにより、最後のブート以降にシステムによって行われたすべての fork システム コールが表示されます。これにより、すべての fork、vfork、および clone システム コール数が表示されます。

$ vmstat -f
     81651975 forks

14. vmstat – x 秒ごとに実行 (y 回)

2 秒ごとに実行するには、次のようにします。これを停止するには、Ctrl-C を押す必要があります。

$ vmstat 2
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 537144 182736 6789320    0    0     0     0    1    1  0  0 100  0  0	
 0  0      0 537004 182736 6789320    0    0     0     0   50   32  0  0 100  0  0	
..

2 秒ごとに 10 回実行するには、次のようにします。この場合、Ctrl-C を押す必要はありません。 10回実行後、自動的に停止します。

$ vmstat 2 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 537144 182736 6789320    0    0     0     0    1    1  0  0 100  0  0	
 0  0      0 537004 182736 6789320    0    0     0     0   50   32  0  0 100  0  0	
..

15. vmstat – タイムスタンプを表示

vmstat を使用してメモリ使用量を繰り返し監視する場合、すべての項目とともにタイムスタンプを確認すると便利です。以下に示すように、オプション -t を使用してタイムスタンプを表示します。

$ vmstat -t 1 100
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ ---timestamp---
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 3608728 148368 3898200    0    0     0     0    1    1  0  0 100  0  0     2011-07-09 21:16:28 PDT
 0  0      0 3608728 148368 3898200    0    0     0     0   60   15  0  0 100  0  0     2011-07-09 21:16:29 PDT
 0  0      0 3608712 148368 3898200    0    0     0     0   32   28  0  0 100  0  0     2011-07-09 21:16:30 PDT

私の場合、タイムスタンプ オプションは次のバージョンで機能しました。

$ vmstat -V
procps version 3.2.8

注: 古いバージョンの vmstat を使用している場合、オプション -t を使用できない場合があります。その場合は、以前に提案した方法を使用して、vmstat 出力にタイムスタンプを表示してください。

16. vmstat – スラブ情報を表示

以下に示すように、オプション -m を使用して、スラブ情報を表示します。

$ vmstat -m
Cache                       Num  Total   Size  Pages
fib6_nodes                    5    113     32    113
ip6_dst_cache                 4     15    256     15
ndisc_cache                   1     15    256     15
RAWv6                         7     10    768      5
UDPv6                         0      0    640      6
tw_sock_TCPv6                 0      0    128     30
...

17. vmstat – 統計を表形式で表示

値をレコード形式で表示する代わりに、以下に示すようにオプション -s を使用して vmstat の出力を表形式で表示できます。

$ vmstat -s
      4149928  total memory
      3864824  used memory
      2606664  active memory
      1098180  inactive memory
       285104  free memory
        19264  buffer memory
      2326692  swap cache
      4192956  total swap
       274872  used swap
      3918084  free swap
   1032454000 non-nice user cpu ticks
        14568 nice user cpu ticks
     89482270 system cpu ticks
  16674327143 idle cpu ticks
    368965706 IO-wait cpu ticks
      1180468 IRQ cpu ticks
..

18. vmstat – ディスク統計の表示

以下に示すように、オプション -d を使用してディスク統計を表示します。これにより、ディスクの読み取り、書き込み、および I/O 統計が表示されます。

$ vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
sda   153189971 69093708 2719150864 737822879 329617713 157559204 3965687592 4068577985      0 1102243
sdb   501426305 97099356 2345472425 731613156 419220973 533565961 2661869460 1825174087      0 1510434
sdc   884213459 22078974 513390701 452540172 127474901 8993357 2411187300 2133226954      0 1569758

19. vmstat – ディスプレイの幅を広げます

幅を増やさないデフォルトの出力を以下に示します。

$ vmstat 1 3
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 3608688 148368 3898204    0    0     0     0    1    1  0  0 100  0  0
 0  0      0 3608804 148368 3898204    0    0     0     0   72   30  0  0 100  0  0
 0  0      0 3608804 148368 3898204    0    0     0     0   60   27  0  0 100  0  0

以下に示すように、オプション -w を使用して、出力列の幅を広げます。これにより読みやすくなります。

$ vmstat -w 1 3
procs -------------------memory------------------ ---swap-- -----io---- --system-- -----cpu-------
 r  b       swpd       free       buff      cache   si   so    bi    bo   in   cs  us sy  id wa st
 0  0          0    3608712     148368    3898204    0    0     0     0    1    1   0  0 100  0  0
 0  0          0    3608712     148368    3898204    0    0     0     0   93   23   0  0 100  0  0
 0  0          0    3608696     148368    3898204    0    0     0     0   35   34   0  0 100  0  0

20. vmstat – パーティションの統計を表示

特定のディスク パーティションのディスク I/O 統計を表示するには、以下に示すようにオプション -p を使用します。

$ vmstat -p sdb1
sdb1          reads   read sectors  writes    requested writes
           501423248 2345417917  419221612 2661885948

21. vmstat – MB 単位で表示

デフォルトでは、vmstat はメモリ情報を kb で表示します。 MB で表示するには、以下に示すようにオプション「-S m」を使用します。

$ vmstat -S m
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0    281    288     19   2386    0    0     4     1    0    0  6  1 92  2  0

MPSTAT の例

22. mpstat – 基本情報を表示

デフォルトでは、mpstat は以下に示すように CPU 統計を表示します。

$ mpstat
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011

10:25:32 PM  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
10:25:32 PM  all    5.68    0.00    0.49    2.03    0.01    0.02    0.00   91.77    146.55

23. mpstat – すべての情報を表示

オプション -A は、以下に示すように、mpstat コマンドで表示できるすべての情報を表示します。これは実際には「mpstat -I ALL -u -P ALL」コマンドと同等です。

$ mpstat -A
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011      _x86_64_        (4 CPU)

10:26:34 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
10:26:34 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.99
10:26:34 PM    0    0.01    0.00    0.01    0.01    0.00    0.00    0.00    0.00   99.98
10:26:34 PM    1    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.98
10:26:34 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:26:34 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

10:26:34 PM  CPU    intr/s
10:26:34 PM  all     36.51
10:26:34 PM    0      0.00
10:26:34 PM    1      0.00
10:26:34 PM    2      0.04
10:26:34 PM    3      0.00

10:26:34 PM  CPU     0/s     1/s     8/s     9/s    12/s    14/s    15/s    16/s    19/s    20/s    21/s    33/s   NMI/s   LOC/s   SPU/s   PMI/s   PND/s   RES/s   CAL/s   TLB/s   TRM/s   THR/s   MCE/s   MCP/s   ERR/s   MIS/s
10:26:34 PM    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    7.47    0.00    0.00    0.00    0.00    0.02    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    4.90    0.00    0.00    0.00    0.00    0.03    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.04    0.00    0.00    0.00    0.00    0.00    3.32    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00
10:26:34 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    4.17    0.00    0.00    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00    0.00    0.00

24. mpstat – 個々の CPU (または) コアの CPU 統計を表示します

オプション -P ALL は、以下に示すように、すべての個々の CPU (またはコア) とその統計を表示します。

$ mpstat -P ALL
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011      _x86_64_        (4 CPU)

10:28:04 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
10:28:04 PM  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00   99.99
10:28:04 PM    0    0.01    0.00    0.01    0.01    0.00    0.00    0.00    0.00   99.98
10:28:04 PM    1    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.98
10:28:04 PM    2    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
10:28:04 PM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

特定の CPU (またはコア) の統計情報を表示するには、以下に示すようにオプション -P を使用します。

$ mpstat -P 0
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011      _x86_64_        (8 CPU)

10:28:53 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
10:28:53 PM    0    0.01    0.00    0.01    0.01    0.00    0.00    0.00    0.00   99.98

$ mpstat -P 1
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db)       07/09/2011      _x86_64_        (8 CPU)

10:28:55 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
10:28:55 PM    1    0.00    0.00    0.01    0.00    0.00    0.00    0.00    0.00   99.98

最後に、前述したように、mpstat は sysstat パッケージの一部です。 mpstat -V を実行すると、以下に示すように sysstat パッケージのバージョン番号が実際に表示されます。

$ mpstat -V
sysstat version 9.0.4
(C) Sebastien Godard (sysstat  orange.fr)

Linux パフォーマンスの監視とチューニング シリーズの以前の記事:

  • Linux パフォーマンスの監視とチューニングの概要
  • 15 の実用的な Linux トップ コマンドの例
  • プロセス監視のための 7 つの実用的な PS コマンドの例
  • UNIX / Linux のパフォーマンス監視に役立つ Sar (Sysstat) の 10 の例
  • Linux でのディスク I/O パフォーマンス測定のための iozone の 10 の例

Linux
  1. プロセス監視のために Linux に Monit をインストールして構成する方法

  2. トップ25の最高のLinuxパフォーマンス監視およびデバッグツール

  3. iostat を使用して Linux でシステム パフォーマンスを監視する (例を含む)

  1. LinuxPCのパフォーマンスを向上させるためのオープンソースツールとヒント

  2. 初心者向けのLinuxvmstatコマンドチュートリアル(5つの例)

  3. UNIX / Linux のパフォーマンス監視に役立つ 10 の Sar (Sysstat) の例

  1. Linuxユーザー向けの12のIPコマンド例

  2. Linux which and whoami初心者向けコマンドチュートリアル(例付き)

  3. 初心者向けのLinuxpushdおよびpopdコマンドチュートリアル(3つの例)