[System Environment] | ||||||||||||
Rammapツールでメモリの詳細な利用状況を調査する
|
||||||||||||
|
解説 |
TIPS「リソース・モニタでメモリの利用状況をモニタする」では、タスク・マネージャに付属するリソース・モニタ・ツールを使って、Windowsシステムのメモリの利用状況を調査する方法を紹介した。リソース・モニタはWindows Vista/Windows Server 2008以降のWindows OSで利用できる。
ただしリソース・モニタでは、全体的なメモリの利用状況は分かるが、例えば使用中のメモリ・ページがどのようなプロセスや用途(カーネル・メモリかデバイス・ドライバかファイル・キャッシュか、など)に使われているかは分からない。このような細かい利用状況は通常は知る必要がないだろうが、開発者や、高度なトラブル・シューティング作業を行うエンジニアにとっては必要な情報である。
メモリの詳細な利用状況を知るにはWindows向けデバッガ「Debugging Tools for Windows(Windows開発者向けサイト)」などを使うのが一般的だが、これは使いこなすのが簡単ではない。もう少し簡単で、分かりやすくメモリの利用状況を確認できるツールとして、SysinternalsのRammapがある。本TIPSではこのツールについて紹介する。
Rammapツールは、Sysinternalsがリリースしているシステム調査ツールの1つで、Windowsシステムのメモリの詳細な利用状況を表示できる。メモリの全般的な利用方法のほか、プロセスごとの利用状況、マッピングされているファイルの情報、メモリ・ページごとの利用状況など、非常に詳しい情報が得られる。なお動作対象はWindows Vista/Windows Server 2008以降のWindows OSとなっている。
操作方法 |
Rammapツールのインストールと実行
Rammapツールを利用するには、上記のページからZIP形式のファイルをダウンロードしてどこか適当な場所へ解凍し、中に含まれているrammap.exeをダブルクリックして実行する。64bit Windows OS上で利用すると、64bit版のツール(Rammap64.exe)が同じ場所に生成され、それが実行される。32bit版Windowsの場合はそのまま直接実行される。
ツールを起動すると、タブ付きのウィンドウでカテゴリ別のメモリの利用状況が表示される。以下、主なタブの内容を簡単に解説する。
メモリの利用状況の表示
このツールで表示されるメモリの利用状況のマップは、Windows標準のリソース・モニタのメモリ表示をさらに詳細にしたものになっている。参考のために、リソース・モニタの画面も示しておこう(リソース・モニタについてはTIPS「リソース・モニタでメモリの利用状況をモニタする」を参照)。
リソース・モニタのメモリ画面 | ||||||
リソース・モニタを利用すると、タスク・マネージャより詳細なシステムの状態をモニタできる。[メモリ]タブでは、用途別のメモリの利用状況がグラフで表示され、分かりやすくなっている。 | ||||||
|
これと同じ時点の状態をRammapツールで確認すると、次のように表示される。
リソース・モニタの画面と比べると、より詳しく分類して表示されていることが分かるだろう。この画面は、縦軸と横軸の表形式になっていて、横軸は各メモリ・ページの状態、縦軸は用途を表している。すべての項目を加算すると、全メモリ・サイズになる。リソース・モニタでは一番上の横軸のグラフのみが表示されていると考えてよい。Rammapでは、例えばプロセス・プライベート・メモリのうち、変更済みはいくらか、といった情報が分かる。
横軸と縦軸の各項目の意味は次の通りである。
項目 | 意味 |
横軸 | |
Active | アクティブ(使用中)なメモリ・ページ(のサイズ)。プロセス(ワーキング・セット)やデバイス・ドライバ、カーネルなどで使用されている、使用中のメモリ・ページ |
Standby | スタンバイ状態のメモリ・ページ。変更されていない、もしくは外部ディスクへフラッシュ済みのデータを含むキャッシュ。有効なデータを保持しているが、場合によってはそのまま破棄される可能性がある |
Modified | 変更済み状態のメモリ・ページ。変更されているデータを含むキャッシュなので、破棄する前に、ディスクへの書き出しが必要 |
Modified no write | 変更済みだが、ディスクへの書き出しは不要なメモリ・ページ |
Transition | ほかの状態へ遷移中のページ |
Zeroed | ゼロ・クリアされた状態のページ。セキュリティのため、システムは初期状態ではすべてのページをゼロ・クリアする |
Free | 空きページ。ゼロ・クリアされていないので、使用前にクリアする必要がある |
Bad | 障害などで不良状態であると判断されたメモリ(システムによっては、起動中に不良ページを検出し、Bad状態に設定できる) |
縦軸 | |
Process Private | プロセス用メモリ |
Mapped File | ファイル・マッピング用メモリ。ファイルはメモリ空間にマップされて利用されている |
Shared Memory | 共有メモリ |
Page Table | 仮想記憶で利用するページ・テーブル・データを保存するためのメモリ |
Paged Pool | ディスクにページアウトすることが可能なページ |
Nonpaged Pool | ディスクにページアウトすることが不可能なページ。常にメモリ上に存在している必要があるカーネルやデバイス・ドライバなどで利用される |
System PTE | システム用途で利用されるページ・テーブル・メモリ。PTEはページ・テーブル中のエントリのこと |
Session Private | ログオン・セッション用メモリ |
Metafile | NTFSのメタファイル用メモリ |
AWE | メモリ空間拡大用のAWE機能で利用されるメモリ |
Driver Locked | デバイス・ドライバが利用・ロックしているメモリ |
Kernel Stack | カーネル・スタック |
Unused | 未使用メモリ |
Rammapのメモリ利用状況ページの表示項目 | |
Windows OSの管理下にあるメモリは、「ページ」と呼ばれる単位(通常は1ページ=4Kbytes)に分割され、用途別に割り当てられる。そのページごとの利用状況がリソース・モニタやRammapツールなどで確認できる。 |
- Introduction to the new Sysinternals tool: RAMMap[英語](マイクロソフトAsk the Performance Teamブログ)
物理メモリ・サイズの表示
「Physical Ranges」タブには、Windows OSシステムが認識している全RAM領域のリストが表示される。システムに装着しているはずのメモリ・サイズと、Windows OSが認識しているメモリ・サイズに違いがある場合は、これを見ると、どのようなメモリ・マップになっているかが確認できる。なお32bit Windows OS上で実行すると、OSが認識している部分のサイズ(一般的なクライアントWindows OSでは4Gbytes以下しか認識されない)しか表示されない。
メモリ領域マップ | |||||||||
Windows OSシステムが認識している物理メモリ領域のマップが表示される。この例では、全メモリ空間が3つの領域に分かれて、認識されている。ちなみに、一番上はいわゆる1Mbytes以下のメモリ領域(コンベンショナル・メモリ)、2番目は4Gbytes以下の領域にあるメモリ(この直後から4Gbytesの間まではデバイス用空間)、3番目は4Gbytes以上の領域にあるメモリである。 | |||||||||
|
メモリ・ページの詳細な利用情報
「Physical Pages」タブでは、メモリ・ページごとに、その用途や状態などがすべて表示される。「File Summary」や「File Details」タブでは、どのファイルがどのメモリ・ページにマッピングされているかや、どのファイル領域がマッピングされているか、マッピングされているページの状態などが表示される。
メモリ空間の強制的なフラッシュ
[Empty]メニューには、指定したメモリ・ページ領域をフラッシュさせるための機能が用意されている。例えば「Modified Page List」をフラッシュさせると、システムは変更済みデータをディスクへ書き出し、Modifiedメモリ空間を空にする(空にするように努力するだけであって、実際には例えばSystem Working Set領域を完全に空にすることは不可能である)。「Standby List」をフラッシュさせると、(何も書き出す必要はないので)すぐにスタンバイ領域が解放されて空きメモリ領域となる。
指定されたメモリ領域のフラッシュ | |||
[Empty]メニューを使うと、指定されたメモリ領域を(なるべく)フラッシュさせるように努力する。 | |||
|
この記事と関連性の高い別の記事
- リソースモニターでメモリの利用状況をモニターする(TIPS)
- リソースモニターでオープン中のファイルをモニターする(TIPS)
- タスクマネージャーのパフォーマンスタブの見方(Windows Vista/Windows Server 2008編)(TIPS)
- タスクマネージャーのパフォーマンスタブの見方(Windows 7/Server 2008 R2編)(TIPS)
- 必要メモリ・サイズを見極める(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|