若要計算解除凍結,您可以使用已設定的屬性和特定運行時間值。 下列範例示範如何計算假設的脫水案例。
計算脫水量
Let Alpha 代表測量記憶體壓力的 0 到 1 之間的因數。 實際上,alpha 在三個記憶體節流準則中各有一個元件(即脫水特性);在此範例中,我們將它們分別表示為 alpha(virtual)、alpha(private) 和 alpha(physical)。 請定義以下內容:
IF ActualPrivateBytes < OptimalUsage alpha(private) = 1 ELSE IF ActualPrivateBytes > MaximalUsage alpha(private) = 0 ELSE alpha(private) = (MaximalUsage - ActualPrivateBytes) / (MaximalUsage - OptimalUsage)備註
OptimalUsage 和 MaximalUsage 對每個脫水屬性都有預設值。 這些值可以在 BTSNTSvc.exe.config 檔案中變更。 如需詳細資訊,請參閱 解除凍結默認屬性。
以類似方式定義其他 Alpha 元件。 定義下列內容:
alpha = Minimum { alpha(virtual), alpha(private), alpha(physical) } where alpha(…) = 1 whenever IsActive=false for that given memory unit然後定義 TestThreshold (TestThreshold、MinThreshold 和 MaxThreshold 以秒為單位定義):
TestThreshold = MinThreshold + (alpha * (MaxThreshold – MinThreshold))備註
MinThreshold 預設值 = 1。 MaxThreshold 預設值 = 1800。 這些值可以在 BTSNTSvc.exe.config 檔案中變更。 如需詳細資訊,請參閱 解除凍結默認屬性。
然後定義 TimeBlocked 和 EstimatedTime:
TimeBlocked = 我們等待此訂閱被滿足的實際時間
EstimatedTime = 此協調流程將保持閑置的估計時間(例如接聽時剩餘逾時)
決定是否脫水是下列布爾值條件的結果(true = 脫水):
- 脫水 = (EstimatedTime > TestThreshold 或 TimeBlocked > (2* TestThreshold))
備註
估計時間是延遲結束的剩餘時間(如果延遲 5 分鐘和 2 分鐘已過,TimeBlocked=120 秒,EstimatedTime=180 秒)。