シェルの Troubleshoot-DatabaseLatency.ps1 スクリプトを使用したデータベース遅延時間の管理

 

適用先: Exchange Server 2010 SP2, Exchange Server 2010 SP3

トピックの最終更新日: 2016-11-28

Troubleshoot-DatabaseLatency.ps1 スクリプトは、Microsoft System Center Operations Manager 2007 によって使用され、データベースの待ち時間が長いことを検出し、それを修正します。タスク スケジューラを使用してスケジュールされたタスクを作成し、このスクリプトを実行できます。データベースの待ち時間が長い原因としては、次の問題を含む多数の問題が考えられます。

  • 不良ディスクによるディスクの待ち時間   ディスクの読み取りまたは書き込みの待ち時間が非常に長く、それが長期間続く場合、その原因としてディスクの不良が考えられます。

  • ドメイン コントローラーの待ち時間   ドメイン コントローラーの LDAP 検索クエリに対する応答で長い待ち時間が生じる場合があります。

  • 過大なユーザー負荷   1 人のユーザー (または一連のユーザー) が集中的な操作を実行している結果、データベースの待ち時間が発生する可能性があります。

Troubleshoot-DatabaseLatency.ps1 スクリプトは次の操作を実行します。

  1. データベースの待ち時間が待ち時間のしきい値 (LatencyThreshold パラメーターで指定される) を超えているかどうかをチェックします。既定値は 70 ミリ秒 (ms) です。

  2. ディスクの 1 秒あたりの転送レートが DiskReadRateThreshold パフォーマンス カウンター未満であるかどうか、およびディスクの 1 転送あたりの秒数レートが DiskReadLatencyThreshold パフォーマンス カウンターを超えているかどうかをチェックします。この場合、ディスクは負荷が少ない状態でありながら、待ち時間が長くなっているため、スクリプトはディスクを交換する必要があると判断します。

  3. 1 人のユーザーが最近 10 分間以上にわたって TimeInServerThreshold パラメーターで指定された値より長く複数のスレッドを使用しているかどうかをチェックします。この場合、ユーザーが待ち時間を長くしている可能性があり、結果としてユーザーのメールボックスが検疫されます。ユーザーのメールボックスは 6 時間にわたって検疫され、その間ユーザーは電子メールにアクセスできません。

Troubleshoot-DatabaseLatency.ps1 スクリプトで使用される既定の設定は、StoreTSConstants.ps1 スクリプトで定義されています。

注意

スクリプトはそれが存在するフォルダーから実行する必要があります。既定では、Exchange 2010 と共にインストールされるスクリプトは、C:\Program Files\Microsoft\Exchange Server\V14\Scripts にインストールされます。シェルはスクリプトを自動的にロードしません。ローカル ファイルからスクリプトを実行するには、".</STRONG>" をすべてのスクリプトの前に付ける必要があります。たとえば、SampleScript.ps1 スクリプトを実行するには、.\SampleScript.ps1 と入力します。スクリプトを実行し、既定のインストール パスを指定するには、"C:\Program Files\Microsoft\Exchange Server\V14\Scripts\SampleScript.ps1" と入力します。詳細については、「Exchange 管理シェルを使用したスクリプトの作成」を参照してください。

Troubleshoot-DatabaseLatency.ps1 スクリプトを使用する

この手順を実行する際には、あらかじめアクセス許可を割り当てる必要があります。必要なアクセス許可の一覧については、以下を参照してください。「メールボックスのアクセス許可」の「メールボックス データベース」。

次のパラメーター構文セットと表は、データベースの待ち時間問題の検出とトラブルシューティングに使用できるパラメーターを一覧表示しています。

Troubleshoot-DatabaseLatency.ps1 -MailboxDatabaseName <DatabaseID> [-LatencyThreshold <1-200>] [-TimeInServerThreshold <1-600000>] [-Quarantine <switch>] [-MonitoringContext <switch>]
パラメーター 必須 説明

MailboxDatabaseName

必須

MailboxDatabase パラメーターには、データベースの待ち時間を監視しているメールボックス データベースを指定します。

このパラメーターには、以下の値を指定できます。

  • GUID

  • 識別名 (DN)

  • データベース名

LatencyThreshold

省略可能

LatencyThreshold パラメーターには、データベースが待ち時間が長いと見なされるまでアイドル状態でいられる時間 (ミリ秒単位) を指定します。

既定値は 70 ミリ秒です。

MonitoringContext

省略可能

MonitoringContext パラメーターには、コマンドの結果がアプリケーション イベント ログに書き込まれるかどうかを指定します。この値を指定しない場合、イベント ログはイベント ビューアーの次の場所に書き込まれます。

[イベント ビューアー] > [アプリケーションとサービス ログ] > [Microsoft] > [Microsoft]-[Exchange]-[Troubleshooters]/[Operational]

このパラメーターに値を指定する必要はありません。

Quarantine

省略可能

Quarantine パラメーターには、待ち時間を長くしている負荷の高いユーザーを検疫することを指定します。このパラメーターを指定しない場合、ユーザーの検疫は行いません。

このパラメーターに値を指定する必要はありません。

TimeInServerThreshold

省略可能

TimeInServerThreshold パラメーターには、メールボックスがデータベースの状態にとって危険と見なされるまでに、1 つのメールボックスに対して Exchange ストアがスレッドを使用する任意のユーザー操作に費やすことができる 1 分あたりの時間 (秒単位) を指定します。この秒数は、メールボックスの代わりに作業しているすべてのスレッド (Get-StoreUsageStatistics コマンドレットによって報告される期間中) が Exchange ストア内で費やす時間を集計することによって計測されます。1 分あたりの作業の秒数は、この合計秒数を Get-StoreUsageStatistics コマンドレットによって報告される期間 (既定では 10 分) で割ることによって計算されます。

たとえば、このパラメーターを 80 秒に設定し、1 人のユーザーが 10 分間のうち 80 秒より長く複数のスレッドを使用すると、イベント エラーが返されます。Quarantine パラメーターを指定すると、イベント エラーが返され、ユーザーのメールボックスも 6 時間検疫されます。

既定値は 200 秒です。

この例では、Troubleshoot-DatabaseLatency.ps1 スクリプトを次の設定で実行する方法を示します。

  • LatencyThreshold パラメーターは 100 ミリ秒に設定されています。データベースの待ち時間が 100 ミリ秒を超えると、エラーが返されます。

  • TimeInServerThreshold パラメーターは 80 秒に設定されています。1 人のユーザーが 10 分間のうち 80 秒より長く複数のスレッドを使用すると、そのユーザーが検疫されます。

.\Troubleshoot-DatabaseLatency.ps1 -MailboxDatabaseName MBD01 -LatencyThreshold 100 -TimeInServerThreshold 80 -Quarantine

注意

この例は、コマンドを手動で 1 回実行する方法を示します。Troubleshooter がデータベースを効率的に監視するのに必要なデータを生成するために、このコマンドを定期的に実行する必要があります。Microsoft Windows オペレーティング システムのタスク スケジューラを使用して、このタスクを設定することをお勧めします。詳細については、「タスク スケジューラの概要」を参照してください。

データベース待ち時間のトラブルシューティング ツールの出力の表示

イベント ビューアーで、Troubleshoot-DatabaseLatency.ps1 スクリプトの結果は、次の場所で表示できます。[イベント ビューアー] > [アプリケーションとサービス ログ] > [Microsoft] > [Microsoft]-[Exchange]-[Troubleshooters]/[Operational]

たとえば、以下はイベント ID 5111 の出力を表しています。この出力はスクリプトがエラーなしに正常に実行された場合に返されます。

データベース待ち時間のトラブルシューティング ツールによって、データベース MBD01 の現在の待ち時間 1 ミリ秒がしきい値 100 ミリ秒以内であることが検出されました。

次の表は、イベント ID、イベントの説明、および必要に応じて、実行する操作を表示します。

注意

この表の説明は、これらのイベントに含まれる可能性のある情報の例です。

イベント ID 説明 対処

5110

データベース MBD01 でデータベース待機時間のトラブルシューティング ツールが起動されました。

情報のみ。このメッセージへの対処は必要ありません。

5111

データベース待ち時間のトラブルシューティング ツールによって、データベース MBD01 の現在の待ち時間 30 ミリ秒がしきい値 70 ミリ秒以内であることが検出されました。

情報のみ。このメッセージへの対処は必要ありません。

5411

データベース待ち時間のトラブルシューティング ツールによって、メールボックスでの異常な処理のため、データベース MBD01 のユーザー f3bb8007-b6d1-45f5-b748-211d66fa43f6 が検疫されました。問題が解決しない場合は、手動操作が必要です。

警告イベント:監視を継続します。

5412

データベース待ち時間のトラブルシューティング ツールによって、メールボックスでの異常な処理のため、データベース MBD01 のユーザー f3bb8007-b6d1-45f5-b748-211d66fa43f6 に関する問題が識別されました。Quarantine パラメーターが指定されていないため、ユーザーは検疫されませんでした。問題が解決しない場合は、手動操作が必要です。

警告イベント:監視を継続します。

5710

データベース待ち時間のトラブルシューティング ツールによって、データベース MBD01 のディスク待ち時間が異常なことが検出されました。ディスクを交換する必要があります。

エラー イベント:ディスクを交換する必要があります。交換の手順については、ハードウェアの製造元に問い合わせてください。

5712

データベース待ち時間のトラブルシューティング ツールによって、データベース MBD01 の RPC 平均待ち時間が長いことが検出されましたが、原因は特定できませんでした。手動による介入が必要です。

エラー イベント:待ち時間の原因を特定できませんでした。ダンプ ファイルを作成し、分析して問題の原因を特定する必要があります。

Windows Vista、Windows 7、または Windows Server 2008 については、「ユーザー モード プロセスのダンプ ファイルの作成方法」を参照してください (このサイトは英語の場合があります)。

Windows Server 2003 以前については、「Userdump.exe ツールを使用してダンプ ファイルを作成する方法」を参照してください (このサイトは英語の場合があります)。

 © 2010 Microsoft Corporation.All rights reserved.