web-dev-qa-db-ja.com

Windows 7タスクマネージャーでのこれらのさまざまな種類のメモリ使用量は何ですか?

Windows 7のタスクマネージャーでは、表示するさまざまな列を選択できます。メモリとメモリ使用量に関連するものがたくさんありますが、それが何を意味するのかわかりません。

私はWindowsをオランダ語でインストールしているので、それらを翻訳してみます。英語の名前がわからないので。

Memory columns

順番に:

  • ワーキングセット
  • ピークワーキングセット
  • プライベートワーキングセット
  • コミットチャージ
  • ページプール
  • ページングされていないプール
17
Simon Verbeke

ワーキングセットとは何ですか?また、それは何に使用されますか?

ワーキングセットは、物理メモリに常駐する仮想 ページ のサブセットです。

Windowsには複数の種類のワーキングセットがあります。

  • プロセスワーキングセットには、単一プロセス内のスレッドによって参照されるページが含まれています。

  • システムワーキングセットには、ページプールとシステムキャッシュの中に、ページング可能なシステムコードの常駐サブセット(これには主にカーネルとロードされたドライバーが含まれます)が含まれています。

  • Session 常駐サブセットを含むワーキングセット kernel-mode Windowsサブシステム、セッションページプール、セッションマップビュー、およびその他のセッションドライバーによって割り当てられたセッション固有のデータ。

基本的に、ワーキングセットは、大量のページングを回避するために使用できる物理メモリの量を決定するために使用されます。 ページフォールト が発生すると、ワーキングセットの制限とシステムの空きメモリ容量が調べられます。必要に応じて、メモリマネージャーは、プロセスをワーキングセットの最大値まで拡張できます。メモリが不足している場合、ページフォールトが発生すると、Windowsはワーキングセット内のページを置き換えます。

Windowsは、変更されたページをディスクに書き込むことにより、メモリを利用可能にしようとします。メモリが不足すると、ワーキングセットマネージャはほとんどのワーキングセットをトリミングして、システムで使用可能な物理RAMメモリの量を増やします。ページ数が多いプロセスでは、見られる傾向が高い。

プロセスのデフォルトのワーキングセットは、最小50ページで構成され、最大345ページです。 制限は変更可能 ただし、ほとんどのユースケースではデフォルトで十分です。また、最大ワーキングセットサイズは、起動時に計算されたシステム全体の最大値を超えることはできないことに注意する必要があります。

Windowsは、プロセスの仮想ワーキングセットページによって使用される合計、ピーク、およびプライベート物理RAMの量を報告します。プライベートはプロセス間で共有されないメモリ。

コミットチャージとは何ですか?何に使用されますか?

プロセスの仮想アドレス空間内のページは、空き、予約、またはコミットされています。アプリケーションは アドレス空間を予約してからコミットする ;それ自体の予約はメモリやページファイルスペースを必要としません。主にページコミットメントを延期することによってメモリを削減するために行われます。

コミットされたページは、アクセスされると、最終的に物理メモリ内の有効なページに変換されるページです。それらはプライベートで共有可能であるか、セクションのビューにマップされます。セクションは、共有メモリまたは マップされたファイル のいずれかです。そのため、コミットされたページがマップされたファイルの一部にマップされている場合、アクセス時にディスクから取り込む必要がある場合があります。

最も一般的に知られている マップされたファイル はページファイルです。いくつかのプロセスでまだ使用されているが、ディスクに書き込む必要があった変更されたページを格納します。これをより積極的に行うことにより、その前にI/O書き込みを行うことなく、メモリをより簡単に空にすることができます。

メモリマネージャは、グローバルベースで、およびページファイルクォータとしてプロセスごとにプライベートコミット料金を追跡します。これらの値は、ページファイルに書き込む頻度を決定するために使用されます。メモリの解放はワーキングセットメカニズムによって行われることに注意してください...

メモリに存在しなくなったものは、ページファイルから読み込まれます。

Windowsは、コミット料金を合計として報告しますプロセスが使用するメモリの量バッキングストアがありません。それは基本的に物理的な量を合計しますRAMそれはまだページファイルに存在せず、他のマップされたファイルをそこから差し引きます。

バッキングストアとは、データのバックアップを保持するストレージです。たとえば、画像をメモリにマッピングすると、画像はメモリとディスクの両方に存在します。したがって、メモリ使用量が多い状況で必要なときにいつでもディスクからアクセスできることを考えると、そのイメージをメモリ使用量として計算することは意味がありません。

メモリヒープとは何ですか?

ページプールおよび非ページプールとして知られています...

カーネルのシステムスレッドには、プロセスのようにアドレス空間がありません。したがって、オペレーティングシステムの メモリヒープに動的ストレージを割り当てる である必要があります。これは、ほとんどの場合、ページプールまたは非ページプールによって形成されます。

ページプールは、システムにページインしたり、システムからページアウトしたりできる仮想メモリで構成されます。-でメモリにアクセスする必要のないデバイスドライバ 低ディスパッチレベル (より高い優先度)は、ページプールを自由に使用できます。

非ページプールは、常に物理メモリに存在することが保証されている仮想メモリで構成されているため、ページフォールトを発生させることなくいつでもアクセスできます。 。より低いディスパッチレベルでメモリにアクセスする必要があるデバイスドライバは、非ページプールを使用して、その時点でI/O呼び出しが利用できないため、データにアクセスできるようにする必要があります。とにかく、このレベルには主に重要なコードがあります...

これらのプールには最小サイズと最大サイズがあり、これらは使用可能なRAMのわずかな割合であると判断されます。それらは大きくなる可能性がありますが、使用可能なRAMの特定の割合を超えないことに注意してください。非ページプールは、より重要なメモリ専用であることを考えると非常に堅実ですが、ページプールはページファイルに拡張されます。

これは、ページファイルを無効にしたときに最もよく見られる問題の1つです。とりわけ 安定性 および パフォーマンス 問題。ページファイルを無効にしている場合は、確認する価値があります。

SourceWindows Internals 本からの抜粋が理解できるテキストに書き直されました。

15
Tamara Wijsman

英語の翻訳は、ワーキングセット、ピークワーキングセット、ワーキングセットデルタ、プライベートワーキングセット、コミットサイズ、ページプール、および非ページプールです。これは大まかにそれらが意味するものです:

ワーキングセット:物理的な量RAM=がこのプロセス(および場合によっては他のプロセス)に常駐してマップされている).

ピークワーキングセット:最も物理的なRAMこのプロセスはこれまでに常駐していました。

ワーキングセットデルタ:最後の更新以降のワーキングセットの変更

プライベートワーキングセット:このプロセス専用にマップされた物理RAMの量。

commit Charge :このプロセスが使用している仮想メモリの量で、ページファイルによるバックアップが必要な場合があります。これは理解するのが難しいものですが、プロセスがマップしたメモリのすべてのバイトにアクセスまたは変更した場合、基本的にどれだけ追加のRAMまたはページファイルが必要になるかです。

ページプール:このプロセスが担当するシステムの通常のメモリプール(必要に応じてページアウトできます)の使用量。

非ページプール:このプロセスがページングできない物理メモリの量。通常、これは非同期I/Oなどのシステムオブジェクトに使用されます。 (このメモリは、システムの非ページプールにカウントされます。)

8
David Schwartz