脱水を計算する方法
退避を計算するには、構成されたプロパティおよび特定の実行時の値を使用します。 仮定の退避シナリオを計算する方法を次の例に示します。
退避を計算するには
メモリの負荷を測定する 0 と 1 の間の要素を alpha によって表します。 実際には、α には、3 つのメモリ調整条件 (脱水プロパティ) のそれぞれに対するコンポーネントがあります。この例では、それらを 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)
Note
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))
Note
MinThreshold の既定値は 1 です。 MaxThreshold の既定値は 1800 です。 これらの値は BTSNTSvc.exe.config ファイルで変更できます。 詳細については、「 退避の既定のプロパティ」を参照してください。
次に TimeBlocked と EstimatedTime を定義します。
TimeBlocked = サブスクリプションが満たされるまでに待機する実際の時間
EstimatedTime = このオーケストレーションがアイドルである推定時間 (たとえば、待ち受け中の残りのタイムアウト)
退避するかどうかの決定は、次のブール値条件の結果によって決まります (true = 退避)。
- Dehydrate = (EstimatedTime > TestThreshold OR TimeBlocked > (2* TestThreshold))
Note
推定時間は遅延が終了するまでの残り時間です (5 分間と 2 分間の遅延が経過した場合、TimeBlocked=120 秒、EstimatedTime=180 秒です)。