【Linux】vmstat・freeコマンドでメモリ使用率・CPU使用率を確認する方法

【Linux】vmstat・freeコマンドでメモリ使用率・CPU使用率を確認する方法

メモリ使用率はfreeコマンドの総メモリと利用可能なメモリから算出し、CPU使用率はvmstatのアイドル時間から算出します。

freeコマンドでメモリ使用率、vmstatでCPU使用率を確認する方法を解説します。
メモリ使用率はfreeコマンドの結果から総メモリ(total)利用可能なメモリ(available)を取得し使用率を計算します。

メモリ使用率(%)=((total - available) / total * 100)の値

CPU使用率はvmstatコマンドのアイドル時間(id)から算出します。

CPU使用率(%)=100 - idの値  

vmstatコマンド使い方

vmstatに監視したい間隔(秒)を指定して使います。
何も指定しないと1回だけ実行されます。

例)3秒ごとに監視する

vmstat 3

例)1回だけ実行する

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 101504 358584  22616 133184    0    1     6     4   27    7  0  0 100  0  

メモリ項目の説明

メモリ(memory)に関する項目は以下の通りです。

項目概要
swpd仮想メモリ量(KB)
free空きメモリ量(KB)
bufバッファとして使用されているメモリ量(KB)
cacheキャッシュに用いられているメモリの量(KB)

CPU項目の説明

CPUに関する項目は以下の通りです。

項目概要
usカーネルコード以外の実行に使用した時間 (ユーザー時間、nice 時間を含む)(%)。
syカーネルコードの実行に使用した時間 (システム時間)(%)。
idアイドル時間。
waIO 待ち時間。(%)
st仮想マシンから盗まれた時間。(%)

メモリ使用率の計算方法(freeコマンド)

メモリ使用率はfreeコマンドのtotalavailableで確認します。

メモリ状況をKB単位で確認

free -k

freeコマンド出力例

               total        used        free      shared  buff/cache   available
Mem:          999028      454496      281896          84      262636      393852
Swap:        1048572      143680      904892

available(利用可能)が393852KBで、total(総メモリ)が999028KBのマシンの場合、
メモリ使用率(%)は、((999028KB - 393852KB) / 999028KB * 100)で60%となります。

メモリ使用率(%)=((total - available) / total * 100)の値

CPU使用率の計算方法(vmstatコマンド)

vmstatの結果より、以下の通りCPU使用率を確認できます。

CPU使用率(%)=100 - idの値  

以下の場合、CPU使用率は(100 - 99)で1%です。

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 143680 280920  38772 224040    0    0     0     1   34   56  0  0 99  1  0

※CPUの項目(us、sy、id、wa、st)を足すと100になります。


以上です。
よいITライフを。