既定の退避プロパティ
退避プロパティの名前とその既定値は次のとおりです。 これらのプロパティは、BizTalk 設定ダッシュボードで構成することも、BizTalk 構成ファイル (BTSNTSvc.exe.config または BTSNTSvc64.exe.config) で XML として構成することもできます。 BizTalk 構成ファイルの値が先に適用されます。 次に、BizTalk 設定ダッシュボードの設定が適用されます。 退避プロパティは、オーケストレーションを含んでいるすべてのホスト インスタンスの開始時に読み取られます。
重要
すべてのオーケストレーション設定が BizTalk 設定ダッシュボードで公開されるわけではありません。 これらの設定については、BizTalk 構成ファイル (BTSNTSvc.exe.config または BTSNTSvc64.exe.config) が使用されます。 BizTalk 構成ファイルを使用する場合、多くのプロパティは一覧に表示されません。 これらのプロパティおよび既定値は、構成ファイルで明示的に指定されていない場合でも常に適用されています。
既定値を変更するには、BizTalk 設定ダッシュボードを使用するか、BizTalk 構成ファイルに明示的に追加します。 詳細については、「BizTalk Server パフォーマンス チューニングとBTSNTSvc.exe.config ファイルの設定ダッシュボードの使用」を参照してください。
脱水
MaxThreshold = 1800
MinThreshold = 1
ConstantThreshold = -1
VirtualMemoryThrottlingCriteria
OptimalUsage = 900
MaximalUsage = 1300
IsActive = true
PrivateMemoryThrottlingCriteria
OptimalUsage = 50
MaximalUsage = 350
IsActive = true
PhysicalMemoryThrottlingCriteria
OptimalUsage = 90
MaximalUsage = 95
IsActive = false
次に、これらの各プロパティについて詳しく説明します。
脱水
MaxThreshold と MinThreshold は、退避される前にサブスクリプションでオーケストレーションをブロックできる時間 (つまり、受信、リッスン、または遅延によってブロックされる) の上限と下限 (秒単位) です。 また、実行時に TestThreshold と呼ばれる値が計算され、その値 (秒単位) は MinThreshold と MaxThreshold の間です。
ConstantThreshold に既定値の -1 以外の値を設定した場合、実行時の値 TestThreshold は表示されません。 サブスクリプションでオーケストレーションがブロックされ、そのサブスクリプションでオーケストレーションのすべてのインスタンスがブロックされている期間の履歴が TestThreshold の値を超えると、オーケストレーションは退避します。 それ以外の場合、履歴が TestThreshold 値より小さい場合、オーケストレーションは退避しません。 また、履歴に脱水が行われないことを示している場合でも、現在のブロック時間が 2*TestThreshold に達すると、脱水が行われます。 履歴は秒単位の最後の 10 待機時間の平均、または、待機時間の数が 10 未満の場合は履歴内に存在する待機時間の数の平均によって定義されます。
メモリ使用量の増加に伴って TestThreshold の値が MinThreshold に向かう傾向がある場合は、"メモリ ベースの脱水調整" と呼ばれます。メモリベースの退避調整を使用すると、オーケストレーション インスタンスの存在を増やすことができます。これは、いずれかのインスタンスが作業の待機をブロックされている (つまり、メッセージまたは遅延を待機している) 場合に、退避してメモリから取り出すことができるためです。 TestThreshold は、メモリ使用量の単調な減少関数であり、メモリ使用量に反比例します。
次に、Dehydration の各プロパティの説明を示します。
MaxThreshold: オーケストレーションをサブスクリプションでブロックしてから退避できる時間の上限 (秒単位)。
MinThreshold: サブスクリプションでオーケストレーションをブロックしてから退避できる時間の下限 (秒単位)。
ConstantThreshold: 動的しきい値。通常、指定された最小値と最大値の間で変動します。 ただし、このプロパティを設定するとしきい値を固定することができます。 値 -1 は、固定しきい値を使用しないようにエンジンに通知します。 このプロパティは、脱水ベースの調整を無効にするため、-1 以外の値に設定しないでください。
VirtualMemoryThrottlingCriteria
現在は、アンマネージ ヒープの断片化のため、仮想メモリが 32 ビット マシンのボトルネックとなる可能性があります。このため、このリソースも制限する必要があります。 /3GB が設定されている場合、またはホストが 64 ビット プラットフォーム上で実行されている場合は、再構成する必要があります。 最適使用量と最大使用量は MB 単位です。
次に、VirtualMemoryThrottlingCriteria の各プロパティの説明を示します。
OptimalUsage: 脱水調整を有効にし始める仮想メモリ使用量。 この時点で、 TestThreshold の値は MaxThreshold で、 OptimalUsage より大きいメモリ使用量の 場合、TestThreshold は MaxThreshold より小さくなります。
MaximalUsage: 脱水調整が最大になる仮想メモリ使用量。 この時点で、 TestThreshold の値は MinThreshold で、メモリ使用量が MaximalUsage より小さい場合、 TestThreshold は MinThreshold より大きくなります。
IsActive: 仮想メモリの調整がアクティブかどうかを示すブール値。
PrivateMemoryThrottlingCriteria
このプロパティは制限のために役立つ条件ですが、コンピューター上で他の Windows サービスが実行されているかどうかによって適切な値が異なります。 コンピューターに大量のメモリがあり、他の Windows サービスと共有していない場合、これらの値を大幅に増やすことができます。
次に、PrivateMemoryThrottlingCriteria の各プロパティの説明を示します。
OptimalUsage: 脱水調整を有効にし始めるプライベート メモリ使用量 (MB 単位)。 この時点で 、TestThreshold の値は MaxThreshold で、 OptimalUsage より大きいメモリ使用量の 場合、TestThreshold は MaxThreshold より小さくなります。
MaximalUsage: 脱水調整が最大であるプライベート メモリ使用量 (MB 単位)。 この時点で TestThreshold の値は MinThreshold で、メモリ使用量が MaximalUsage より小さい場合、 TestThreshold は MinThreshold より大きくなります。
IsActive: プライベート メモリの調整がアクティブかどうかを示すブール値。
PhysicalMemoryThrottlingCriteria
メモリ使用量を MB 単位ではなくパーセンテージで表す、物理メモリ制限もあります。 このプロパティは既定で無効になっていますが、必要に応じて有効にできます。
次に、PhysicalMemoryThrottlingCriteria の各プロパティの説明を示します。
OptimalUsage: ホスト インスタンスに使用する物理メモリの最適な割合。
MaximalUsage: ホスト インスタンスに使用する物理メモリの最大割合。
IsActive: 物理メモリ調整がアクティブかどうかを示すブール値。
退避プロパティの動作
BizTalk Server はこれらの退避プロパティを使用して、オーケストレーションをいつ退避および復元するかを決定します。 標準の負荷状態では、既定の復元値で十分です。しかし、負荷が高い状態で実行していてパフォーマンス特性を変更する場合、自分でチューニングを行う必要があります。
BizTalk Server の復元動作は、使用可能なメモリ量と使用されているメモリ量に完全に依存します。 復元動作は、メモリ量によって異なります。また、32 ビットと 64 ビットのホスト間のメモリ使用の違いによっても異なります。
復元プロパティでは、オーケストレーション ホストのプライベート バイトと仮想バイトが、次のように識別されます。
仮想バイト数。 これは、プロセスで使用されている仮想アドレス空間の現在のサイズ (バイト単位) です。 仮想アドレス領域の使用は、必ずしもそれに対応するディスクまたはメイン メモリ ページの使用を意味しているわけではありません。 仮想空間は有限であり、プロセスではライブラリ読み込み機能を制限できます。
プライベート バイト数。 これは、このプロセスによって割り当てられ、他のプロセスと共有できないメモリの現在のサイズ (バイト単位) です。