システムの総メモリ消費量 (仮想 + 物理) は、Windows のタスク マネージャに表示される [メモリ使用量] 列と [VM サイズ] 列の合計であると仮定するのは正しいですか?
3 に答える
Mark Russinovich による次の投稿をお読みください。
http://blogs.technet.com/markrussinovich/archive/2008/07/21/3092070.aspx
http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx
最新の Windows では、「総メモリ消費量」についての唯一の真実はありません。もちろん定義にもよりますが、問題はその答えをどうしたいかです。
SQL-Server のような一部のプロセスは、許可されていれば、手に入れることができるメモリのすべてのバイトを使用する傾向があります。.NET CLR ガベージ コレクターは、メモリの使用状況を監視し、それに応じて動作し、メモリが不足するとより多くのメモリを解放しようとします。
たとえば、8 GB の物理メモリを備えたシステムを持つことができ、そのうち 90% が「使用済み」です。実際にどれだけのメモリが必要かを言うのは非常に困難です。同じシステムを 4 GB のマシンで実行しても、顕著なパフォーマンスの低下やその他の問題は発生しません。
Windows でのメモリ管理の複雑さを調べたい場合は、以前の sysinternals サイトから「VMMap v2.0」をダウンロードしてください。プロセスごとの非常に詳細なメモリ使用量が表示され、クエストに役立つ場合があります。
VMMaps Help からの引用: VMMap は、メモリをいくつかのタイプのいずれかに分類します。
Image メモリは、.exe や .dll などの実行可能ファイルを表します。[詳細] 列にファイルのパスが表示されます。
プライベート プライベート メモリは他のプロセスと共有できず、システム コミット制限に対して課金され、通常はアプリケーション データが含まれます。
共有 可能 共有可能メモリは他のプロセスと共有でき、システムのコミット制限に対して課金され、通常、異なるプロセスの DLL 間またはプロセス間通信メッセージ間で共有されるデータが含まれます。Windows API は、この種類のメモリをページファイル バックアップ セクションと呼びます。
マップされたファイル メモリはディスク上のファイルを表し、[詳細] 列にはファイルのパスが表示されます。通常、マップされたファイルにはアプリケーション データが含まれます。
ヒープ ヒープは、ユーザー モード ヒープ マネージャーによって管理されるメモリを表し、プライベート メモリと同様に、システム コミット制限に対して課金され、アプリケーション データが含まれます。
マネージド ヒープ マネージド ヒープは、.NET ガベージ コレクターによって割り当てられ、使用されるメモリを表します。
スタック スタックは、関数パラメーター、ローカル関数変数、および個々のスレッドの関数呼び出しレコードを格納するために使用されるメモリです。スタックはコミット制限に対して課金され、通常はオンデマンドで拡張されます。
システム システム メモリは、プロセスに関連付けられたカーネル モードの物理メモリです。システム メモリの大部分は、プロセス ページ テーブルで構成されます。
フリー フリー メモリ領域は、割り当てられていないプロセス アドレス空間内のスペースです。
次に、「使用済み」と見なすメモリのタイプを定義し、すべてのプロセスについてこれらを合計し、複数の重複を削除して、数を確認する必要があります...タスクマネージャーまたは他のツールに理由があります「総メモリ消費量」というラベルの付いた単一の数値:-)
いいえ、物理メモリと仮想メモリが重複している可能性があります。メモリのページが仮想メモリにあり、物理メモリにページインされた場合、仮想メモリは必ずしも解放されない場合があり、ページが再びページアウトされたときに予約される場合があります。