Compartir a través de


Cómo calcular la deshidratación

Para calcular la deshidratación, use las propiedades configuradas y determinados valores de tiempo de ejecución. En el ejemplo siguiente se muestra cómo calcular un escenario de deshidratación hipotético.

Para calcular la deshidratación

  1. Permita que alfa represente un factor entre 0 y 1 que mida la sobrecarga de la memoria. En la práctica, alfa tiene un componente para cada uno de los tres criterios de limitación de la memoria (propiedades de deshidratación); en este ejemplo, se indican como alpha(virtual), alpha(private) y alpha(physical). Defina lo siguiente:

    IF ActualPrivateBytes < OptimalUsage  
       alpha(private) = 1  
    ELSE IF ActualPrivateBytes > MaximalUsage  
       alpha(private) = 0  
    ELSE  
       alpha(private) = (MaximalUsage - ActualPrivateBytes) / (MaximalUsage - OptimalUsage)  
    

    Nota

    OptimalUsage y MaximalUsage tienen valores predeterminados para cada propiedad de deshidratación. Estos valores se pueden cambiar en el archivo BTSNTSvc.exe.config. Para obtener más información, vea Propiedades predeterminadas de deshidratación.

  2. Defina los otros componentes alfa de forma similar. Defina lo siguiente:

    alpha = Minimum { alpha(virtual), alpha(private), alpha(physical) }  
    where alpha(…) = 1 whenever IsActive=false for that given memory unit  
    
  3. A continuación, defina TestThreshold (TestThreshold, MinThreshold y MaxThreshold se definen en segundos):

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

    Nota

    Valor predeterminado MinThreshold = 1. Valor predeterminado MaxThreshold = 1800. Estos valores se pueden cambiar en el archivo BTSNTSvc.exe.config. Para obtener más información, vea Propiedades predeterminadas de deshidratación.

  4. A continuación, defina TimeBlocked y EstimatedTime:

    • TimeBlocked = tiempo real que se ha esperado a que se satisficiera esta suscripción

    • EstimatedTime = tiempo estimado que esta orquestación permanecerá inactiva (por ejemplo, tiempo de espera restante en la escucha)

    La decisión sobre si se debe deshidratar es el resultado la siguiente condición booleana (true = deshidratar):

  • Dehydrate = (EstimatedTime > TestThreshold OR TimeBlocked > (2* TestThreshold))

Nota

El tiempo estimado es el tiempo restante hasta que termina el retraso (si se retrasa 5 minutos y han pasado 2 minutos, TimeBlocked=120 segundos, EstimatedTime=180 segundos).

Consulte también

Propiedades predeterminadas de deshidratación
BTSNTSvc.exe.config (archivo)