凍結預設屬性
以下是凍結屬性名稱及其預設值。 這些屬性可在 BizTalk 設定儀表板中設定,或在 BizTalk 組態檔 (BTSNTSvc.exe.config 或 BTSNTSvc64.exe.config) 中設定為 XML。 BizTalk 組態檔中的值將先套用。 然後,會套用 BizTalk 設定儀表板設定。 所有包含協調流程的主控件執行個體啟動時,將讀取凍結屬性。
重要
並非所有協調流程設定都會在 BizTalk 設定儀表板中公開。 對於這些設定,將使用 BizTalk 組態檔 (BTSNTSvc.exe.config 或 BTSNTSvc64.exe.config)。 使用 BizTalk 組態檔時,許多屬性並未列出。 即使組態檔未明確指定這些屬性及其預設值,仍將套用這些屬性及其預設值。
若要變更預設值,您可以使用 BizTalk 設定儀表板,或明確地將它們新增至 BizTalk 組態檔。 如需詳細資訊,請參閱使用設定儀表板進行BizTalk Server效能微調和BTSNTSvc.exe.config 檔案。
Dehydration
MaxThreshold = 1800
MinThreshold = 1
ConstantThreshold = -1
VirtualMemoryThrottlingCriteria
OptimalUsage = 900
MaximalUsage = 1300
IsActive = true
PrivateMemoryThrottlingCriteria
OptimalUsage = 50
MaximalUsage = 350
IsActive = true
PhysicalMemoryThrottlingCriteria
OptimalUsage = 90
MaximalUsage = 95
IsActive = false
下文將詳細地描述每一個屬性。
Dehydration
MaxThreshold 和 MinThreshold 是協調流程在訂用帳戶上封鎖的上限和下限,以秒為單位,也就是接收、接聽或延遲) 解除凍結之前, 協調流程可以封鎖的訂用帳戶 (。 執行時間也會計算一個值,稱為 TestThreshold,並以秒為單位測量的值介於 MinThreshold 和 MaxThreshold之間。
如果您在 ConstantThreshold的預設值為 -1 之外設定值,則不會有運行時間值 TestThreshold。 當協調流程在訂用帳戶上遭到封鎖,且該協調流程的所有實例在該訂用帳戶上封鎖的時間長度大於 TestThreshold的值時,協調流程將會解除凍結。 否則,如果歷程記錄小於 TestThreshold 值,協調流程將不會解除凍結。 此外,即使歷程記錄指出不會進行凍結,如果目前的封鎖時間達到 2*TestThreshold,則會進行解除凍結。 歷程記錄是根據最後 10 次等候時間的平均 (以秒為單位),或記錄中許多等候時間 (不到 10 次的等候時間) 的平均而定義。
當 TestThreshold的值傾向于MinThreshold增加時,稱為「記憶體型解除凍結節流」。記憶體型解除凍結節流可讓更多協調流程實例上線,因為當其中任何一個實例遭到封鎖等候工作 (,也就是等候訊息或延遲) 時,就可以解除凍結並取出記憶體。 TestThreshold 是單調遞減的記憶體使用量函式,與記憶體使用量相反。
以下是個別 Dehydration 屬性的說明:
MaxThreshold:在解除凍結之前,協調流程可以在訂用帳戶上封鎖的時間上限,以秒為單位。
MinThreshold:在解除凍結之前,協調流程可以在訂用帳戶上封鎖的時間下限,以秒為單位。
ConstantThreshold:動態閾值,通常會在指定的最小值和最大值之間變動。 不過,您可以設定這個屬性,將閾值固定。 值 -1 會告知引擎不要使用常數閾值。 請勿將這個屬性設為 -1 以外的值,因為這會停用以凍結為基礎的節流。
VirtualMemoryThrottlingCriteria
目前在 32 位元電腦上,由於 Unmanaged 堆積分割,虛擬記憶體可能成為瓶頸,所以您也應該依據這項資源進行節流。 如果已設定 /3GB,或在 64 位元平台上執行主控件,您應該重新設定這個屬性。 最佳和最大使用量都是以 MB 為單位。
以下是個別 VirtualMemoryThrottlingCriteria 屬性的說明:
OptimalUsage:解除凍結節流開始生效的虛擬記憶體使用量。 此時,TestThreshold 具有 MaxThreshold值,而且任何大於OptimalUsage的記憶體使用量都會讓TestThreshold 小於 MaxThreshold。
MaximalUsage:凍結節流的最大虛擬記憶體使用量。 此時,TestThreshold 的值 MinThreshold和小於MaximalUsage的任何記憶體使用量都會讓TestThreshold 大於 MinThreshold。
IsActive:布林值,指出虛擬記憶體節流是否為使用中。
PrivateMemoryThrottlingCriteria
這個屬性是節流的實用準則,但根據電腦是否正在執行其他 Windows 服務,適用值會不同。 如果電腦有許多記憶體,而且不與其他 Windows 服務共用,您就可以大幅增加這些值。
以下是個別 PrivateMemoryThrottlingCriteria 屬性的說明:
OptimalUsage:以 MB 為單位的私人記憶體使用量,解除凍結節流開始生效。 此時TestThreshold 具有 MaxThreshold值,而且任何大於OptimalUsage的記憶體使用量都會讓TestThreshold 小於 MaxThreshold。
MaximalUsage:以 MB 為單位的私人記憶體使用量,其中解除凍結節流上限。 此時TestThreshold 具有 MinThreshold值,且任何小於MaximalUsage的記憶體使用量都會讓TestThreshold大於MinThreshold。
IsActive:布林值,指出私人記憶體節流是否為使用中。
PhysicalMemoryThrottlingCriteria
除此之外,也有實體記憶體節流,其數字是以使用的記憶體百分比為單位,而不以 MB 為單位。 預設不會啟用這個屬性,但在必要時您可以啟用它。
以下是個別 PhysicalMemoryThrottlingCriteria 屬性的說明:
OptimalUsage:用於主機實例的實體記憶體最佳百分比。
MaximalUsage:用於主機實例的實體記憶體百分比上限。
IsActive:布林值,指出實體記憶體節流是否為使用中。
凍結屬性行為
BizTalk Server 會使用這些凍結屬性,決定何時凍結和解除凍結協調流程。 在正常負載下,預設的凍結值就足夠,但在負載過重時,若要變更效能特性,您應該自行微調。
BizTalk Server 的凍結行為主要取決於可用和使用中的記憶體數量。 根據不同的記憶體數量,以及 32 位元和 64 位元主控件之間的記憶體使用差異,凍結行為會不同。
凍結屬性會區分協調流程主控件的「私用位元組」和「虛擬位元組」:
虛擬位元組。 這是進程所使用的虛擬位址空間目前大小,以位元組為單位。 使用虛擬位址空間不一定代表對應使用到磁碟或主記憶體分頁。 虛擬空間是有限的,而且程序可以限制其載入程式庫的能力。
私人位元組。 這是目前配置給程序、不能與其他程序共用的記憶體大小 (以位元組為單位)。