Exchange Server 2003 記憶體使用量的最佳化

 

上次修改主題的時間: 2006-08-16

這個主題包含關於監視及最佳化伺服器記憶體使用量的資訊。

監視記憶體使用量

您可以監視事件檢視器應用程式記錄和效能記錄及警示 ([系統管理工具] 子功能表上的 [效能]),了解虛擬記憶體問題。在應用程式記錄中,當最大的虛擬記憶體可用區塊降到 32 MB 時,會出現 9582 的警告訊息。如果您看到這個警告,應該下次找機會再重新啟動 Exchange 儲存區處理程序。如果最大區塊降到 16 MB,會再度出現 9582 的錯誤訊息;這個錯誤表示伺服器可能會運作失敗,您應該一有機會就重新啟動伺服器。若未處理這些事件,可能會導致偶發性的郵件傳遞失敗與 IMAIL 轉換失敗 (12800 事件)。

在效能記錄及警示中,請監視下列計數器:

  • **MSExchangeIS 物件中的 VM Largest Block Size 計數器:**健康伺服器的最大可用區塊會超過 200,000,000 個位元組 (200 MB)。如果該值較低,您應仔細監視伺服器。
  • **Memory 物件中的 Pool Pages Bytes:**大於 200 MB 的量表示發生問題,除非正在執行備份。在備份時,快取管理員中的每一分頁都是由集區分頁備份的。
  • **Memory 物件中的 Pool Nonpaged Bytes:**大於 100 MB 的量表示發生問題。
  • **Memory 物件中的 Free System Page Table Entries:**小於 3000 的量表示發生問題。
  • **Process 物件中的 Working Set:**上升趨勢表示可能有記憶體流失。

如果伺服器出現虛擬位址空間過低的信號時,則應該調整下列設定。如果 Microsoft® Exchange 的這些設定未最佳化,事件檢視器中會出現事件 9665。

  • 如果伺服器執行 Microsoft Windows® 2000 Advanced Server 或 Windows Server™ 2003,並有 1 GB 或更多的實體記憶體時,請依照下列描述在 Boot.ini 檔案中設定 /3GB 參數。
  • 如果伺服器執行 Windows Server 2003 (任何版本),請依照下列描述設定 /USERVA 參數和 SystemPages 登錄機碼。如果伺服器執行 Windows 2000,請確定已安裝 Windows 2000 SP3 或更新版本。
  • 如果伺服器有 1 GB 或更多的實體記憶體,請依照下列描述設定 HeapDeCommitFreeBlockThreshold 登錄參數。
  • 必要時,依照下列描述調整儲存庫資料庫快取大小。

事件 9665

Exchange 會在儲存區處理程序開始時,執行最佳的記憶體組態檢查。如果記憶體設定不是最佳情況,則會在事件檢視器中出現事件 9665。此訊息會在下列情況時出現:

  • 該伺服器執行 Windows 2000,而且登錄中的 SystemPages 值超出 24000 到 31000 的範圍。
  • 伺服器有 1GB 或更多的記憶體,但沒有 /3GB 參數。
  • 伺服器執行 Windows Server 2003、有 1 GB 或更多的記憶體,並設定了 /3GB 參數,但 /USERVA 不存在或未設為 3030。

如果遇到這個事件,請檢查登錄中的 SystemPages 與 HeapDeCommitFreeBlockThreshold 設定,以及 Boot.ini 檔案中的 /3GB 參數與 /USERVA 設定。下列幾節包含了每個設定的建議值。

note附註:
如果您希望關閉事件 9665 的記錄,可以建立下表所示的登錄機碼。

關閉記憶體組態檢查的登錄機碼

路徑

HKLM\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem\

參數

Suppress Memory Configuration Notification

類型

REG_DWORD

設定

1

note附註:
記憶體組態檢查不會發生在執行 Microsoft® Small Business Server 的伺服器上。

設定 /3GB 參數

Windows 2000 Advanced Server 及 Windows Server 2003 預設會配置 2 GB 的虛擬位址空間給使用者模式處理程序,如 Store.exe。如果伺服器有 1 GB 或更多的實體記憶體,請在 Boot.ini 檔案中設定 /3GB 參數,增加虛擬位址空間。

您應該只在符合下列準則的伺服器上設定 /3GB 參數:

  • 伺服器裝載 Exchange 2003 信箱或公用資料夾。
  • 伺服器有 1 GB 以上的實體記憶體。

在不含公用資料夾或信箱儲存區的 Exchange 伺服器上,不建議設定這個參數。

如需 /3GB 參數的相關資訊,請參閱 Microsoft 知識庫文章 266096<XGEN:Exchange 2000 必須具有 1 GB 以上的實體 RAM,才能使用 /3GB 參數>(https://go.microsoft.com/fwlink/?linkid=3052&kbid=266096)。

important重要事項:
/3GB 參數是針對 Windows 2000 Advanced Server 和所有 Windows Server 2003 版本所設計的。請勿在 Windows 2000 Standard Edition 中設定 /3GB 參數。

設定 /USERVA 和 SystemPages

如果伺服器執行 Windows 2000,您應該將 SystemPages 登錄機碼設定成介於 24000 到 31000 之間的值。SystemPages 登錄機碼位於下列路徑:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\SystemPages

如果伺服器執行 Windows Server 2003,請將 SystemPages 的值設定成 0,並在 Boot.ini 檔案中設定 /USERVA=3030 參數。這些設定可讓您在伺服器上輸入更多的系統分頁表項目,這對向內擴充系統規模是非常重要的。

如需相關資訊,請參閱 Microsoft 知識庫文章 810371<XADM:在執行 Exchange Server 的 Windows Server 2003 電腦上使用 /Userva 參數>(https://go.microsoft.com/fwlink/?linkid=3052&kbid=810371

設定 HeapDeCommitFreeBlockThreshold 登錄機碼

HeapDeCommitFreeBlockThreshold 登錄機碼會控制堆積管理員在解除 (或釋出) 記憶體之前所需的可用空間量。預設值為零,這表示堆積管理員會在每個 4 KB 分頁可供使用時,解除該分頁的委託。經過一段時間,虛擬位址空間就會變成分散的片段。在有 1 GB 或更多實體記憶體的伺服器上,您可以將登錄機碼設定成較高的值,以降低或消除分散程度。請依照下表所示設定登錄機碼,然後重新啟動伺服器。如需 HeapDeCommitFreeBlockThreshold 登錄機碼的相關資訊,請參閱知識庫文章 315407<XADM:'HeapDeCommitFreeBlockThreshold' 登錄機碼>(https://go.microsoft.com/fwlink/?linkid=3052&kbid=315407) (英文)。

HeapDeCommitFreeBlockThreshold 登錄機碼的設定

路徑

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager

參數

HeapDeCommitFreeBlockThreshold

類型

REG_DWORD

預設值

建議設定*

262144

* 這個值是十進位的區塊數目。建議值為 262144。此值相當於十六進位值的 0x00040000。

調整儲存區資料庫快取大小

在資料庫確認資料庫交易之前,儲存區資料庫快取 (也稱為可延伸儲存引擎緩衝區) 會先快取資料庫交易。根據預設,如果在伺服器上設定 /3GB 參數,Exchange 2003 會配置 896 MB,如果未設定 /3GB 選項,則會配置 576 MB。下列狀況下,調整最大緩衝區大小會提高效能:

  • 如果伺服器正執行 Exchange 2003 和其他伺服器端應用程式,請減少緩衝區以限制 Exchange 的記憶體使用量。
  • 在超過 2 GB 記憶體的伺服器上,增加緩衝區大小 (最大值 1200 MB)。

增加最大緩衝區大小之前,請先使用效能記錄及警示,在正常負載下監視 Virtual Bytes 計數器 (在 Process 物件中) 的儲存區執行個體。Virtual Bytes 計數器會顯示 Store.exe 處理程序目前使用的虛擬位址空間大小 (以位元組為單位)。如果已設定 /3GB 參數,該值應小於 2.8 GB,如果未設定 /3GB 參數,該值應小於 1.8 GB。如果是更大值,請勿增加最大緩衝區大小。如果是更小值,最大緩衝區大小可以增加至 1,200 MB。例如,如果已設定 /3GB 參數,並且在過重負載下虛擬位元組數為 2.5 GB,最大緩衝區大小約可以增加 300 MB。

請注意,在發生位址空間分散問題的伺服器上,增加緩衝區大小可能會對伺服器效能造成負面影響。較大的緩衝區表示要耗用更多虛擬位址空間,因此增加緩衝區可能會使系統不穩定。

若要調整最大緩衝區大小,請使用 Active Directory Service Interface (ADSI) 編輯器修改 msExchESEParamCacheSizeMax 值。如需如何修改 msExchESEParamCacheSizeMax 值的相關資訊,請參閱知識庫文章 266768<XSTR:如何修改儲存區資料庫最大快取大小>(https://go.microsoft.com/fwlink/?linkid=3052&kbid=266768) (英文)。當設定值之後,請等候 Active Directory® 目錄服務將值複寫到整個樹系中。然後,重新啟動 Microsoft Exchange Information Store 服務。

important重要事項:
請小心,不要選擇 msExchESEParamCacheSizeMin 值。

下表將摘要最大緩衝區大小預設值和建議值。值以分頁數表示,為求最高效率應設為 8192 的整數倍數。

緩衝區大小預設值和建議值

/3GB 伺服器上的預設大小

229376 (896 MB)

非 /3GB 伺服器上的預設大小

147456 (576 MB)

建議的最大值

311296 (1.2 GB)

受到位址空間限制的異常大型伺服器

196608 (768 MB)