コミットチャージ (: commit charge)は、コンピューティングでは、Microsoft Windowsオペレーティングシステムで使用される用語であり、物理メモリページファイルのいずれかにあるすべてのプロセスの仮想メモリの合計サイズのこと[1]。 ページングのプロセスを通じて、このメモリは物理メモリとページファイルの間を移動するが、これら2つのサイズの合計によって制限される。コミットチャージはこの制限の使用率をパーセンテージで表したもの。

コミットチャージに関係のない仮想メモリには、ファイルでバックアップされた仮想メモリと、何もバックアップされていないすべてゼロのページが含まれる。

概要 編集

Windows XP/Windows Server 2003のWindowsタスクマネージャーユーティリティの[パフォーマンス]タブには、コミットチャージに関連する3つの数字が表示される。

  • 合計は、使用中のページファイルでバックアップされた仮想アドレス空間のサイズ、つまり現在のコミットチャージのこと。これは、メインメモリ(RAM)とディスク(ページファイル)で構成されている。対応するパフォーマンスカウンターは「コミット済みバイト」と呼ばれる。
  • 制限値は、可能な最大値のこと。これは、現在のページファイルサイズとページング可能なコンテンツに使用可能な物理メモリの合計(これには、ページング不可能な領域に割り当てられているRAMは含まれない)。対応するパフォーマンスカウンターは「コミット制限」と呼ばれる。
  • 最大値は、オペレーティングシステムが最後に起動されてから、合計コミットチャージが到達した最大値 (ピーク)のこと。

Process Explorerプログラムは、同じ値のセットを報告し、合計に現在のラベルを付け、さらに制限値に対するピークと現在のパーセンテージを取得できる。

コミットチャージは、プログラムを開いて使用すると増加し、プログラムを閉じると減少する。すでに実行中のプログラムがVirtualAllocおよびVirtualFree APIを使用してプライベート仮想メモリを割り当てたり解放したりするときにも変更される。

Windows XP/Windows Server 2003のタスクマネージャユーティリティでは、「PF使用量」および「ページファイル使用量の履歴」というラベルの付いたグラフは、ラベルの意味とは裏腹にページファイルの内容ではなく、合計(または現在の)コミットチャージを反映している。グラフ線の値は、コミット制限に対応する。これらは、実際にページファイルに書き込まれた量を示すのではなく、潜在的なページファイルの最大使用量、つまりRAMの現在の内容をすべて削除する必要がある場合に使用されるページファイルの量を示す。 Windows 2000/Windows NT 4.0では、これらの同じディスプレイには「メモリ使用量」というラベルが付いているが、実際にはコミットチャージとコミット制限が表示される。 Windows Vista以降のタスクマネージャの同様の表示は、物理メモリの使用量を反映するように変更された。

タスクマネージャの[プロセス]画面では、「合計コミットチャージ」に対する各プロセスの寄与が、Windows XP/Windows Server 2003の[VMサイズ]列に表示される。同じ値は、 Windows Vista以降では「コミットサイズ」とラベル付けされている。合計にはページプールなどのシステム全体の割り当てが含まれるため、合計コミットチャージは常にこれらの値の合計よりも大きくなる。

同じ画面で、Windows XP/Windows Server 2003の[メモリ使用量]列、またはWindows Vista以降の[ワーキングセット(メモリ)]列に、各プロセスの現在のワーキングセットが表示される。これは、仮想アドレス空間ではなく、物理メモリ(RAM)の数となる。これは、有効なプロセスの仮想アドレス空間のサブセットを表す。つまり、ページフォールトを発生させることなく参照できる。

各プロセスのコミットチャージには、マップトファイルなど、プロセスの仮想アドレス空間への他の主要な寄与は含まれない。このため、プロセスのワーキングセット(ページフォールトを発生させずに参照できるアドレス空間の部分)は、合計コミットチャージへの寄与よりも大きくなる可能性があり、合計コミットチャージには実際に使用されている合計メモリ(物理または仮想)が含まれない。

コミット制限は、追加のページファイルを作成するか、ページファイルの拡張が有効になっている場合は既存のページファイルを拡張することで増やすことができる。合計コミットチャージが制限に近づくと、オペレーティングシステムは、可能であれば、ページファイルを自動的に展開する。このような場合、「システムの仮想メモリが不足しています」というポップアップウィンドウが表示される。

システムが完全にコミットチャージを使い果たした場合(つまり、合計が制限に達した場合)、「システムは仮想メモリが不足しています」というポップアップウィンドウが表示され、システムが極端に遅くなったり、応答しなくなったりする可能性がある。プログラムを閉じると(ユーザーがこの時点でまだそうできる場合)、合計コミットチャージが減り、システムが解放される可能性がある。

関連項目 編集

参考文献 編集

脚注 編集

  1. ^ Pushing the Limits of Windows: Virtual Memory”. Mark's Blog. Microsoft TechNet. 2018年6月25日閲覧。

その他の参考資料 編集

  • David Solomon; Mark Russinovich (September 16, 2000). Inside Microsoft Windows 2000, Third Edition. Microsoft Press. ISBN 0-7356-1021-5. https://archive.org/details/insidemicrosoftw0000solo 
  • Mark Russinovich; David Solomon (December 8, 2004). Microsoft Windows Internals, Fourth Edition: Microsoft Windows Server(TM) 2003, Windows XP, and Windows 2000. Microsoft Press. ISBN 0-7356-1917-4. https://archive.org/details/isbn_9780735619173