メモリ パフォーマンスの問題を特定して理解するには、Windows タスク マネージャーに加えて、
PerfMon と
PoolMon を使用することをお勧めします。
Windows タスク マネージャーを使用してメモリを監視します:
- Ctrl+Alt+Del を押して、 タスク マネージャーを選択します。
- パフォーマンス タブをクリックします。
- 以下を長期的に監視します:
- 物理メモリ (K)で、 使用可能 の値が 減少するかどうかを確認します。 減少した場合は、メモリ リークが発生している可能性があります。
- カーネル メモリ (K)で、 ページ メモリと 非ページ メモリ の変化を観察し、カーネル ページ メモリ リークか非ページ メモリ リークかを特定します。
- リークを特定した場合は、 プロセス タブをクリックし、 表示を選択します。
- 列 を選択し、以下を有効にします:
- ページフォールト
- 仮想メモリのサイズ
- ページ化されたプール
- 非ページプール
- ハンドル数
- スレッド数
- プロセス タブで、 メモリ使用量 をクリックして、最も多くのメモリを使用しているプロセスを一番上に表示します。
注: 大量のメモリを使用しているのに解放していないプロセスを特定した場合は、次の情報を使用して問題のトラブルシューティングを行ってください。 原因を特定するために、プロセス ダンプの提供が必要になる場合もあります。
PoolMon と PerfMon
より詳細で正確な分析を行うには、 PoolMon と PerfMon を同時に実行します。
PoolMon
- PoolMon を実行する準備をします。:
- Poolmon.exe は、 Microsoft Windows Driver Kit (WDK)に含まれています。 Microsoft WDK サイトからダウンロードできます。
- Microsoft 製品の手順に従って、テストするコンピューターに PoolMon をインストールします。
- PoolMon を実行します。 次の例は、 PoolMon を使用してメモリ リークを検出する手順の概要を示しています:
- Windows + R を押し、 cmd, と入力して Enter を押します。
- PoolMon ディレクトリに移動します。
- 次のコマンドを入力して Enter キーを押します:
重要: 最も正確な結果を得るには、以下の指示に正確に従ってください。
PoolMon を開始するとデータが変更されるため、定常状態に達し、データが信頼できるようになるまで実行しておく必要があります。
poolmon -b -p -r -n <filename>.log
PoolMon を少なくとも数時間実行させます。 場合によっては、数日間実行する必要があるかもしれません。
- Stop PoolMon を停止し、30 分間待ってから、PoolMon を再起動します。
重要: 少なくとも 2 時間、30 分ごとに繰り返します。
- 必要に応じて、次のスクリプトを使用して、時間の経過とともに複数のスナップショットを取得します:
@ECHO off
:LOOP
ECHO %DATE %TIME% >>filename.log
Poolmon -b -p -r -n filename.log
Ping -n seconds 127.0.0.1 >NULL
GOTO LOOP
注: 秒 の値については、15 分ごとをお勧めします。
- データ収集が完了したら、各タグの次の値を調べて、継続的に増加している値をメモします:
- Diff (割り当てから空きバイトを差し引いた値)
- Bytes (割り当てられたバイト数から解放されたバイト数を差し引いた値)
- 増加している割り当てを調べて、バイトが解放されたかどうかを判断します。 割り当てがまだ解放されていない、またはサイズが増加し続けていることが原因である可能性があります。
PerfMon
PerfMon は、キャプチャしたデータを保存するためのいくつかの方法を提供します。 ただし、パフォーマンスの問題のトラブルシューティングには Microsoft Binary Performance Log (BLG) 形式を使用します。
- Windows+R を押し、 cmd, と入力して Enter を押します。
- 次のコマンドを入力して Enter キーを押します:
perfmon
- データ コレクター セット、 ユーザー定義をクリックします。
- ユーザー定義を右クリックし、 新規を選択して、 データ コレクター セットを選択します。
- 名前 (例: Trellix <date_timestamp>)を入力し、 手動で作成を選択して、 OKをクリックします。
- データ ログの作成で、 パフォーマンス カウンターのみを選択し、 次へをクリックします。
- 追加をクリックします。 次のページのドロップダウン リストから プロセッサを選択し、 <すべてのインスタンス>を選択して、 追加をクリックします。
- ドロップダウン リストから メモリ を選択し、 <すべてのインスタンス>, を選択して、 追加をクリックします。
- ドロップダウン リストから プロセス を選択し、次のドロップダウン リストから <すべてのインスタンス> を選択します。
- 追加、 OK、 次へ、 次への順にクリックし、 このデータ コレクター セットを今すぐ開始するを選択して、 完了をクリックします。
問題を再現しながら情報を取得し、ログを収集するのに十分な時間データが実行されるまで待ちます。
- ユーザー定義を右クリックし、 <ログ名>を右クリックして、 停止をクリックします。
- C:\Perflogs\Admin\examplename\computername_date-time\DataColletor01.blg からログを取得します。
PerfMon の使用の詳細については、 Microsoft
PerfMon サイトを参照してください。