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
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.
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
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.
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