システムパフォーマンス入門

パフォーマンスに詳しいインフラに憧れて

ユーザ用ツール

サイト用ツール


· 最終更新: 2021/01/28 by kurihara


vmstatコマンドの見方。まず全体的な傾向を確認

vmstat例

すぐに確認したい時はこのオプション

  • -tで、タイムスタンプ表示
  • -wで、ワイド表示
  • -aで、アクティブ、インアクティブメモリ表示

$ vmstat -taw 1
procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu-------- -----timestamp-----
 r  b         swpd         free        inact       active   si   so    bi    bo   in   cs  us  sy  id  wa  st                 JST
 2  0       447564        72844       370052       384456    3    2    27     8    0    1   1   0  99   0   0 2018-08-06 23:33:46
 0  0       447564        72844       370052       384532    0    0     0     0  113   98   0   0 100   0   0 2018-08-06 23:33:47
 0  0       447564        72720       370052       384532    0    0     0     0   55   86   0   0 100   0   0 2018-08-06 23:33:48
 0  0       447564        72720       370052       384532    0    0     0     0   48   73   0   0 100   0   0 2018-08-06 23:33:49
 0  0       447564        72720       370052       384532    0    0     0     0   36   61   0   0 100   0   0 2018-08-06 23:33:50
 0  0       447564        72720       370052       384532    0    0     0     0   46   72   0   0 100   0   0 2018-08-06 23:33:51
 0  0       447564        72720       370052       384532    0    0     0     0   39   61   0   0 100   0   0 2018-08-06 23:33:52
 0  0       447564        72720       370052       384532    0    0     0     0   44   68   0   0 100   0   0 2018-08-06 23:33:53
 0  0       447564        72720       370052       384532    0    0     0     0   42   78   0   0 100   0   0 2018-08-06 23:33:54
 0  0       447564        72720       370052       384580    0    0     0     0   51   81   0   0 100   0   0 2018-08-06 23:33:55
 0  0       447564        72720       370052       384580    0    0     0     0   49   69   0   0 100   0   0 2018-08-06 23:33:56
 0  0       447564        72720       370052       384580    0    0     0     0   38   61   0   0 100   0   0 2018-08-06 23:33:57
 0  0       447564        72720       370052       384580    0    0     0     0   40   67   0   0 100   0   0 2018-08-06 23:33:58
 0  0       447564        72720       370052       384580    0    0     0     0   41   62   0   0 100   0   0 2018-08-06 23:33:59
 0  0       447564        72720       370052       384580    0    0     0     0   44   70   0   0 100   0   0 2018-08-06 23:34:00
 0  0       447564        72720       370052       384580    0    0     0     0   36   61   0   0 100   0   0 2018-08-06 23:34:01
 0  0       447468        68028       370460       384668  404    0   404    26  972  936  21   7  72   1   0 2018-08-06 23:34:02

vmstatの見方

説明 重要度
procs r 実行待ち(プロセスが実行キューに入っている状態)になっているプロセス数
CPUの処理が追いついていないか、そのプロセスを実行しているプログラム自体の問題によって実行順が回ってきていないプロセス
b 本来は実行可能だが、何らかの理由によって処理が停止(スリープ)しているプロセス数
例えばディスクやネットワークのIO待ちをしていたが、プログラムの実行順番が来てしまったプロセス
memory swpd 使用されているスワップメモリー容量 (KB)
free 未使用のメモリー容量 (KB)
buff カーネルがバッファ領域として利用しているメモリー容量 (KB)
cache キャッシュとして用いられているメモリー容量 (KB)
swap si スワップイン容量 (KB)
スワップ領域に退避していたデータを物理メモリーに書き戻している
基本は、0でスワップなしの状態。0以外が頻発すればメモリ不足
★★
so スワップアウト容量 (KB)
必要のないデータを物理メモリーからスワップ領域に書き込みしている
基本は、0でスワップなしの状態。0以外が頻発すればメモリ不足
★★
io bi ブロックデバイス(HDDなど)からの読み取り容量(blocks/s)
bo ブロックデバイスへの書き込み容量(blocks/s)
system in 1秒辺りの割り込み処理の回数(回数/秒)
cs 1秒辺りのコンテキストスイッチの回数(回数/秒)
cpu us ユーザ(アプリケーション)CPU使用率(%)
カーネルコード以外(OS以外。例えばphpやperlのスクリプトなど)の実行でCPUが使用された時間の割合
★★
sy カーネルCPU使用率(%)
カーネルコードの実行でCPUが使用された時間の割合
id CPUがアイドル状態(何もしてない待機状態)だった際の時間の割合(%)
wa ディスク・ネットワークへのデータの入出力でIO待ちだった時間の割合(%)
70%が続くなら、ディスクの性能が悪く、改善の必要あり。
st ゲストOSがリソース要求を行ったが、CPUリソースを割り当ててもらえなかった時間の割合(%) ★★
-aオプション

memoryのbuffとcacheではなく、inactとactiveに変わります。

説明 重要度
memory inact ページキャッシュや無名ページのうち、最後にアクセスされてからある程度時間がたち、ストレージとの同期も完了していて、すぐに捨てられるページです。 ★★
memory active ページキャッシュや無名ページのうち、最近利用したり、
まだストレージとの同期が取れていない「捨てられない」ページ
★★

freeとInactを足すことで確実に利用可能なメモリ量を算出することができます。

(実際に利用可能なメモリ量)≒(free+inactive)


vmstat参考

$ vmstat 1
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 436768  86464      0 163176    3    2    27     8    0    1  1  0 99  0  0
 0  0 436768  86468      0 163160    0    0     0     0   60  100  0  0 100  0  0
 0  0 436768  86468      0 163160    0    0     0     0   38   63  0  0 100  0  0
 0  0 436768  86468      0 163160    0    0     0     0   44   69  0  0 100  0  0
 0  0 436768  86468      0 163160    0    0     0     0   41   65  0  0 100  0  0
 0  0 436768  86468      0 163160    0    0     0     0   45   71  0  0 100  0  0
 0  0 436768  86468      0 163160    0    0     0     0   41   63  0  0 100  0  0
 0  0 436768  86468      0 163160    0    0     0     0   46   71  0  0 100  0  0
 0  0 436768  86468      0 163160    0    0     0     0   44   63  0  0 100  0  0
 0  0 436768  86468      0 163160    0    0     0    32   47   73  0  0 100  0  0
 0  0 436768  86468      0 163160    0    0     0     0   43   65  0  0 100  0  0
 0  0 436768  86468      0 163160    0    0     0     0   51   91  0  0 100  0  0
 0  0 436768  86468      0 163160    0    0     0    51   52   84  0  0 100  0  0
 0  0 436768  86468      0 163160    0    0     0     0   51   78  0  0 100  0  0


-S mで、メガ単位で出力

-S m で、メガ単位で出力。ただし、swapin/outの1MB以下は分からなくなる。

$ vmstat -awt -S m 1
procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu-------- -----timestamp-----
 r  b         swpd         free        inact       active   si   so    bi    bo   in   cs  us  sy  id  wa  st                 JST
 1  0          455           88          380          383    0    0    27     8    0    1   1   0  99   0   0 2018-08-06 23:37:19
 0  0          455           88          380          383    0    0     0     0   59   95   0   0 100   0   0 2018-08-06 23:37:20
 0  0          455           88          380          383    0    0     0     0   39   63   0   0 100   0   0 2018-08-06 23:37:21
 0  0          455           88          380          383    0    0     0     0   47   75   0   0 100   0   0 2018-08-06 23:37:22
 0  0          455           88          380          383    0    0     0     0   36   59   0   0 100   0   0 2018-08-06 23:37:23
 0  0          455           88          380          383    0    0     0     0   74  114   1   0 100   0   0 2018-08-06 23:37:24
 0  0          455           88          380          383    0    0   348     0   49   79   0   0 100   0   0 2018-08-06 23:37:25
 0  0          455           88          380          383    0    0     0     0   46   71   0   0 100   0   0 2018-08-06 23:37:26
 1  0          455           88          380          383    0    0     0    12   46   64   0   0 100   0   0 2018-08-06 23:37:27
 0  0          455           88          380          383    0    0     0     0   51   72   0   0 100   0   0 2018-08-06 23:37:28
 0  0          455           88          380          383    0    0    24     0  173  187   3   1  97   0   0 2018-08-06 23:37:29


awkコマンドで時刻を表示(-tが使えないsarの場合)

$ vmstat -aw 1 | awk '{print strftime("%Y/%m/%d %H:%M:%S"), $0} { system(":") }'
2018/08/06 23:41:41 procs -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu--------
2018/08/06 23:41:41  r  b         swpd         free        inact       active   si   so    bi    bo   in   cs  us  sy  id  wa  st
2018/08/06 23:41:41  1  0       435424        79260       366848       386424    3    2    27     8    0    1   1   0  99   0   0
2018/08/06 23:41:42  0  0       435424        78996       366848       386488    0    0     0     0   69  117   0   0 100   0   0
2018/08/06 23:41:43  0  0       435424        78872       366848       386500    0    0     0     0   58   89   0   1 100   0   0
2018/08/06 23:41:44  0  0       435424        78748       366848       386504    0    0     0     0   66  122   0   0 100   0   0
2018/08/06 23:41:45  0  0       435424        78748       366848       386504    0    0     0    50   59  100   0   0 100   0   0
2018/08/06 23:41:46  0  0       435424        78740       366848       386504    0    0     0     0   72  116   0   0 100   0   0
2018/08/06 23:41:47  0  0       435424        78744       366848       386504    0    0     0     0   47   83   0   0 100   0   0
2018/08/06 23:41:48  0  0       435424        78744       366848       386504    0    0     0     0   59  104   0   0 100   0   0
2018/08/06 23:41:49  0  0       435424        78744       366848       386504    0    0     0     0   59   92   0   0 100   0   0
2018/08/06 23:41:50  0  0       435424        78868       366848       386504    0    0     0     0   57   96   0   1 100   0   0
2018/08/06 23:41:51  0  0       435424        78744       366848       386504    0    0     0     4   58   90   0   0 100   0   0
2018/08/06 23:41:52  0  0       435424        78688       366848       386504    0    0     0     0   78   88   1   0  99   0   0


参考


· 最終更新: 2021/01/28 by kurihara

ページ用ツール