CacheSet v1.02

作者:Mark Russinovich

發佈日期:2021 年 12 月 16 日

Download下載 CacheSet(417 KB)
Sysinternals Live立即執行

簡介

CacheSet 是一個小程式,可讓您操作系統檔案快取的工作集參數。 不同於 CacheMan,CacheSet 會在 NT 的所有版本上執行,且不需修改即可在新的 Service Pack 版本上運作。 除了讓您能夠控制最小和最大工作集大小之外,它也可讓您重設快取的工作集,強制它視需要從最少的起點開始成長。 同時,與 CacheMan 不同的是,使用 CacheSet 所做的變更會立即對快取的大小產生影響。

使用 CacheSet 以沒有調校內部變數不可行的方式 (但 CacheMan 可以) 調整系統快取大小的效能。

注意:若要在 NT 4.0 Service Pack 4 和更新版本上使用 CacheSet,您必須具有「增加配額」權限 (系統管理員帳戶預設具有此權限)。 CacheSet 已經過更新以啟用此權限,使其可在 SP4 上運作。

CacheSet screenshot

安裝與使用

啟動之後,它會顯示系統檔案快取的目前大小 (每秒更新兩次)、其尖峰大小 (上次重新開機以來的最大大小),並可讓您設定新的最小值和最大值工作集大小。

設定新大小 只要輸入新的最小值和最大值,然後按一下 [套用] 按鈕。 如果您收到錯誤,則下列其中一個條件會成立:您輸入的最大值小於最小值、您輸入的最小值小於最小系統工作集大小,或您輸入的最大值大於最大系統工作集大小。 調整您輸入的值,然後再試一次。

您可能會注意到快取的大小會立即變更,然後繼續快速縮小或成長。 這是因為系統會每秒自動修剪工作集一次。 釋放的快取頁面仍在記憶體中,但可快速放棄以供需要更多記憶體的其他程式使用。 同樣地,當應用程式存取檔案系統數據時,快取可以輕鬆地重新取得頁面。

重設先前的值 您可以隨時按一下 [重設] 按鈕,以還原上次啟動 CacheSet 時作用中的快取工作集值。

清除快取的工作集 您可以按下 [清除] 按鈕,以強制快取釋放其所有頁面。 請注意,快取可以視需要再次成長,而且這與排清快取不同 - 指派給其的頁面只會提供給其他程式使用,而且可由快取回收。

使用命令列介面 您可以在 CacheSet 的命令列上輸入最小和最大工作集大小。 CacheSet 會以無訊息方式套用這些新值。 因此,您可以將 CacheSet 新增至開始程式群組,以在每次開機時自動設定快取的大小。

使用方式:CacheSet [最小工作集] [最大工作集]

運作方式

CacheSet 會使用 NtQuerySystemInformation 呼叫來取得快取的設定和 NtSetSystemInformation 的相關資訊,以設定新的調整大小資訊。 處理程序的工作集資訊可作為 NT 記憶體管理員關於應指派給應用程式多少頁實體記憶體的指導方針。 因為它們是指導方針,情況可能會導致記憶體管理員將工作集成長為大於最大值的大小,或將其縮減為小於最小值。 不過,這些設定是會影響應用程式整體配置及其回應性的因素。 在 CacheSet 的情況下,應用程式是檔案系統快取。

NtSetSystemInformation 內部會呼叫 MmAdjustWorkingSetSize,這會使得應用程式的工作集成長或修剪它。 如果傳遞至 MmAdjustWorkingSetSize 的第三個參數為 1,系統快取的工作集會調整,否則調整會在目前的處理程序上進行 (系統資訊呼叫只會影響系統快取)。 傳入 -1 的最小值和最大值會導致 MmAjustWorkingSetSize 執行工作集清除作業,從應用程式的工作集釋放所有頁面。

Download下載 CacheSet(417 KB)

Sysinternals Live立即執行

執行於:

  • 用戶端:Windows Vista 和更新版本。
  • 伺服器:Windows Server 2008 和更新版本。