如何設定 HeapDeCommitFreeBlockThreshold 登錄值

 

上次修改主題的時間: 2011-01-13

當指定的位址釋放記憶體時,作業系統堆集管理員就會檢查那個位址周圍有多少連續的位元組可用。完成檢查之後,堆集管理員可執行下列兩個動作的其中之一:

  • 持續認可連續的記憶體區塊。
  • 解除連續記憶體區塊委託,而僅標示為保留。

HeapDecommitFreeBlockThreshold 登錄機碼可指定上述解除記憶體委託的連續位元組數目。根據預設,堆集管理員不一定會結合所有可用的區塊或建立新的配置;因此,可能會解除區塊委託,而使虛擬地址空間內的小部份空間變得無用。這會導致虛擬記憶體分散、效能低落,而最後造成系統無法穩定地運作。

在安裝 1 GB 或更多實體記憶體的系統上,可控制解除記憶體委託的數量大小以最佳化效能。HeapDecommitFreeBlockThreshold 登錄機碼可提供用來處理已釋放之記憶體的控制方式。將此值增加到登錄時,您必須以十六進位值 0x00040000 (十進位制則為 262144) 來設定它。

Microsoft 不支援 HeapDecommitFreeBlockThreshold 登錄機碼為十六進位值 0x00040000 (十進位制則為 262144) 以外的任何值。此外,只有 Exchange Server 2000 及 Exchange Server 2003 支援使用 HeapDecommitFreeBlockThreshold 登錄機碼,但前提是要安裝 1 GB 或更多的實體記憶體。在安裝少於 1 GB 實體記憶體的系統上,或者不管安裝多少實體記憶體,在非執行的 Exchange 2000 Server 或 Exchange Server 2003 的系統上,請不要使用 HeapDecommitFreeBlockThreshold 登錄機碼。

開始之前

在執行這個主題中的程序之前,請注意該程序包含關於編輯登錄的資訊。

Caution注意:
編輯登錄錯誤可能會導致嚴重的問題,使得您必須重新安裝作業系統。因編輯登錄錯誤所造成的問題可能無法解決。因此請在編輯登錄之前,備份所有重要的資料。

程序

設定 HeapDeCommitFreeBlockThreshold 登錄值

  1. 開啟登錄編輯程式,如 Regedit.exe 或 Regedt32.exe。

  2. 瀏覽到 HKLM\System\CurrentControlSet\Control\Session Manager

  3. 在 [Session Manager] 上按一下滑鼠右鍵,然後選取 [新增] | [DWORD 值]。

  4. 將新的 DWORD 值命名為 HeapDecommitFreeBlockThreshold

  5. 連按兩下 [HeapDecommitFreeBlockThreshold] 值。

  6. 將 [底數] 變更為 [十六進位]。

  7. 在 [數值資料] 欄位中,輸入 0x00040000

  8. 關閉 [登錄編輯程式] 並重新啟動 Exchange Server 電腦,讓變更生效。

參考資料