了解背壓

 

適用版本: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

上次修改主題的時間: 2008-03-13

背壓 (Back Pressure) 是 Microsoft Exchange Transport 服務的系統資源監視功能,存在於執行 Microsoft Exchange Server 2007 且已安裝 Hub Transport server role 或 Edge Transport server role 的電腦上。其會監視重要系統資源 (例如可用硬碟空間及可用記憶體)。如果系統資源的使用量超過指定的限制,Exchange 伺服器就會停止接受新的連線及郵件。這樣可防止系統資源不堪負荷,並讓 Exchange 伺服器傳遞現有的郵件。當系統資源的使用量恢復正常水準時,Exchange 伺服器就會接受新的連線及郵件。

使用背壓功能時,會監視下列系統資源:

  • 硬碟上用來儲存訊息佇列資料庫的可用空間。
  • 硬碟上用來儲存訊息佇列資料庫交易記錄的可用空間。
  • 記憶體中未認可的訊息佇列資料庫交易數。
  • EdgeTransport.exe 處理程序使用的記憶體。
  • 所有處理程序使用的記憶體。

Hub Transport Server 或 Edge Transport Server 上每個受監視的系統資源都會套用下列三種資源使用量層級之一:

  • 一般   資源未使用過度。伺服器會接受新的連線及郵件。
  •    資源稍微使用過度。會對伺服器套用有限的背壓。可以傳送來自授權網域之寄件者的郵件。但伺服器會拒絕其他來源的新連線及郵件。
  •    資源嚴重使用過度。會套用完整背壓。所有訊息流程都會停止,而且伺服器會拒絕所有新的連線及郵件。

設定背壓的選項

Caution請注意:
強烈建議不要在生產伺服器上的 EdgeTransport.exe.config 檔案中,對背壓設定做任何修改。修改背壓設定可能會導致效能不佳或資料遺失。建議您遭遇背壓事件時,先不要修改背壓設定,而是調查起因並做更正。

背壓的組態選項全是在 C:\Program Files\Microsoft\Exchange Server\Bin 目錄內的 EdgeTransport.exe.config 應用程式組態檔中設定。EdgeTransport.exe.config 檔案是與 EdgeTransport.exe 檔案關聯的 XML 應用程式組態檔。EdgeTransport.exe 和 MSExchangeTransport.exe 是 Microsoft Exchange Transport 服務所使用的可執行檔。每個 Hub Transport Server 或 Edge Transport Server 上都會執行這個服務。重新啟動 Microsoft Exchange Transport 服務之後,儲存至 EdgeTransport.exe.config 檔案的變更就會生效。如果符合下列任一條件,則會強制使用預設值:

  • 組態選項遺失。
  • 組態選項存在,並含有預設值。

下列範例顯示 EdgeTransport.exe.config 檔案的一般結構:

<configuration>

<runtime>

<gcServer enabled="true" />

</runtime>

<appSettings>

<add key=" 組態選項 " value=" " />

...

</appSettings>

</configuration>

您可以在 <appSettings> 區段加入新的組態選項或修改現有的組態選項。許多可用的組態選項與背壓完全無關。所有與背壓無關的組態選項皆不在本主題的討論範圍內。

note附註:
<add key=../> 區段中的參數名稱會區分大小寫。

表 1 顯示 EdgeTransport.exe.config 檔案中可用的一般背壓組態選項。

表 1   一般背壓選項

參數名稱 描述

EnableResourceMonitoring

此參數會啟用或停用背壓。預設值為 TRUE。

ResourceMonitoringInterval

此參數會控制檢查系統資源使用量層級的頻率。若要指定值,請輸入時間範圍格式:hh:mm:ss,其中 h = 小時數、m = 分鐘數,而 s = 秒數。預設值為 00:00:02。此參數的有效範圍是 00:00:0100:00:30

監視訊息佇列資料庫的可用硬碟空間

訊息佇列資料庫預設是儲存在 C:\Program Files\Microsoft\ExchangeServer\TransportRoles\data\Queue 中。此位置是由 EdgeTransport.exe.config 檔案中的 QueueDatabasePath 參數所控制。

如需訊息佇列資料庫的相關資訊,請參閱管理佇列資料庫

預設會使用下列公式計算高硬碟空間使用量層級:

100*(硬碟大小 - 固定常數) / 硬碟大小

在 Microsoft Exchange Server 2007 的量產發行 (RTM) 版本中,固定常數的值為 4 GB。

在 Microsoft Exchange Server 2007 Service Pack 1 (SP1) 中,固定常數的值為 500 MB。

此公式所得結果是以硬碟空間總用量的百分比表示。不論硬碟大小為何,此公式都保證一律會將可用硬碟空間用於訊息佇列資料庫。此公式所得結果一律會四捨五入為最接近的整數。

中硬碟使用量層級預設比高層級低 2%。一般硬碟使用量層級預設比高層級低 4%。可用硬碟空間減少,表示硬碟使用量增加。

您可以指定 EdgeTransport.exe.config 檔案中的值,來覆寫高、中及一般硬碟使用量層級的預設計算。表 2 顯示用來監視訊息佇列資料庫之可用硬碟空間的選項,而這些選項都可在 EdgeTransport.exe.config 檔案中取得。

表 2   監視訊息佇列資料庫之可用硬碟空間的選項

參數名稱 預設值 有效輸入範圍

PercentageDatabaseDiskSpaceUsedHighThreshold

0. 該值指出要使用的預設公式。

3 到 100

PercentageDatabaseDiskSpaceUsedMediumThreshold

0. 此值表示實際值比 PercentageDatabaseDiskSpaceUsedHighThreshold 的值低 2%。

3 到 100。此值必須低於 PercentageDatabaseDiskSpaceUsedHighThreshold 的值。

PercentageDatabaseDiskSpaceUsedNormalThreshold

0. 此值表示實際值比 PercentageDatabaseDiskSpaceUsedMediumThreshold 的值低 2%。

3 到 100。此值必須低於 PercentageDatabaseDiskSpaceUsedMediumThreshold 的值。

important重要事項:
當硬碟空間使用量的背壓限制是設定為其預設層級時,Edge Transport Server 或 Hub Transport Server 上用來儲存訊息佇列資料庫的硬碟一律要有固定數量的可用硬碟空間。在 Exchange 2007 RTM 中,所需的可用硬碟空間量為 4 GB。在 Exchange 2007 SP1 中,所需的可用硬碟空間量為 500 MB。如果可用空間少於所需的可用硬碟空間量,則會將硬碟的使用量層級視為高。此時,所有郵件流程都會停止。在該情況下,您必須遵循下列其中一個步驟:
- 將訊息佇列資料庫重新放置至不同的硬碟,該硬碟要有更多的可用空間。如需相關資訊,請參閱如何變更佇列資料庫的位置
- 增加 PercentageDatabaseDiskSpaceUsedHighThresholdPercentageDatabaseDiskSpaceUsedMediumThresholdPercentageDatabaseDiskSpaceUsedNormalThreshold 參數的值。

監視訊息佇列資料庫交易記錄的可用硬碟空間

訊息佇列資料庫交易記錄預設是儲存在 C:\Program Files\Microsoft\ExchangeServer\TransportRoles\data\Queue 中。此位置是由 EdgeTransport.exe.config 檔案中的 QueueDatabaseLoggingPath 參數所控制。

如需訊息佇列資料庫的相關資訊,請參閱管理佇列資料庫

EdgeTransport.exe.config 檔案包含預設值為 20 MB 的 QueueDatabaseCheckPointDepthMax 參數。此參數會控制硬碟上之所有未認可交易記錄的總允許大小。此參數會用在計算硬碟使用量的公式中。

note附註:
QueueDatabaseCheckPointDepthMax 參數值會套用至 Hub Transport Server 或 Edge Transport Server 上所有與傳輸相關的可延伸儲存引擎 (ESE) 資料庫。這包括訊息佇列資料庫及 IP 篩選資料庫。如果 QueueDatabaseCheckPointDepthMax 參數的值設得太低,則因為會強制資料庫認可未認可的交易,而不是將未認可的交易寫入交易記錄,所以會造成嚴重的效能問題。建議您不要修改 QueueDatabaseCheckPointDepthMax 參數的預設值。

預設會使用下列公式計算高硬碟使用量層級:

100*(硬碟大小 - 25*DatabaseCheckPointDepthMax) / 硬碟大小

如果使用 DatabaseCheckPointDepthMax 參數的預設值 20 MB,則不論硬碟大小為何,一律會保留 500 MB 供訊息佇列資料庫交易記錄使用。此公式所得結果一律會四捨五入為最接近的整數。

中硬碟使用量層級預設比高層級低 2%。一般硬碟使用量層級比高層級低 4%。可用硬碟空間減少,表示硬碟使用量增加。

您可以指定 EdgeTransport.exe.config 檔案中的值,來覆寫高、中及一般硬碟使用量層級的預設計算。表 3 顯示用來監視訊息佇列資料庫交易記錄之可用硬碟空間的選項,而這些選項都可在 EdgeTransport.exe.config 檔案中取得。

表 3   監視訊息佇列資料庫交易記錄之可用硬碟空間的選項

參數名稱 預設值 有效輸入範圍

PercentageDatabaseLoggingDiskSpaceUsedHighThreshold

0. 該值指出要使用的預設公式。

3 到 100

PercentageDatabaseLoggingDiskSpaceUsedMediumThreshold

0. 此值表示實際值比 PercentageDatabaseLoggingDiskSpaceUsedHighThreshold 的值低 2%。

3 到 100。此值必須低於 PercentageDatabaseLoggingDiskSpaceUsedHighThreshold 的值。

PercentageDatabaseLoggingDiskSpaceUsedNormalThreshold

0. 此值表示實際值比 PercentageDatabaseLoggingDiskSpaceUsedMediumThreshold 的值低 2%。

3 到 100。此值必須低於 PercentageDatabaseLoggingDiskSpaceUsedMediumThreshold 的值。

監視記憶體中未認可的訊息佇列資料庫交易數。

對訊息佇列資料庫進行的變更清單會保留在記憶體中,直到可以將這些變更認可到交易記錄為止。然後,這份清單就會認可至訊息佇列資料庫本身。這些保留在記憶體中的未完成訊息佇列資料庫交易稱為「版本桶 (bucket)」。版本桶 (bucket) 的數目可能會因為病毒問題、訊息佇列資料庫完整性問題或硬碟效能而增加到異常高的層級。

您可以指定 EdgeTransport.exe.config 檔案中的值,來覆寫高、中及一般的版本桶 (bucket) 數預設值。表 4 顯示 EdgeTransport.exe.config 檔案中可以用來監視版本桶 (bucket) 的選項。

表 4   監視版本桶 (bucket) 數目的選項

參數名稱 Exchange 2007 RTM 中的預設值 Exchange 2007 SP1 中的預設值 有效輸入範圍

VersionBucketsHighThreshold

100

200

1 到 8000

VersionBucketsMediumThreshold

60

120

1 到 8000。此值必須低於 VersionBucketsHighThreshold 的值。

VersionBucketsNormalThreshold

40

80

1 到 8000。此值必須低於 VersionBucketsMediumThreshold 的值。

監視 EdgeTransport.exe 處理程序使用的記憶體

預設會使用下列公式計算 EdgeTransport.exe 處理程序使用的高記憶體使用量層級:

實體記憶體總計的 75% 或 1 TB (以較少者為準)

此計算不包含硬碟分頁檔中的可用虛擬記憶體,或是其他處理程序所使用的記憶體。此公式所得結果是以 EdgeTransport.exe 處理程序所使用之記憶體總用量的百分比表示。此公式所得結果一律會四捨五入為最接近的整數。

EdgeTransport.exe 檔案使用的中記憶體使用量層級,預設是以實體記憶體總計的 73%,或高層級值減去 2% 計算 (以較少者為準)。EdgeTransport.exe 檔案使用的一般層級記憶體使用量,預設是以實體記憶體總計的 71%,或高層級值減去 4% 計算 (以較少者為準)。可用記憶體減少,表示記憶體使用量增加。

您可以指定 EdgeTransport.exe.config 檔案中的值,來覆寫 EdgeTransport.exe 處理程序使用之高、中及一般記憶體使用量的預設計算。表 5 顯示 EdgeTransport.exe.config 檔案中可以用來監視 EdgeTransport.exe 處理程序所使用之記憶體的選項。

表 5   監視 EdgeTransport.exe 處理程序所使用之記憶體的選項

參數名稱 預設值 有效輸入範圍

PercentagePrivateBytesUsedHighThreshold

0. 此值表示會使用預設計算。

3 到 100

PercentagePrivateBytesUsedMediumThreshold

0. 此值表示實際值比 PercentagePrivateBytesUsedHighThreshold 的值低 2%。

3 到 100。此值必須低於 PercentagePrivateBytesUsedHighThreshold 的值。

PercentagePrivateBytesUsedNormalThreshold

0. 此值表示實際值比 PercentagePrivateBytesUsedMediumThreshold 的值低 2%。

3 到 100。此值必須低於 PercentagePrivateBytesUsedMediumThreshold 的值。

監視所有處理程序使用的記憶體

所有處理程序使用的高記憶體使用量層級,預設是實體記憶體總計的 94%。此值不包含硬碟分頁檔中的可用虛擬記憶體。可用記憶體減少,表示記憶體使用量增加。

達到指定的記憶體使用量層級時,會執行「郵件凍結」作業。郵件凍結會將記憶體中快取之佇列郵件的不必要元素移除。完整的郵件會快取在記憶體中,以提高效能。將佇列郵件的 MIME 內容從記憶體中移除後,因為會直接從訊息佇列資料庫讀取郵件,所以可減少因耗用太多記憶體造成延遲變長的現象。預設會啟用郵件凍結。您可以在 EdgeTransport.exe.config 應用程式組態檔中啟用或停用郵件凍結。

您可以在 EdgeTransport.exe.config 檔案中指定高值,來覆寫所有處理程序使用之高記憶體使用量的預設值。表 6 顯示 EdgeTransport.exe.config 檔案中可以用來監視所有處理程序所使用之記憶體的選項。

表 6 EdgeTransport.exe.config 檔案中可以用來監視所有處理程序所使用之記憶體的選項

參數名稱 預設值 有效輸入範圍

DehydrateMessagesUnderMemoryPressure

TRUE

TRUE 或 FALSE

PercentagePhysicalMemoryUsedLimit

94

3 到 100

套用背壓的方式

背壓不會在第一次發現問題時就停止傳遞所有郵件。當受監視資源有使用過度的跡象時,此功能會分幾個階段執行監視和相對應的動作。如果這些動作都無法讓資源使用量順利還原到一般層級,則會採取額外的更正動作。除非資源使用量回復為一般層級,否則會持續提報更正動作的重要性。檢查資源使用量層級的頻率是由 ResourceMonitoringInterval 參數所控制。預設值為 2 秒。

下列各節說明套用背壓的階段。

階段 1

EdgeTransport.exe 處理程序的記憶體使用量與 PercentagePrivateBytesUsedNormalThreshold 參數所指定的值進行比較。預設值為實體記憶體總計的 71%。如果 EdgeTransport.exe 處理程序的記憶體使用量高於指定的一般層級,則會強制進行「垃圾收集」。垃圾收集是一種處理程序,會檢查記憶體中的未使用物件,並收回這些未使用物件所用的記憶體。

階段 2

記憶體中未認可的訊息佇列資料庫交易數會與 VersionBucketsNormalThreshold 參數所指定的值進行比較。在 Exchange 2007 RTM 中,預設值是 40。在 Exchange 2007 SP1 中,預設值是 80。如果記憶體中未認可的訊息佇列資料庫交易數高於指定的一般層級,則會嘗試強制將記憶體中未完成的訊息佇列資料庫交易寫入交易記錄。

階段 3

根據指定的一般使用量層級值檢查所有受監視資源的使用量層級。如果有任何資源的層級高於指定的一般層級值,則會對使用量層級最高的資源採取動作。下列各節說明 Hub Transport Server 及 Edge Transport Server 上針對不同資源使用量層級所採取的動作。

Hub Transport Server

Hub Transport Server 上的中資源使用量層級:

  • 接受由其他 Hub Transport Server 連入的簡易郵件傳送通訊協定 (SMTP) 連線。
  • 拒絕由其他郵件伺服器連入的 SMTP 連線。
  • 儲存區驅動程式會繼續接受來自 Mailbox Server 的郵件。
  • 收取目錄及重新顯示目錄停止處理訊息。

Hub Transport Server 上的高資源使用量層級:

  • 拒絕由其他 Hub Transport Server 連入的 SMTP 連線。
  • 拒絕由其他郵件伺服器連入的 SMTP 連線。
  • 儲存區驅動程式會停止接受來自 Mailbox Server 的郵件。
  • 收取目錄及重新顯示目錄停止處理訊息。

表 7 說明背壓對 Hub Transport Server 的影響。

表 7   背壓對 Hub Transport Server 的影響

資源使用量層級 來自其他 Hub Transport Server 的連線 來自其他郵件伺服器的連線 來自 Mailbox Server 的儲存區驅動程式連線 收取目錄及重新顯示目錄提交 內部郵件流程

允許

拒絕

允許

拒絕

可運作

拒絕

拒絕

拒絕

拒絕

未運作

Edge Transport Server

Edge Transport Server 上的中資源使用量層級:

  • 拒絕由其他郵件伺服器輸入的 SMTP 連線。
  • 收取目錄及重新顯示目錄停止處理訊息。

Edge Transport Server 上的高資源使用量層級:

  • 拒絕由其他郵件伺服器輸入的 SMTP 連線。
  • 收取目錄及重新顯示目錄停止處理訊息。

表 8 說明背壓對 Edge Transport Server 的影響。

表 8   背壓對 Edge Transport Server 的影響

資源使用量層級 來自 Hub Transport Server 的連線 來自其他郵件伺服器的連線 來自 Mailbox Server 的儲存區驅動程式連線 收取目錄及重新顯示目錄提交 內部郵件流程

拒絕

拒絕

不適用

拒絕

不適用

拒絕

拒絕

不適用

拒絕

不適用

階段 4

EdgeTransport.exe 處理程序的記憶體使用量與 PercentagePrivateBytesUsedNormalThreshold 參數所指定的值進行比較。預設值為實體記憶體總計的 71%。如果 EdgeTransport.exe 處理程序的記憶體使用量高於指定的一般層級,則會採取下列動作:

  • 如果重新啟動 Microsoft Exchange Transport 服務,則服務啟動時,不會自動處理提交佇列中的郵件。

記憶體中未認可的訊息佇列資料庫交易數會與 VersionBucketsNormalThreshold 參數所指定的值進行比較。在 Exchange 2007 RTM 中,預設值是 40。在 Exchange 2007 SP1 中,預設值是 80。如果記憶體中未認可的訊息佇列資料庫交易數大於指定的一般層級,則會採取下列動作:

  • 停用「傳輸暫放」。傳輸暫放是 Hub Transport server role 的一項功能,應該在使用叢集連續複寫 (CCR) 或本機連續複寫 (LCR) 時啟用。傳輸暫放會在 CCR 環境的未排定中斷之後,以及作為 LCR 環境的啟動處理程序一部分時,提交最近傳遞的郵件。傳輸暫放只適用於 LCR 及 CCR 環境。如需相關資訊,請參閱如何設定傳輸暫放
  • 停止使用遠端傳遞佇列將郵件傳遞至任何遠端目的地。這些目的地包括遠端網域或遠端 Active Directory 目錄服務站台。使用郵件傳遞佇列將郵件傳遞至信箱伺服器的活動則不受影響。

階段 5

如果 EdgeTransport.exe 處理程序的記憶體使用量是中或高層級,或如果所有其他處理程序的記憶體使用量超過最大指定值,則會採取下列動作:

  • 排清記憶體中的增強 DNS 快取。
  • 執行郵件凍結。

Exchange 2007 RTM 中的背壓記錄資訊

下列清單說明 Exchange 2007 RTM 中,特定背壓事件所產生的事件日誌項目:

  • 資源使用量層級變更的事件日誌項目
    事件類型:警告
    事件來源:MSExchangeTransport
    事件類別:資源管理員
    事件識別碼: 15001
    描述:資源壓力從之前的使用量層級變為目前的使用量層級
  • 資源使用量層級恆為高的事件日誌項目
    事件類型:警告
    事件來源:MSExchangeTransport
    事件類別:資源管理員
    事件識別碼: 15002
    描述:資源壓力恆為高。
  • EdgeTransport.exe 處理程序之記憶體使用量層級變更的事件日誌項目
    事件類型:警告
    事件來源:MSExchangeTransport
    事件類別:資源管理員
    事件識別碼: 15003
    描述:私用位元組的使用量從之前的使用量層級變更為目前的使用量層級

Exchange 2007 SP1 中的背壓記錄資訊

下列清單說明 Exchange 2007 SP1 中,特定背壓事件所產生的事件日誌項目:

  • 資源使用量層級增加的事件日誌項目
    事件類型:錯誤
    事件來源:MSExchangeTransport
    事件類別:資源管理員
    事件識別碼: 15004
    描述:資源壓力從之前的使用量層級增加為目前的使用量層級
  • 資源使用量層級減少的事件日誌項目
    事件類型:參考
    事件來源:MSExchangeTransport
    事件類別:資源管理員
    事件識別碼: 15005
    描述:資源壓力從之前的使用量層級減少為目前的使用量層級
  • 可用磁碟空間嚴重不足的事件日誌項目
    事件類型:錯誤
    事件來源:MSExchangeTransport
    事件類別:資源管理員
    事件識別碼: 15006
    描述:Microsoft Exchange Transport 服務已拒絕郵件,因為可用磁碟空間低於設定的閾值。可能需要進行系統管理動作來釋放磁碟空間,讓服務繼續運作。
  • 可用記憶體嚴重不足的事件日誌項目
    事件類型:錯誤
    事件來源:MSExchangeTransport
    事件類別:資源管理員
    事件識別碼: 15007
    描述:Microsoft Exchange Transport 服務已拒絕郵件提交,因為服務持續耗用的記憶體超過設定的閾值。如此可能需要重新啟動此服務,以繼續正常運作。

若要確保您目前閱讀的是最新資訊,並尋找其他的 Exchange Server 2007 說明文件,請造訪 Exchange Server 技術資源中心.