Windowsの数値XP仮想メモリ情報はどのように解釈されますか?私は実際に興味があります:
1)システムがまったくスワップしないように「手つかずの」物理RAMのように空いている合計サイズはいくつですか。
実験するために、768MBのメモリを搭載したWindowsXPを実行するWindows7を使用して仮想マシンをセットアップしました。 簡単にするために、仮想メモリは「0」に設定されています(ページファイルは使用しないでください)以下はシステム情報とチャートです。
では、145MB(約)は「手つかずの」物理RAMですか?この数が約120MBのときに、XPがタスクバーに「仮想メモリが足りません」という小さなバルーンをポップアップする場合が実際にありました。私が実行している小さなアプリは、数MBだけを要求するので、120MBで十分なはずです。なぜそうなのか疑問に思います。
他の数字はどうですか?
785904
145432 (listing here to make a complete list)
128436
29312
23620
5692
25
740252
735132
582MB (the bar for PF Usage)
and the horizontal line for "Page File Usage History"
さて、仮想メモリは「ページファイルを使用しない」に設定されているので、PF使用量を0にすべきではありませんか?では、「ページファイルの使用履歴」の横線は常に0のままにする必要がありますか?ありがとう。
pdate:たとえば、ページファイルが固定の256MBファイルサイズに作成され、情報も上の図のように表示されている場合、これらの10個の数値はどのように解釈されますか?
この場合、「Available」のダウンが遅く、現在も120MBである場合は、ページファイルがまったく使用されていないことを意味しますか?
タスクマネージャーの[パフォーマンス]タブを解釈するにはどうすればよいですか?
まず、数字についてお話しましょう。これらは、合計、コミットチャージ、物理メモリ、カーネルメモリの4つのグループに分類されます。
Totals:は、OSに割り当てられているハンドル、プロセス、およびスレッドの数を示します。数字は単純なカウンターですが、基本的なプログラミングの概念であり、基本的な概念は常に注意が必要なため、単語の説明は非常に難しいです(動詞「tobe」を説明してみてください)。
ハンドル:カーネルは、ファイル、共有メモリセクション、レジストリキーなどの「オブジェクト」をプログラムに提供します。プログラムは、オブジェクトへの一時的な接続であるハンドルを使用して、オブジェクトを均一に操作します。ハンドルはオブジェクトではありません。たとえば、ファイルを17の異なる用途で同時に開くと、17の異なるハンドルが接続されます。
プロセス:プロセスは、実行中のプログラムのインスタンスです。 Explorerを3回実行している場合、3つのプロセスが実行されます。違いを見ます?プログラムは存続するものです-あなたが昨日持っていたプログラムはあなたが今日持っているプログラムです(あなたが何かをしなかった限り!)。プロセスは行き来します。
スレッド:プロセスで実際に実行されるもの。各プロセスは、プログラマーの決定により、1つ以上のスレッドで構成されます。スレッドは多かれ少なかれ独立した方法で実行されます。十分な数のプロセッサがあれば、それらはすべて同時に実行できます。それ以外の場合は、すべてが同時に実行されているように見えます。
これらの数値には、「適切な」値はありません。ほとんどの場合、それらが無制限に増加し始めたら、何かがうまくいかないのではないかと疑う時が来ました。たとえば、プログラムがファイルのクローズに失敗すると、「ハンドルリーク」が発生する可能性があります(ただし、プロセスを強制終了すると、そのすべてのハンドルがOSによって閉じられます。これはDOSではありません)。
コミット料金:これは「コミットされた仮想メモリ」の量を測定します(を参照)システム内のVMFAQバックグラウンド)。これは、名前付きファイルによってバックアップされていないプロセスによって要求されたすべてのメモリです(たとえば、プログラム命令はprogram.exeファイルに格納されているため、コミット料金にはカウントされません)。これを確認する1つの方法は、システムに仮想メモリ用の特定の予算があり、各プログラム要求がその予算に対して課金されることです。
Totalコミットチャージは、現在使用中の値です。制限は、ページファイルのサイズと、原則としてプログラムで使用できる物理メモリの合計です(つまり、永続的に存在するすべての部分をカウントするわけではありません)。
Peakは、起動後に記録された最大値です。
物理的記憶:これは簡単です。合計はOSが検出したメモリの量であり、使用可能な量はほぼ予想どおりです。いわゆるシステムキャッシュサイズは、実際にはシステムの「ワーキングセット」のサイズです(つまり、カーネルに接続され、代わりにスレッドを実行するプロセスであるシステムプロセスpid4によって使用される物理メモリの量です。カーネルおよびデバイスドライバの)。システムファイルキャッシュは、システムパフォーマンスを高速化するためにファイルの内容を一時的に保持しますが、おそらくシステムプロセスで最大のメモリ消費者であるため、妥当な概算です。
カーネルメモリ:は、カーネルおよびデバイスドライバによって使用されているメモリの量を示します。ここでの数値は仮想メモリの数であると私は信じています(ただし、ここでは間違っている可能性があります)。非ページメモリの場合、違いはありません。仮想メモリは常に物理メモリに常駐します。ページメモリの場合、サイズは仮想です。物理メモリの占有率は低くなる可能性があります。
さて、グラフとメーター。それらの見出しにもかかわらず、PF使用法およびページファイル使用履歴は表示されませんページファイルの使用量を測定しません。合計コミット料金を測定します。合計コミット数は、ページファイルの使用に関連しています。これは、ページファイルに書き込まれる可能性のあるすべてのものが実際にページファイルに書き込まれた場合に使用するページファイルの量です。 Windows 2000では、同じディスプレイはMem Usageと呼ばれ、物理メモリの使用量を測定したと思われます。それも正しくありませんでした。
とにかく自分自身を「タスクマネージャー」と呼ぶプログラムに何を期待しますか?オペレーティングシステムのカーネルには「タスク」と呼ばれるものはありません。OSには「プロセス」と「スレッド」があります。 DOSには「タスク」がありました。 Intelハードウェアには「タスク」構造がありますが、OSはそれ自体を実行する方が高速であるため、それらを使用しません。 (最近、「タスクスケジューラ」と呼ばれるユーザーモードプログラムが登場しましたが、カーネルはそれらのタスクについても何も知りません。さらに、それは「タスク」のまったく異なる使用法です)。
CPU使用率およびCPU使用履歴表示は、実際にはCPU使用率を測定します!つまり、システムのアイドルループで非割り込みレベルで使用されるものを除いて、すべてのCPU使用量をカウントします。したがって、これは、システムが実際にどれほどビジーであるかを示すかなり良い図です。
マルチプロセッサシステムでは、合計は1つのCPUの能力で表されると思います(それらは常に同一のCPUです)。したがって、2CPUシステムでは「200%」を使用できます。 CPUごとに1つのグラフを表示したい場合は可能です。誰かが私に2CPUシステムを送ってくれるなら、私はこれらの主張を検証します。
通常の緑色の線は、CPUの総使用量を示しています。オプションで、カーネルモードで費やされた時間を示す赤い線を追加できます。これは、問題を切り分けるのに便利な場合もあれば、見た目が良い場合もあります。 [表示]メニューの[カーネル時間を表示]を使用します。
下のステータス行は、CPUの使用、コミットチャージ、およびプロセスの合計を繰り返します。
Mark Russinovichのブログ投稿で良いメモと説明が得られます
ウィンドウの限界を押し上げる:ハンドルおよび他の4つそこからリンクされている古い投稿。
Markは優れた SysInternals ユーティリティを作成し、現在Microsoftと協力しています。
簡単な答え:実際の(または平均よりも大きい)ワークロードで1日(または1週間)作業した後、ピークコミット料金を確認します。これが「特定の瞬間に使用される最も多くの「メモリ」」です。次の0.5GBに切り上げて、それだけの量が必要ですRAM。3GBを超える場合は、64ビットOSへのアップグレードを検討してください。
次に、必要に応じて、「グレースフルデグラデーション」のために1GB程度のスワップを用意します(なぜすべての実行が非常に遅く、ハードディスクのライトが非常に点滅するのですか?)。 1.5Xまたは2Xのすべての推奨事項RAMは(ほとんど)ナンセンスです。
ボックス内に「合計25」と表示されているため、スクリーンショットは疑わしいものです。右下のステータスバーに「596564K」と表示され、グラフの「582MB」と一致します。