Condividi tramite


Come calcolare la disidratazione

Per calcolare la disidratazione, si utilizzano le proprietà configurate e alcuni valori di runtime. Nell'esempio seguente viene dimostrato come calcolare un ipotetico scenario di disidratazione.

Per calcolare la disidratazione

  1. Si supponga che alpha rappresenti un fattore compreso tra 0 e 1 che misuri il sovraccarico di memoria. In pratica, alpha dispone di un componente per ognuno dei tre criteri di limitazione della memoria (proprietà di disidratazione). Nell'esempio vengono indicati come alpha(virtual), alpha(private) e alpha(physical). Definire quanto segue:

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

    Nota

    OptimalUsage e MaximalUsage dispongono di valori predefiniti per ciascuna proprietà di disidratazione. È possibile modificare questi valori nel file BTSNTSvc.exe.config. Per altre informazioni, vedere Proprietà predefinite di disidratazione.

  2. Definire gli altri componenti di alpha in modo analogo. Definire quanto segue:

    alpha = Minimum { alpha(virtual), alpha(private), alpha(physical) }  
    where alpha(…) = 1 whenever IsActive=false for that given memory unit  
    
  3. Definire quindi TestThreshold (TestThreshold, MinThreshold e MaxThreshold sono definiti in secondi):

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

    Nota

    Valore predefinito MinThreshold = 1. Valore predefinito MaxThreshold = 1800. È possibile modificare questi valori nel file BTSNTSvc.exe.config. Per altre informazioni, vedere Proprietà predefinite di disidratazione.

  4. Definire quindi TimeBlocked e EstimatedTime:

    • TimeBlocked = tempo effettivo di attesa per il completamento della sottoscrizione corrente

    • EstimatedTime = tempo stimato di inattività dell'orchestrazione, ovvero il timeout rimanente per l'ascolto

    La decisione relativa alla disidratazione è il risultato della condizione booleana seguente (true = dehydrate):

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

Nota

Il tempo stimato è il tempo rimanente per il termine del ritardo (ad esempio, se il ritardo è 5 minuti e sono trascorsi 2 minuti, TimeBlocked=120 secondi, EstimatedTime=180 secondi).

Vedere anche

Proprietà predefinite di disidratazione
File BTSNTSvc.exe.config