共用方式為


如何計算脫水

若要計算解除凍結,您可以使用已設定的屬性和特定運行時間值。 下列範例示範如何計算假設的脫水案例。

計算脫水量

  1. 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 檔案中變更。 如需詳細資訊,請參閱 解除凍結默認屬性

  2. 以類似方式定義其他 Alpha 元件。 定義下列內容:

    alpha = Minimum { alpha(virtual), alpha(private), alpha(physical) }  
    where alpha(…) = 1 whenever IsActive=false for that given memory unit  
    
  3. 然後定義 TestThreshold (TestThreshold、MinThreshold 和 MaxThreshold 以秒為單位定義):

    TestThreshold = MinThreshold + (alpha * (MaxThreshold – MinThreshold))  
    

    備註

    MinThreshold 預設值 = 1。 MaxThreshold 預設值 = 1800。 這些值可以在 BTSNTSvc.exe.config 檔案中變更。 如需詳細資訊,請參閱 解除凍結默認屬性

  4. 然後定義 TimeBlocked 和 EstimatedTime:

    • TimeBlocked = 我們等待此訂閱被滿足的實際時間

    • EstimatedTime = 此協調流程將保持閑置的估計時間(例如接聽時剩餘逾時)

    決定是否脫水是下列布爾值條件的結果(true = 脫水):

  • 脫水 = (EstimatedTime > TestThreshold 或 TimeBlocked > (2* TestThreshold))

備註

估計時間是延遲結束的剩餘時間(如果延遲 5 分鐘和 2 分鐘已過,TimeBlocked=120 秒,EstimatedTime=180 秒)。

另請參閱

脫水預設屬性
BTSNTSvc.exe.config 檔案