Open棟梁Project - マイクロソフト系技術情報 Wiki
内部動作に影響を与え、システム全体の性能に影響するため慎重に使用すること。
ワーキングセット中に未使用のメモリページが存在せず、メモリページの個数が上限に達している場合、ワーキングセットからメモリページを取り除き、取り除いたメモリページを必要に応じてページングファイルにスワップアウトし、新たに物理メモリ上のメモリページを割り当て、ワーキングセットに追加する。
また、(仮想記憶上で)利用中のワーキングセットのページがトリミングによりスタンバイ リストに移動させられた際に、プロセスがこれらのページにアクセスした場合、ページは、ワーキング セットへ "ソフト ページ フォールト" で戻される。これは"ハード ページ フォールト"と比べるとディスク アクセスを必要としないので非常に高速である。
ワーキングセットのサイズが過剰と判断された場合、
アイドル時間が最も長いページからトリミングされる。
プロセスが(仮想記憶上で)メモリ開放を行った場合、ワーキングセット中のメモリページがすぐに破棄されるわけではない。この場合、メモリページはワーキングセットからは取り除かれるが、スタンバイリストと呼ばれるリストに追加される。プロセスが再度メモリ割り当てを行った場合、可能ならばスタンバイリストのページをワーキングセット中に移動して再利用する。また、長時間プロセスがメモリ割り当てを行わない場合、スタンバイリストのページは自動的に破棄される。
※ プライベート ワーキング セット ワーキング セットのうち、他のプロセスと共有できない(DLL、MMFを除く)メモリ ページのセット。
ソフトページフォールト - NyaRuRu?の日記 http://d.hatena.ne.jp/NyaRuRu/20051022/p4
メモリ割り当てから解放までのメモリライフサイクル - TechTarget?ジャパン システム運用管理 http://techtarget.itmedia.co.jp/tt/news/1201/25/news02.html
・システムの起動時には、全てのメモリが未使用ページリスト(Free Page List)に入れられている。 ・Windowsではゼロページスレッドが、未使用ページリストをゼロページリスト(Zero Page List)に入れる。 ・プロセスは開始時に、ゼロページリストから必要なページのみを取得し、ワーキングセットを作る。 ・プロセスの終了時には、ワーキングセットが未使用ページリスト(Free Page List)に戻される。 ※ ゼロページスレッドによるゼロページ化はメモリ・スキャベンジ防止のセキュリティ対策のため。
なお、ワーキングセットから外れたスタンバイ リストは、通常のスタンバイ リストと変更済みページリストに分けられる。 この2つのスタンバイ リストの違いは、変更済みページリストはプログラムによって書き換えられたページであり、 ページングファイル(ディスク)に書き込まれた後に、スタンバイ リストを経由してでないとワーキングセットに戻せない点である。
このため、ワーキングセットに関するカウンタは物理メモリのOSによる管理状況を確認するために利用する。 ※ アプリケーションによるメモリ使用量(仮想メモリの使用量)を確認する用途に使用するのは適切ではない。
システム キャッシュ (システム ワーキングセット)
Windows XP でシステム キャッシュ モードを有効にする場合の注意事項 http://support.microsoft.com/kb/895932/ja XPマシンをクリーニング&チューンアップ Windows XP快適化計画 2005 - デジタル - 日経トレンディネット http://trendy.nikkeibp.co.jp/article/tokushu/gen/20051007/113796/?P=19&rt=nocnt
システムキャッシュとは使用されていないメモリをキャッシュ領域として使用するスタンバイ リストの仕組み。 スタンバイ リスト(変更済みページリストを含む)が実質的にシステムキャッシュとなる(ソフト ページ フォールトを伴う)。
TechNet? Blogs > Ask CORE > All Tags
> リソース不足について – 番外編1 (64bit 環境での注意点)
http://blogs.technet.com/b/askcorejp/archive/2009/12/29/1-64bit.aspx
なお、システム キャッシュ (システム ワーキングセット)は、 次の 5 種類のワーキングセットが合計されたサイズになる。 パフォーマンス ログでは Memory\Cache Bytes カウンタを確認する。
・システム キャッシュ ページ Memory\System Cache Resident Bytes
・ページ プール Memory\Pool Paged Resident Bytes
・Ntoskrnl.exe 内のページング可能なコードとデータ Memory\System Code Resident Bytes
・デバイス ドライバ内のページング可能なコードとデータ Memory\System Driver Resident Bytes
・システム マップドビュー ・・・
※ システム ワーキングセットもワーキングセット (現在使用している物理メモリ領域)
Windbgの以下のコマンドで確認できる。
0: kd> !memusage loading PFN database loading (100% complete) Compiling memory usage data (99% Complete). Zeroed: 173816 (695264 kb) Free: 0 ( 0 kb) Standby: 71317 (285268 kb) Modified: 1387 ( 5548 kb) ModifiedNoWrite?: 561 ( 2244 kb) Active/Valid: 145881 (583524 kb) Transition: 16 ( 64 kb) Unknown: 0 ( 0 kb) TOTAL: 392978 (1571912 kb)
以下の様なツールも存在する。
Windows Sysinternals > ダウンロード > ファイルとディスク > CacheSet? http://technet.microsoft.com/ja-jp/sysinternals/bb897561
システム ファイル キャッシュのワーキング セットのサイズを設定できるアプレット