200.1 リソース使用量の計測とトラブルシューティング
vmstat
システムのメモリ、プロセス、割り込み、ページング、ブロックI/O、CPUの情報を表示します。
文法
vmstat [間隔(s) [回数]]
オプション
| オプション | 説明 |
|---|---|
| -d | ディスクの統計情報を表示する |
| -s | イベントカウンタとメモリの統計情報を表示する |
| -p | 指定したパーティションの統計情報を表示する |
| -a | メモリのアクティブ/インアクティブを表示する |
| -S | Sの後にkまたはK、mまたはMを付けると1000、1,024、1,000,000、1,048,576バイトに出力が変わります。 |
| -w | 大きなメモリサイズに対応するため、フィールド幅を拡大する |
実行例
$ 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 162464 1888624 972008 7572308 0 0 8 96 14 17 17 6 77 0 0
0 0 162464 1896428 972008 7564304 0 0 0 0 1742 3277 1 0 99 0 0
0 0 162464 1891780 972008 7563944 0 0 0 240 2015 4127 1 1 98 0 0
$ vmstat -d -w -SM
disk- -------------------reads------------------- -------------------writes------------------ ------IO-------
total merged sectors ms total merged sectors ms cur sec
nvme0n1 601772 123291 34476461 220478 9635078 9738776 444943858 18905783 0 8533
sda 6694 0 37194 56228 0 0 0 0 0 63
sdb 4839 36711 76258 86326 2 1 3 2 0 12
表示結果の内容
-
procs
- r (runnable: 実行可能) : 待ち状態となっている実行可能プロセス数
- b (block: ブロック) : 割り込みできないスリープ状態となっているプロセス数
-
memory
- swpd : 使用されているスワップの量
- free : 未使用のメモリの量
- buff : 使用されているバッファの量
- cache : 使用されているキャッシュの量
-
swap
- si (swap in) : スワップからメモリに読み込まれた1秒間の平均量
- so (swap out): メモリからスワップに書き出された1秒間の平均量
-
io
- bi (block in) : デバイスから読み込まれたブロックの1秒間の平均量
- bo (block out) : デバイスに書き出されたブロックの1秒間の平均量
-
system
- in (interrupt) : 1秒あたり割り込み回数
- cs (context switch) : 1秒あたりのコンテキストスイッチの回数
-
cpu
- us (user) : ユーザ時間の割合
- sy (system) : カーネル時間の割合
- id (idle) : アイドル時間の割合
- wa (wait) : I/O待ち時間の割合
- st (stolen): 仮想マシンの与えた時間の割合
-
reads
- total : 正常に完了した読み込みの合計
- merged: グループ化された読み込み(I/O)
- sectors : 読み込みに成功したセクタ数
- ms : 読み込みにかかった時間
-
writes
- total : 正常に完了した書き込みの合計
- merged : グループ化された書き込み(I/O)
- sectors : 書き込みに成功したセクタ数
- ms : 書き込みにかかった時間
-
IO
- cur : 実行中のI/O
- s : I/Oに費やした時間
top
システムの全体的な使用率統計情報や、各プロセスのかつ状況を定期的に更新し、リアルタイムに表示する。
文法
$ top
オプション
| オプション | 説明 |
|---|---|
| -d 間隔 | 更新する間隔(デフォルト3秒) |
| -n 回数 | 表示を繰り返す回数 |
| -U ユーザー | 指定したユーザのプロセスを表示する |
| -p PID | 指定したPIDを表示する |
| -c | プログラム名とコマンドラインの表示を切り替える |
実行例
システムの全体的な使用率統計情報を表示するサマリー領域と、実行中のプロセスを、CPU使用率の高い順に、周期的にリスト表示するタスク領域があります。

表示結果の内容
サマリー領域
-
1行目 top -
- 現在時刻
- 稼働時間
- ログインユーザー数
- 平均負荷(1分、5分、15分)
-
2行目 tasks:
- タスクの総数
- 実行中あるいは実行可能なタスク数
- スリープしているタスク数
- ストップしているタスク数
- ゾンビタスク数
-
3行目 %Cpu(s):
- ユーザモードの時間
- システムモードの時間
- ナイス値が変更されたプロセスのユーザモードの時間
- アイドル時間
- I/O終了待ちの時間
- ハードウェア割り込みの処理時間
- ソフトウェア割り込みの処理時間
- ハーパーバイザの処理時間
-
4行目 MiB Mem:
- メモリの総量
- 未使用のメモリのサイズ
- 使用されているメモリのサイズ
- バッファやキャッシュに割り当て済みのメモリのサイズ
-
5行目 MiB Swap:
- スワップ領域の総量
- 未使用のスワップ領域のサイズ
- 使用されているスワップ領域のサイズ
- 物理メモリの空きサイズ
タスク領域
- PID : プロセスID
- USER : 実行ユーザ
- PR : 優先度(Priority)。低いほど優先される。
- NI : ナイス値(nice)。低いほど優先される。
- VIRT : 割り当て済みの仮想メモリ(KiB)。スワップ含む。
- RES : Resident Memory Size(KiB)。使用している物理メモリ。スワップ含まない。
- SHR : Shared Memory Size(KiB)。RESのうち、共有メモリとして使用されているメモリ。
- S : Process State Code。
- D : 割り込み不可スリープ
- I : アイドルカーネルスレッド
- R : 実行中もしくは実行可能
- S : 割り込み可能スリープ
- T : ジョブ制御シグナルで停止
- t : デバッガにより停止
- Z : ゾンビプロセス
- %CPU : そのプロセスが処理を行った時間の割合。
- %MEM : RES(実際の消費メモリ)の割合。
- TIME+ : プロセスが起動してから、CPUにより処理された掃除間。(10ms)
- COMMAND : 実行プロセス名。
uptime
システムの稼働時間や負荷平均(Load average)を表示します。
文法
$ uptime
実行例

表示結果の内容
- 現在時刻
- 稼働時間
- ログインユーザ数
- 負荷平均(1分、5分、15分)
sar
システムアクティビティの統計情報を収集、格納、表示する。指定したインターバル、回数で統計情報を収集し、表示する。インターバル、回数をを指定しなかった場合、あるいは-fオプションを指定した場合はデータファイルの内容を表示します。
文法
$ sar [オプション] <間隔(秒)> <回数>
オプション
| オプション | 説明 |
|---|---|
| -o [ファイル名] | 格納するデータファイル |
| -f [ファイル名] | 表示するデータファイル |
| -P {CPU番号|ALL} | 指定したCPU番号の統計情報を表示する。 |
| -n {キーワード|ALL} | 指定したキーワードの統計情報を表示する。キーワード: DEV(ネットワークデバイス)、SOCK(UNIXソケット)、IP、TCP、UDP |
| -r | メモリの使用状況を表示する |
| -d | ブロックデバイスの統計情報を表示する |
| -b | I/Oと転送レートの統計情報を表示する |
| -A | すべての統計情報を表示する |
実行例1
1秒間隔で3回統計情報を取得する
$ sar 1 3
Linux 5.15.0-56-generic (yonon) 2022年12月23日 _x86_64_ (12 CPU)
12時50分29秒 CPU %user %nice %system %iowait %steal %idle
12時50分30秒 all 1.74 0.00 1.00 0.00 0.00 97.26
12時50分31秒 all 8.60 0.00 2.17 0.00 0.00 89.23
12時50分32秒 all 2.01 0.00 0.92 0.17 0.00 96.91
平均値: all 4.11 0.00 1.36 0.06 0.00 94.47
表示結果の内容
| オプション | 説明 |
|---|---|
| %user | CPUがユーザモードで実行していた時間の割合。 |
| %nice | nice値が変更されたプロセスをCPUがユーザーモードで実行するのに費やした時間の割合。 |
| %system | CPUがカーネルモードで実行していた時間の割合。ハードウェア割り込みと ソフトウェア割り込みで使われた時間を含む。 |
| %iowait | CPUがディスクI/O待ちをしていた時間の割合。 |
| %steal | ハイパーバイザがゲストOSにCPUを割り当てるのに費やした時間の割合。ゲストOSがCPUを要求したが、別のゲストOSがCPUを使用していて競合が起こったときにこの値が上昇する。 |
| %idle | CPUがアイドル状態であった時間の割合。 |
実行例2
1秒間隔で3回CPUの統計情報を、ALLオプションの指定ですべてのフィールドを取得する
$ sar -u ALL 1 3
Linux 5.15.0-56-generic (yonon) 2022年12月23日 _x86_64_ (12 CPU)
16時48分39秒 CPU %usr %nice %sys %iowait %steal %irq %soft %guest %gnice %idle
16時48分40秒 all 0.33 0.00 0.25 0.00 0.00 0.00 0.00 0.00 0.00 99.41
16時48分41秒 all 0.92 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 98.08
16時48分42秒 all 1.25 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 97.75
平均値: all 0.83 0.00 0.75 0.00 0.00 0.00 0.00 0.00 0.00 98.41
表示結果の内容
| オプション | 説明 |
|---|---|
| %usr | CPUがユーザモードで動作していた時間の割合。 このフィールドは仮想プロセッサで使われる時間を「含まない」。 |
| %nice | nice値が変更されたプロセスをCPUがユーザーモードで動作していた時間の割合。 |
| %sys | CPUがカーネルモードで動作していた時間の割合。ハードウェア割り込みと ソフトウェア割り込みで使われた時間を「含まない」。 |
| %iowait | CPUがディスクI/O待ちをしていた時間の割合。 |
| %steal | ハイパーバイザがゲストOSにCPUを割り当てるのに費やした時間の割合。ゲストOSがCPUを要求したが、別のゲストOSがCPUを使用していて競合が起こったときにこの値が上昇する。 |
| %irq | CPUがハードウェア割り込みへのサービスに使った時間の割合。 |
| %soft | CPUがソフトウェア割り込みへのサービスに使った時間の割合。 |
| %guest | CPUが仮想プロセッサを実行するのに使った時間の割合。 |
| %gnice | CPUがnice値が変更されたゲストを実行するのに使った時間の割合。 |
| %idle | CPUがアイドル状態であった時間の割合。 |
実行例3
1秒間隔で3回メモリの統計情報を、ALLオプションの指定ですべてのフィールドを取得する。
$ sar -r ALL 1 3
Linux 5.15.0-56-generic (yonon) 2022年12月23日 _x86_64_ (12 CPU)
16時12分11秒 kbmemfree kbavail kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty kbanonpg kbslab kbkstack kbpgtbl kbvmused
16時12分12秒 1649300 5699816 7075780 44.12 906964 5718328 30462960 167.97 4236168 8229916 140 6569484 688940 34416 113476 206124
16時12分13秒 1650832 5701336 7074260 44.11 906964 5718316 30462960 167.97 4235992 8226604 172 6569516 688940 34416 113476 206124
16時12分14秒 1650372 5700876 7074720 44.11 906964 5718316 30462964 167.97 4235992 8227180 52 6570096 688940 34416 113476 206108
平均値: 1650168 5700676 7074920 44.11 906964 5718320 30462961 167.97 4236051 8227900 121 6569699 688940 34416 113476 206119
表示結果の内容
| オプション | 説明 |
|---|---|
| kbmemfree | 空きメモリの容量(KB) |
| kbavail | スワップなしで新しいアプリケーションを開始するのに 利用可能なメモリ量の推定値(KB) |
| kbmemused | メモリの使用量(KB)(マシンのメモリサイズ - kbmemfree - kbbuffers - kbcached - kbslab) |
| %memused | メモリ使用量の割合(%) |
| kbbuffers | カーネルのバッファとして使用されているメモリの容量(KB) |
| kbcached | カーネルキャッシュとして使用されているメモリの容量(KB) |
| kbcommit | システムの動作に必要な事前に確保されているメモリの量 (RAM + swap) |
| %commit | システムの動作に必要な事前に確保されているメモリの総メモリ量に対する割合 (RAM + swap) |
| kbactive | アクティブなメモリの容量 (KB)。※直近で使用されたメモリ、必要のない限り再利用 (開放) されないメモリ。 |
| kbinact | アクティブでないメモリの容量 (KB)。※直近で使用されていないメモリ、必要に応じて再利用 (開放) するメモリ。 |
| kbdirty | ディスクに書き戻されるのを待機しているメモリの容量 (KB)。 |
| kbanonpg | ユーザ空間ページテーブルへマップされるファイルに紐付かない (non-file backed) ページ数。 |
| kbslab | カーネルがキャッシュデータ構造、またはカーネル自身で 使っているメモリ量(KB) |
| kbkstack | カーネルスタック空間として使っているメモリ量(KB) |
| kbpgtbl | ページテーブルの最下層として割り当てられるメモリ量(KB) |
| kbvmused | 仮想アドレス空間として使っているメモリ量(KB) |
実行例4
1秒間隔で3回ブロックデバイスの統計情報を取得する。
$ sar -d 1 3
Linux 5.15.0-56-generic (yonon) 2022年12月23日 _x86_64_ (12 CPU)
14時20分06秒 DEV tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util
14時20分07秒 nvme0n1 40.00 0.00 160.00 0.00 4.00 0.09 2.33 0.80
14時20分07秒 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14時20分07秒 sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14時20分07秒 DEV tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util
14時20分08秒 nvme0n1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14時20分08秒 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14時20分08秒 sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14時20分08秒 DEV tps rkB/s wkB/s dkB/s areq-sz aqu-sz await %util
14時20分09秒 nvme0n1 2.00 0.00 36.00 0.00 18.00 0.01 5.00 1.20
14時20分09秒 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
14時20分09秒 sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均値: nvme0n1 14.00 0.00 65.33 0.00 4.67 0.04 2.45 0.67
平均値: sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均値: sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
表示結果の内容
| オプション | 説明 |
|---|---|
| tps | 1秒あたりに物理デバイスに発行される転送回数 |
| rKB/s | 1秒あたりにデバイスから読み込んだデータのサイズ(KB) |
| wKB/s | 1秒あたりにデバイスから書き込んだデータのサイズ(KB) |
| dKB/s | 1秒あたりにデバイスから破棄したデータのサイズ(KB) |
| areq-sz | デバイスに発行したI/Oリクエストの平均サイズ(KB) |
| aqu-sz | デバイスに発行したリクエスト平均のキューの長さ |
| await | デバイスに発行した I/O リクエストが処理されるまでの平均時間 (ミリ秒)。 この時間には、リクエストがキューに入っている時間と、処理される時間が含まれる。 |
| %util | デバイスに I/O リクエストが発行される経過時間の割合 (デバイスのバンド幅使用率)。 リクエストに対してデバイスがシリアルにサービスする場合、 この値が 100% に近いとデバイスの飽和が起こっている。 RAID アレイや最近の SSD のように、リクエストに対してデバイスがパラレルにサービスする場合、 この値は性能限界を反映しない。 |
実行例5
1秒間隔で3回I/Oと転送率の統計情報を取得する。
$ sar -b 1 3
Linux 5.15.0-56-generic (yonon) 2022年12月23日 _x86_64_ (12 CPU)
16時34分33秒 tps rtps wtps dtps bread/s bwrtn/s bdscd/s
16時34分34秒 7.00 0.00 7.00 0.00 0.00 56.00 0.00
16時34分35秒 0.00 0.00 0.00 0.00 0.00 0.00 0.00
16時34分36秒 7.00 0.00 7.00 0.00 0.00 56.00 0.00
平均値: 4.67 0.00 4.67 0.00 0.00 37.33 0.00
表示結果の内容
| オプション | 説明 |
|---|---|
| tps | 1 秒あたりに物理デバイスに発行される転送回数。 |
| rtps | 1 秒あたりの物理デバイスからの読み込みリクエスト数。 |
| wtps | 1 秒あたりの物理デバイスへの書き込みリクエスト数。 |
| dtps | 1 秒あたりの物理デバイスへの破棄リクエスト数。 |
| bread/s | 1 秒あたりのデバイスからの読み込みデータ量 (ブロック数) |
| bwrtn/s | 1 秒あたりのデバイスへの書き込みデータ量 (ブロック数) |
| bdscd/s | 1 秒あたりのデバイスへの破棄データ量 (ブロック数) |
実行例6
1秒間隔で3回ネットワークデバイスの統計情報を取得する。
$ sar -n DEV 1 3
Linux 5.15.0-56-generic (yonon) 2022年12月23日 _x86_64_ (12 CPU)
17時11分40秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
17時11分41秒 lo 2.00 2.00 0.12 0.12 0.00 0.00 0.00 0.00
17時11分41秒 enp7s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17時11分41秒 eno1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17時11分41秒 wlp6s0 1.00 1.00 0.04 0.07 0.00 0.00 0.00 0.00
17時11分41秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
17時11分42秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17時11分42秒 enp7s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17時11分42秒 eno1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17時11分42秒 wlp6s0 1.00 1.00 0.06 0.09 0.00 0.00 0.00 0.00
17時11分42秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
17時11分43秒 lo 2.00 2.00 0.12 0.12 0.00 0.00 0.00 0.00
17時11分43秒 enp7s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17時11分43秒 eno1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17時11分43秒 wlp6s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均値: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
平均値: lo 1.33 1.33 0.08 0.08 0.00 0.00 0.00 0.00
平均値: enp7s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均値: eno1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均値: wlp6s0 0.67 0.67 0.04 0.05 0.00 0.00 0.00 0.00
表示結果の内容
| オプション | 説明 |
|---|---|
| IFACE | 統計をレポートするネットワークインタフェースの名前。 |
| rxpck/s | 1 秒あたりの受信パケット数。 |
| txpck/s | 1 秒あたりの送信パケット数。 |
| rxKB/s | 1 秒あたりの受信キロバイト数。 |
| txKB/s | 1 秒あたりの送信キロバイト数。 |
| rxcmp/s | 1 秒あたりの受信圧縮パケット数 (cslip など)。 |
| txcmp/s | 1 秒あたりの送信圧縮パケット数。 |
| rxmcst/s | 1 秒あたりの受信マルチキャストパケット数。 |
| %ifutil | ネットワークインタフェースの利用率。 半二重インタフェースの場合の利用率は、rxkB/s と txkB/s の合計が インタフェーススピードに占める割合を計算する。 全二重インタフェースの場合は、rxkB/s と txkB/s のうちの大きい方が占める割合を計算する。 |
実行例7
1秒間隔で3回ネットワークデバイスwlp6s0のエラーの統計情報を取得する。
$ sar -n EDEV --iface=wlp6s0 1 3
Linux 5.15.0-56-generic (yonon) 2022年12月23日 _x86_64_ (12 CPU)
17時34分28秒 IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
17時34分29秒 wlp6s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17時34分29秒 IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
17時34分30秒 wlp6s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
17時34分30秒 IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
17時34分31秒 wlp6s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
平均値: IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s
平均値: wlp6s0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
表示結果の内容
| オプション | 説明 |
|---|---|
| IFACE | 統計をレポートするネットワークインタフェースの名前。 |
| rxerr/s | 1 秒あたりの受信不良パケット数。 |
| txerr/s | 1 秒あたりの送信エラーが起きたパケット数。 |
| coll/s | 1 秒あたりの送信衝突 (collision) が起きたパケット数。 |
| rxdrop/s | 1 秒あたりのドロップされた受信パケット数。Linux のバッファに空きがない場合に起こる。 |
| txdrop/s | 1 秒あたりのドロップされた送信パケット数。Linux のバッファに空きがない場合に起こる。 |
| txcarr/s | 1 秒あたりのキャリアエラーが起きた送信パケット数。 |
| rxfram/s | 1 秒あたりのフレームアライメントエラーが起きた受信パケット数。 |
| rxfifo/s | 1 秒あたりの FIFO オーバーランエラーが起きた受信パケット数。 |
| txfifo/s | 1 秒あたりの FIFO オーバーランエラーが起きた送信パケット数。 |
iptraf
IPネットワークモニタリングツールです。TCP/UDPなどのIPパケットのモニター、およびネットワークI/Fの統計情報などを表示します。
pstree
現在動作しているプロセスをツリー形式で表示する。
ps
現在動作しているプロセス一覧を表示する。
iotop
I/Oの統計情報を表示する。