メモリ リークが発生したプロセスのメモリ ダンプを取得する方法
不要になったメモリを BizTalk プロセス BTSNTSvc.exe が解放できず、時間の経過と共に使用可能なメモリ量が減少している場合、このプロセスにメモリ リークが発生していると見なされます。 プロセスのメモリ使用量は、タスク マネージャーで使用できる [プロセス] タブの [Mem Usage] 列の値を表示することで決定できます。 プロセスが長時間にわたってメモリを解放せずに消費し続けると、全体のシステム パフォーマンスに悪影響が生じます。
ここでは、ルールの使用か、メモリ ダンプの手動取得によって、メモリ リークの発生が疑われる BizTalk プロセスのメモリ ダンプを取得する手順について説明します。 メモリ リークの発生が予測不可能な場合、メモリ ダンプを手動で取得する方法を使用してください。
メモリ リークが発生したプロセスのメモリ ダンプを、ルールを使用して取得するには
Start、All Programs、IIS Diagnostics、Debug Diagnostics Tools、Debug DiagnosticsTool 1.0 からデバッグ診断ツールを起動します。
[ルールの追加ウィザード] の [ ルールの種類の選択 ] ダイアログが表示されない場合は、[ ツール ] メニューの [ルールの操作] を選択し、[ ルールの 追加 ] をクリックしてルールの追加ウィザードを表示します。
[ルールの種類の選択] ダイアログで [メモリとハンドル リーク] オプションを選択し、[次へ] をクリックします。
メモリリークが疑われる BTSNTSvc.exe プロセスを選択し、[ 次へ] をクリックします。
[ 追跡期間の構成 ] ダイアログで、次の手順に従います。
観察されたプロセスメモリの増加が直ちに発生した場合は、ルールがアクティブ化されたときにすぐにメモリ追跡を開始するオプションをチェックします。 観察されたプロセス メモリの増加がすぐに発生しない場合は、[ ウォームアップ時間 ] テキスト ボックスに適切な分数を指定します。その後、メモリ追跡が開始されます。
Note
BizTalk オーケストレーションによる外部のコンポーネントの参照時など、特定のコンポーネントがメモリに読み込まれたときにメモリ リークが発生する場合、観察対象のプロセス メモリの増加が直ちに発生しない可能性があります。
[ 追跡時間 ] テキスト ボックスで、メモリ追跡が停止するまでの適切な分数を指定します。 この分数は、メモリ リークの再現に十分な長さにする必要があります。 この期間が経過した後、プロセスのメモリ ダンプが取得されます。
予期しないプロセスの終了時にユーザーダンプを取得するには、クラッシュルールを自動作成するオプションをオンにします。
[次へ] をクリックします。
[ ダンプの場所と規則名の選択 ] ダイアログで、[ 次へ ] をクリックして既定値を受け入れます。
[ルールの完了] ダイアログで [完了] をクリックし、[今すぐルールをアクティブにする] の既定値をそのまま使用します。
既定では、プロセスのメモリ ダンプは、[追跡期間の構成] ダイアログで指定された時間間隔が経過すると、ローカル コンピューターのクラッシュ ルール> ディレクトリの \Program Files\IIS Resources\DebugDiag\Logs\<name に保存されます。
メモリ リークが発生したプロセスのメモリ ダンプを手動で取得するには
Start、All Programs、IIS Diagnostics、Debug Diagnostics Tools、Debug DiagnosticsTool 1.0 からデバッグ診断ツールを起動します。
ルールの追加ウィザードの [ ルールの種類の選択 ] ダイアログが表示されたら、[ キャンセル] をクリックします。
[デバッグ診断ツール] の [ プロセス ] タブをクリックして選択します。
メモリリークの疑いがある BTSNTSvc.exe プロセスを右クリックし、[ リークの監視] をクリックします。
タスク マネージャーでプロセスのメモリ使用量を監視し、BizTalk コンピューターで使用可能なメモリの 60 から 80% にプロセスのメモリ使用量が近づいたときに監視します。プロセスを右クリックし、[フル ユーザー ダンプの作成] オプションを選択して、プロセスのメモリ ダンプを手動でキャプチャします。
既定では、プロセスのメモリ ダンプは、ローカル コンピューターの \Program Files\IIS Resources\DebugDiag\Logs\Misc\ ディレクトリに保存されます。