CacheSet v1.02

作成者: Mark Russinovich

公開日: 2021 年 12 月 16 日

DownloadCacheSet のダウンロード(417 KB)
Sysinternals Live から今すぐ実行します。

はじめに

CacheSet は、システム ファイル キャッシュのワーキング セット パラメーターを操作できるアプレットです。 CacheSet は、CacheMan とは異なり、NT のすべてのバージョンで実行され、新しい Service Pack リリースでは変更なしで動作します。 ワーキング セットの最小サイズと最大サイズを制御できるだけでなく、キャッシュのワーキング セットをリセットして、最小の開始点から必要に応じて拡大することもできます。 また、CacheMan とは異なり、CacheSet で行われた変更は、キャッシュのサイズに即座に影響します。

CacheSet を使用してシステム キャッシュのサイズをパフォーマンス チューニングする場合、CacheMan のように内部変数を微調整しない限り可能ではありません。

注: NT 4.0 Service Pack 4 以降で CacheSet を使用するには、"クォータの増加" 特権が必要です (管理者アカウントには、既定でこの特権があります)。 CacheSet は、この特権を有効にするために更新され、SP4 で動作するようになりました。

CacheSet screenshot

インストールと使用

起動すると、システム ファイル キャッシュの現在のサイズ (1 秒に 2 回更新) とそのピーク サイズ (前回の再起動以降の最大サイズ) が表示され、新しい最小および最大ワーキング セット サイズを設定できます。

新しいサイズの設定: 新しい最小サイズと最大サイズを入力し、[適用] ボタンをクリックします。 エラーが発生した場合、次のいずれかの条件が該当します: 入力した最大値が最小値より小さい、入力した最小値がシステムの最小ワーキング セット サイズより小さい、または入力した最大値がシステムの最大ワーキング セット サイズより大きい。 入力した値を調整して、もう一度やり直してください。

キャッシュのサイズがすぐに変更され、その後急速に縮小または拡大する場合があります。 これは、1 秒に 1 回ワーキング セットが自動的にトリミングされるためです。 解放されたキャッシュ ページはまだメモリ内にありますが、より多くのメモリを必要とする他のプログラムで使用するためにすぐに解放できます。 同様に、アプリケーションがファイル システム データにアクセスするとき、キャッシュによってページを簡単に回復できます。

以前の値のリセット: [リセット] ボタンをクリックすると、CacheSet を最後に起動したときにアクティブだったキャッシュのワーキング セット値をいつでも復元できます。

キャッシュのワーキング セットのクリア: [クリア] ボタンをクリックすると、キャッシュですべてのページを強制的に解放できます。 キャッシュは必要に応じて再び拡大される可能性がありますが、これはキャッシュのフラッシュ (キャッシュに割り当てられたページが他のプログラムで利用できるようになり、キャッシュで再利用できるようになること) と同じではないので注意してください。

コマンド ライン インターフェイスの使用: CacheSet のコマンド ラインには、ワーキング セットの最小サイズと最大サイズを入力できます。 CacheSet では、これらの新しい値が自動的に適用されます。 したがって、起動プログラム グループに CacheSet を追加することで、起動するたびにキャッシュのサイズを自動的に設定できます。

使用法: CacheSet [最小ワーキング セット] [最大ワーキング セット]

動作のしくみ

CacheSet は、NtQuerySystemInformation 呼び出しを使用してキャッシュの設定に関する情報を取得し、NtSetSystemInformation を使用して新しいサイズ情報を設定します。 プロセスのワーキング セット情報は、アプリケーションに割り当てる必要がある物理メモリのページ数に関する、NT のメモリ マネージャー用のガイドラインとして機能します。 これらはガイドラインであるため、メモリ マネージャーがワーキング セットを最大サイズよりも大きいサイズに拡大したり、最小サイズよりも小さいサイズに縮小したりするような状況が発生する可能性があります。 ただし、これらの設定はアプリケーションの全体的な割り当て、つまり応答性に影響を与える要因となります。 CacheSet の場合、アプリケーションはファイル システム キャッシュです。

内部では NtSetSystemInformationMmAdjustWorkingSetSize を呼び出し、それによりアプリケーションのワーキング セットが拡大またはトリミングされます。 MmAdjustWorkingSetSize に渡される 3 番目のパラメーターが 1 の場合、システム キャッシュのワーキング セットが調整されます。それ以外の場合、現在のプロセスで調整が行われます (システム情報呼び出しはシステム キャッシュにのみ影響します)。 最小値および最大値として -1 を渡すと、MmAjustWorkingSetSize はワーキング セットのクリア操作を実行し、アプリケーションのワーキング セットからすべてのページを解放します。

DownloadCacheSet のダウンロード(417 KB)

Sysinternals Live から今すぐ実行します。

実行場所:

  • クライアント: Windows Vista 以降。
  • サーバー: Windows Server 2008 以降。