最初に行うこと

RAMMapを管理者として起動し、重い処理を一時停止してF5で更新し、Use Countsから始めます。Active、Standby、Modified、Freeを確認し、Process Private、Mapped File、Paged Pool、Nonpaged Poolなどのどれが大きいか判断します。その後にProcessesやFile Summaryへ進みます。

有用な基準状態からRAMMapを開始

RAMMapインストールガイドに従って現在の署名版を保存、展開します。PCのアーキテクチャーに合う実行ファイルを起動し、管理者承認を行います。アイドル状態を測る場合だけ無関係な負荷を閉じ、それ以外は測定したい負荷を再現します。

1回の調査につき質問を1つ書きます。この RAMMap 使い方 ガイド では、Mapped Fileを増やしたファイル、Process Privateが増えたプロセス、デバイス操作中にNonpaged Poolが増えるか、などを質問します。目的が決まればタブと比較対象がぶれません。

ディスクを多用する起動処理が落ち着くまで待ち、搭載RAMと時刻を記録します。必要ならタスク マネージャーを並べます。F5またはRefreshで最近の状態を表示します。Windowsのキャッシュは常に変化するため、1枚の画面だけで結論を出しません。

  1. 症状を定義

    ゲーム終了後の圧迫、増えるファイルキャッシュ、プロセスのリーク、予想外のカーネルプールなどです。

  2. 基準を保存

    負荷の前にRAMMapを更新し、再現比較が必要ならスナップショットを保存します。

  3. 負荷を再現

    管理された操作を1つ行い、複数の変数を同時に変えません。

  4. 更新して比較

    大きく増えた分類を探し、適切なタブで所有者を追跡します。

最初にUse Countsを読む

Use Countsは2つの視点を組み合わせます。Usage列はページが存在する理由を示し、ページリスト列は現在の状態を示します。Process Privateは個別プロセス、Mapped Fileはファイルに裏付けられたページ、ShareableとSharedは共有可能なページ、Paged PoolとNonpaged Poolはカーネル割り当てです。

Activeは現在使用中です。Standbyは通常Windowsが再利用できるキャッシュ、Modifiedは再利用前に書き込みが必要な変更、FreeとZeroedは準備状態が異なる利用可能ページです。Standbyが多くてもリークとは限らず、Freeが少なくても利用可能メモリ不足とは限りません。

Use Countsの質問と次のタブ
大きい分類次に見る画面答える質問
Process PrivateProcessesどのプロセスのワーキングセットまたはPrivateが大きいか
Mapped FileFile Summaryどのファイルの常駐データが最も多いか
Nonpaged PoolUse Countsとドライバーツールカーネルドライバー割り当てが時間とともに増えるか
StandbyPriority Summary再利用可能キャッシュが優先度別にどう分布するか
Page TableProcessesと負荷比較多数のプロセスがアドレスマッピングを増やしたか

アプリのメモリはProcessesで確認

ProcessesをTotal、Privateなどで並べ替えます。物理ワーキングセットのTotalはコミット済みPrivate仮想メモリと同じではなく、Sharedは複数のプロセスに現れます。最大のプロセスを異常と決めず、再現可能な操作の前後で同じ列を比較します。

1つのプロセスが増え続ける場合は、タスク マネージャー、Process Explorer、パフォーマンスカウンターでも確認します。RAMMapは物理常駐を得意としますが、完全なリーク調査にはコミット量、ハンドル、割り当て、アプリ固有の診断も必要です。終了前にスナップショットを保存します。

Mapped Fileが多い場合はFile Summaryを使用

Mapped Fileが多い状態はWindowsのファイルキャッシュであることがよくあります。File SummaryをTotal順にし、大きいパスを確認します。データベース、仮想ディスク、ゲームアーカイブ、ブラウザーキャッシュ、バックアップ、スキャン済みデータが常駐するのは、空きRAMがある場合は正常です。

調べる価値のあるファイルが見つかってからFile Detailsを使います。行数が多いのでフィルターや並べ替えを使います。キャッシュが再利用可能になるとWindowsはページをStandbyへ移します。強制消去は、キャッシュを作った負荷を直さず次の読み込みだけ遅くする場合があります。

保護されたActiveメモリと管理対象のキャッシュページを区別する図
Emptyコマンドを検討する前にキャッシュページを分類します。

RAMMapスナップショットを保存して比較

負荷と時刻を記録した後、File > Saveでメモリマップを保存します。試験前の基準と症状発生後の2つを保存し、idle-before.rmpafter-import-20min.rmpのような一貫した名前を使います。

比較の両側で同じ更新時点と列を使います。この RAMMap 使い方 ガイド では、同じ条件を使って一方のライブ値と別状態の古い値を比べる誤りを防ぎます。

スナップショットは証拠でありライブクラッシュダンプではありません。既知の時点の分類とページ所有を比較するのに適します。ハードウェア、OS、負荷が大きく違う無関係な保存データは比較しません。保存状態を後で確認するときLoadを使います。

良い診断習慣

負荷の変数を1つだけ変更し、経過時間を記録して同じ列を比較します。数値が小さくなるまで消去を繰り返すより有用です。

Emptyメニューは定義した試験だけで使用

Emptyはプロセスのワーキングセット、システムのワーキングセット、Standbyなどの変更を要求します。グラフはすぐ変わりますが、数値低下は最適化の証明ではありません。アプリとWindowsが同じデータを再読み込みし、ディスクI/Oと一時的な遅延が増えることがあります。

サポート手順で特定リストを空にする場合は、作業とRAMMapスナップショットを先に保存します。使ったコマンドを記録し、同じ負荷で症状が戻るか確認します。実行前にRAMMapキャッシュ整理ガイドを読んでください。

  • Emptyコマンドを定期メンテナンスとして自動化しません。
  • すべてのStandbyを無駄なメモリと考えません。
  • 1つの原因を調べるとき複数リストを同時に変更しません。
  • RAM使用量の低下とアプリ性能向上を混同しません。

RAMMap以外のツールが必要な場面を知る

RAMMapは物理ページ使用量に優れます。Process ExplorerはプロセスのハンドルやDLL、Performance Monitorは長時間カウンター、PoolMonはカーネルプールタグ、Windows Performance RecorderとAnalyzerは詳細なイベント調査に適します。

RAMMapで物理メモリの症状を分類し、絞った質問を専門ツールへ渡します。この RAMMap 使い方 ガイド では、起動しない場合はRAMMap起動トラブル、ラベルが不明ならメモリ種類リファレンスを参照します。

RAMMap 使い方 よくある質問

最初にどのタブを見ますか

用途と状態を分類するUse Countsから始め、大きい分類に応じてProcesses、File Summary、Priority Summaryへ進みます。

青いStandbyメモリとは何ですか

通常はWindowsが再利用できるキャッシュです。色の意味は選択した画面と凡例に依存するため、現在のタブを確認します。

どのくらいの頻度で更新しますか

新しい状態が必要なときF5またはRefreshを使います。管理された負荷の後に更新し、すべての変動を連続解釈しません。

メモリリークを見つけられますか

増える物理分類を示し、プロセス、ファイル、カーネルプールへ絞れます。対応する専門ツールでリークを確認します。

Standbyを空にするべきですか

通常のメンテナンスでは不要です。Windowsが必要時に再利用します。定義した診断試験だけで使い、再読み込みを想定します。

現在のリリース

手順を始める前にRAMMapを入手

検証済みMicrosoft Sysinternals v1.63 ZIPをダウンロードします。

RAMMap v1.63をダウンロード
15秒の配布元確認後に公式ダウンロードを開きます。

関連するRAMMapガイド