はじめに
vmstat
コマンド(仮想メモリ統計の略)は、Linuxに組み込まれている監視ユーティリティです。このコマンドは、メモリ、システムプロセス、ページング、割り込み、ブロックI / O、ディスク、およびCPUスケジューリングに関する情報を取得するために使用されます。ユーザーは、サンプリング期間を指定することにより、システムアクティビティを事実上リアルタイムで観察できます。
このコマンドは、パフォーマンスのボトルネックを特定し、システムの問題を診断するのに役立ちます。
このチュートリアルでは、Linuxでvmstatコマンドを使用する方法を学習します。
前提条件
- Linuxを実行しているマシン
- sudo/root権限を持つアカウント
Linuxvmstatコマンド構文
基本的なvmstat
構文は次のとおりです:
vmstat [options][delay [count]]
- オプション –出力をカスタマイズするためのさまざまなスイッチ。
- 遅延 –経過時間を定義します 出力更新の合間に。
- カウント –指定された遅延間隔後の出力更新の数。 countが設定されていない場合、デフォルト値は無限です。 。
利用可能なオプションのリスト:
オプション: | 説明: |
-a | アクティブなメモリと非アクティブなメモリを表示します。 |
-f | 起動後のフォークの数を表示します。 |
-m | スラブ統計を表示します。 |
-n | 定期的ではなく1回だけヘッダーを表示します。 |
-s | さまざまなイベントカウンタとメモリ統計のテーブルを表示します。 |
-d | ディスク統計を表示します。 |
-D | 詳細なディスクアクティビティレポート。 |
-p | 詳細なパーティション統計。 |
-t | レポートにタイムスタンプを追加します。 |
-S [unit] | 出力ユニットを切り替えます。 |
-V | バージョン情報を表示します。 |
-h | ヘルプを表示します。 |
man vmstat | ターミナルにユーザーマニュアルを表示します。 |
vmstatの使用方法
vmstat コマンドはsysstatの一部です CPUとデバイスの統計とレポートを生成するシステム監視ツール。 sysstatパッケージはデフォルトでLinuxで利用できます。
1. vmstatがない場合 マシンに次のコマンドを実行してインストールします:
CentOSおよびRHELシステムの場合:
sudo yum install sysstat
Fedora 22以降のシステムの場合:
sudo dnf install sysstat
UbuntuおよびDebianベースのシステムの場合:
sudo apt-get install sysstat
Arch Linuxの場合:
sudo pacman -S sysstat
2.パスワードを入力し、インストールが完了するのを待ちます。
3. vmstatを実行します 平均統計を含むシステムレポートを表示するためのパラメータなし 前回の起動以降。
4.追加のレポートについては、vmstatオプションを使用してください 、遅延、 およびカウント 。
基本的なvmstat出力
vmstat
の基本的な出力 コマンドは、システム情報を6つのセクションに表示します。
1. procs –プロセス統計
- r –アクティブ プロセス カウントします。
- b –睡眠 プロセス カウントします。
2.メモリ –メモリ統計
- swpd –合計仮想メモリ 。スワップスペースは最初は使用されていません。ただし、システムの物理メモリが限界に達すると、カーネルはスワップスペースの使用を開始します。
- 無料 –合計無料 メモリ 。
- バフ –合計メモリ データバッファとして一時的に使用されます 。
- キャッシュ –合計キャッシュメモリ 。
3.スワップ –スワップスペース統計
- si –レート スワッピングインの ディスクからのメモリ。
- そう –レート スワップアウト ディスクへのメモリ。
4. io –入力/出力統計
- bi –ブロック受信 1秒あたりのブロックデバイスから。
- bo –ブロック送信済み 1秒あたりのブロックデバイスへ。
5.システム –統計のスケジューリング
- で –システム割り込みの数 。
- cs –コンテキストスイッチの数 1秒あたり。
6. cpu –CPU統計
- 私たち – CPUの割合 非カーネルプロセスに費やされた時間 。
- sy – CPUの割合 カーネルプロセスに費やされた時間 。
- id –アイドル状態のCPUの割合。
- wa – CPUの割合 入力/出力の待機に費やした時間 。
- st – CPUの割合 時間盗まれた 仮想マシンによる。
アクティブおよび非アクティブなシステムメモリの表示
アクティブ メモリは、プロセスによって使用されているメモリです。 非アクティブ メモリは、実行されなくなったプロセスに割り当てられたメモリです。
-a
を使用する オプションはバフを置き換えます およびキャッシュ 無効のメモリ列 およびアクティブ 列。これらの列には、システム内の非アクティブおよびアクティブなメモリの量が表示されます。
情報を表示するには、次のコマンドを実行します:
vmstat -a
出力には、メモリ統計がキロバイトで表示されます。 デフォルトでは。メガバイトを使用してレポートを生成するには、 -S
を使用します オプション。
メモリとスケジューリングの統計
メモリ、イベントカウンタ、およびCPUスケジューリング統計に関する詳細情報を生成するには、次のコマンドを実行します。
vmstat -s
出力には、 vmstat
のようなレポートが表示されます 基本的なレポート。一部のセクションで詳細が示されています。たとえば、出力はニースを分割します および不適切なCPU時間 、基本的な vmstat
で結合されます レポート。
出力には4つのセクションがあります:
1.出力の最初のセクションは、使用済みメモリの量を扱います:
- 合計物理的記憶。
- 現在使用されているメモリ。
- アクティブメモリ。
- 非アクティブなメモリ。
- 無料 記憶。
- バッファ 記憶。
- キャッシュ 記憶。
- スワップ メモリ情報。
2. 2番目のセクションには、 CPU統計:が表示されます。
- 非適切なCPUティック–CPUが高優先度に使用された回数 プロセス。
- 優れたCPUティック–CPUが低い優先度に使用された回数 プロセス。
- システムCPUティック–CPUがカーネルプロセスに使用された回数。
- アイドル状態のCPUティック–CPUがアイドル状態だった回数
- IO-wait –CPUが入出力管理に使用された回数。
- IRQ –CPUが割り込み要求を受信した回数。
- softirq –CPUがソフトウェア割り込みを受信した回数。
- 盗まれたCPUティック–仮想マシンがCPU時間を盗んだ回数。
3. 3番目のセクションには、メモリページングに関連する値が表示されます:
- ページングされたページの総数 仮想メモリから。
- ページアウトされたページの合計 仮想メモリに。
- 合計読み取りページ メモリを交換します。
- 書き込まれたページの総数 メモリを交換します。
4.最後のセクションでは、さまざまなイベントカウンターについて説明します:
- 割り込みの数 起動してから。
- コンテキストスイッチの数 実行されました。
- タイムスタンプ 最後の起動時。
- フォークの総数。
起動後のフォークの数を表示
フォークは新しいプロセスです 既存の実行中のものから作成されます。システムの起動以降に作成されたフォークの数を確認するには、次のコマンドを実行します。
vmstat -f
出力には、システムの起動以降に作成されたフォークの数が表示されます。
クイックサマリーディスク統計の表示
-D
オプションは、すべてのディスクアクティビティのクイックサマリー統計を生成します。次のコマンドを実行します:
vmstat -D
出力には、ディスク数、パーティション数、読み取り数、書き込み数などのシステムの詳細が表示されます。
ディスク統計の表示(統計の読み取り/書き込み)
各ディスク使用量の詳細な統計を取得するには、 -d
を使用します オプション:
vmstat -d
出力には、ディスクごとに3つの列が表示されます–読み取り 、書き込み 、および IO 。読み取りと書き込みはミリ秒で測定されます 、IO列は秒で測定されます 。
各列にはいくつかのサブセクションがあります:
1. 読み取り:
- 合計 :ディスク読み取りの総数。
- 統合 :グループ化された読み取りの総数。
- セクター :読み込まれたセクターの総数。
- ミリ秒 :ディスクからデータを読み取るのにかかった合計時間(ミリ秒単位)。
2. 書き込み:
- 合計 :ディスク書き込みの総数。
- 統合 :グループ化された書き込みの総数。
- セクター :書き込まれたセクターの総数。
- ミリ秒 :ディスクへのデータの書き込みにかかった合計時間(ミリ秒単位)。
3. IO:
- cur :現在のディスクの読み取りまたは書き込みの合計。
- 秒 :進行中の読み取りまたは書き込みに費やされた時間(秒単位)。
パーティション統計の表示
-p
を使用して、特定のパーティションに関連するレポートを生成します オプションの後にパーティション名が続きます:
vmstat -p [partition_identifier]
この例では、出力に sda1の概要が表示されます。 、sdaデバイスの最初のパーティション。概要には、ディスクの読み取りが含まれます および書き込み そのパーティションとセクターの総数を頼りに ディスクの読み取りおよび書き込みタスクに関与します。
更新のタイムスタンプ情報を表示する
要求された出力とともにタイムスタンプを取得するには、 -t
を使用します オプション:
vmstat -t
出力は、基本的な vmstat
と同じです。 タイムスタンプが追加された出力。
遅延値を使用する
[delay]
構文は、各出力更新間の経過時間を秒単位で指定します。次の構文を使用します:
vmstat [delay]
この例では、各レポートの更新の間に3秒の遅延があります。
遅延なしの場合 が指定されている場合、1つの出力のみ が印刷され、平均値が表示されます 最後の再起動以降。
カウント値を使用する
カウント値により、 vmstat
出力の更新が停止する前に実行する更新の数を把握します。コマンドを無限に実行するには、 [count]
を省略します 構文。
カウント値を使用するための構文は次のとおりです。
vmstat [delay[count]]
この例では、5秒の遅延と3つの出力更新が必要であることを指定しました。
単位の変更
メモリとスワップの統計を表示するためのデフォルトの単位はキロバイトです。 。出力単位を変更するには、 -S
を使用します オプションと次の引数のいずれか:
- k :1000バイト。
- K :1024バイト。
- m :1000000バイト。
- M :1048576バイト。
統計を10進数のキロバイトとメガバイトで表示するには、 kを使用します およびm 、 それぞれ。大文字のK およびM 統計を16進数のキロバイトとメガバイトで表示します。
たとえば、次のコマンドを使用して、5秒ごとに統計を更新し、表示単位をメガバイトに変更します:
vmstat 5 -S M
出力には、メモリとスワップの統計がメガバイト単位で表示されます。
スラブの統計を表示する
スラブ割り当ては、カーネルが処理するさまざまなデータオブジェクトにメモリを効率的に割り当てるためのメモリ管理システムです。
スラブ統計を表示するには、 -m
を使用します オプション。このアクションにはスーパーユーザー権限が必要であることに注意してください 。次のコマンドを実行します:
sudo vmstat -m
出力は5つの列で構成されています:
1.キャッシュ :キャッシュされたデータ名。
2.数 :Numキャッシュ内のアクティブオブジェクトの総数。
3.合計 :特定のキャッシュで使用可能なオブジェクトの数。
4.サイズ :キャッシュされた各オブジェクトのサイズ。
5.ページ :キャッシュされたオブジェクトを含むメモリページの数。