タスク マネージャーでメモリ使用量 % を計算するために Microsoft が使用する式は何ですか?

タスク マネージャーでメモリ使用量 % を計算するために Microsoft が使用する式は何ですか?

この質問に対する答えを見つけることができませんでした。背景を説明します。

私は W7 64 Pro を使っていて、リソース モニターで内訳を見ることができますが、列の合計を合計すると、MS が計算した % の数値をどうやっても得ることができません。この数値自体が信頼できないようです。なぜそう言うかというと、RAM の暴走問題が発生したシステムがあり、プロセスによって最終的にシステムが使用できなくなったのですが、タスク マネージャーではシステムの使用容量が 65% であると表示され、エラーでは使用可能なメモリがないと表示されていたからです。記録によると、このシステムでは暴走問題が発生する前から「RAM クリープ」の問題が常にありました。

さて、これで RAM 使用率が 65% のシステム障害についてお話しします。オンボード グラフィックスが 2 GB をロックしている可能性があることがわかりましたが、これはこのシステムでは正しいと思います。当時はボード/プロセッサ グラフィックスを使用していました。オンボード グラフィックスがメモリを予約しているとしても、プロセスの一部としてはどこにも表示されません。リソース モニターでは「ハードウェア予約済み」として表示されるはずです。また、システム プロパティ ウィンドウとシステム情報では、システムは 6 GB や 7.5 GB などではなく、8 GB であると表示されます。いずれにしても、Intel 2000 グラフィックスを搭載した HP 6200 Pro に関する情報は入手しにくいため、グラフィックスがどのように管理されているのかはわかりません。オンボード グラフィックスのグラフィックス処理は、この i5 プロセッサ (i5-2400) のプロセッサで処理されます。おそらく、グラフィックス割り当て (予約済みメモリ) が、システムが 65% でメモリを使い果たした理由でしょう。最終的に、暴走プロセス (HWiNFO ドライブ モニター) を見つけることができ、暴走した使用量は止まりました。ただし、使用量はまだ高すぎます。システムには 8 GB あり、数か月の安定化と専用グラフィック カード (HD 4550) の追加後でも、メモリはアイドル状態が約 46% です。これは、アイドル状態が 25 ~ 35% である他のシステムとの比較です。断言はできませんが、メモリの問題の忍び寄る側面は少なくとも遅くなりました。アイドル状態がどんどん高くなっているように見えるため、判断は困難ですが、おそらく止まるでしょう。これは非常にゆっくりと忍び寄るプロセスです。

しかし、これは私が本当に知りたいことです。スプレッドシートを使用してタスク マネージャーに列を追加しても、MS が TM に表示する合計 % を算出できません。これはもちろん監視ソフトウェアでも使用されるものなので、この数値には何か理由があると思います。しかし、MS はどのようにして数値を計算するのでしょうか。

ちなみに、ワーキング セットとプライベート WS を合計しても、MS がシステムで使用していると言っている量よりはるかに少ないです。コミットを合計に追加すると、超過してしまいます。繰り返しますが、リソース モニターで MS が使用中と言っている量を確認できますので、その点については触れないでください。MS が「使用中」と言っているものが正確に何を意味するのか、定義または公開されている場所がどこにも見つからないのです。

答え1

メモリ使用量の列を合計しても、総使用量と等しくなることはありません。プロセス以外のメモリの重要なユーザーも存在します。これには、非ページ プール、ページ プールの常駐部分、およびファイル キャッシュが含まれます。他にもいくつかありますが、通常は非常に小さいです。

奇妙なことに、ファイル キャッシュはタスク マネージャーに表示される「キャッシュ」値に含まれていません。使用中の RAM には含まれていますが、識別されることはありません。パフォーマンス モニターやその他のユーティリティでは利用できます。ファイル キャッシュは簡単に 500 MB 以上になることがあります。場合によっては、さらに大きくなることもあります。

最新の OS のメモリ使用量は、数字の列を単純に合計するだけでは計算できないほど複雑です。

メモリ使用率の計算は簡単です: 使用中のメモリ / 合計メモリ * 100。

関連情報