Exchange Server 2007 のバージョン ストアの問題に関するデータを収集する別の方法
原文の記事の投稿日: 2011 年 10 月 4 日 (火曜日)
この話題に関しては、今までのところ、Nagesh Mahadev (英語) 氏と Sushil Sharma (英語) 氏による 2 つのブログをお読みになっているものと思います。これらをまだ読んでいなければ (ブックマークしていなければ)、今すぐ読むことをお勧めします。
このブログでは、Exchange Server 2007 のデータを収集する別の方法と、データ コレクターを設定する方法を説明します。Version Buckets Allocated (割り当てられたバージョンのバケット) に関するパフォーマンス データを収集するようにコレクターを設定し、Windows Server 2008 上で動作するストアを 2 つのスケジュールされたタスクでダンプします。
データ収集に関しては、https://archive.msdn.microsoft.com/ExPerfwiz (英語) で説明されている Exchange 2007/2010 Performance データ収集スクリプトをダウンロードし、それを説明に従って実行してパフォーマンス データのキャプチャを開始することも忘れないでください。
この例で使用する イベント ID 623 は次のとおりです。
ソース: ESE
Event ID: 623
タスクのカテゴリ: トランザクション マネージャー
レベル: エラー
説明:
MSExchangeIS (5828) SG4: このインスタンス (1) のバージョン ストアは最大サイズである 155Mb に達しています。長期間実行されているトランザクションがあるためにバージョン ストアのクリーンアップが行えず、そのサイズが増大しているものと思われます。この長期実行トランザクションを完全にコミットするか、ロールバックしないと、それまでの間、更新は拒否されます。
ここで使用する計算式は、これまで使われてきたものと同じで、x/1024 *32 = y です。ここで、x は割り当てられたバージョン バケット数で、y はバージョン ストアの合計メモリ量です。上記のイベントからバージョン ストアの最大メモリ量が 155Mb であることがわかるので、割り当てられたバージョン バケットの最大数は x= (155*1024)/32、すなわち 4960 となります。
前の 2 つのブログとの違いは次のとおりです。ここでは、次の 2 つのストア ダンプだけを取得します。
- 割り当てられたバージョン バケット数が総数の 80% を超えたときのダンプ
- イベント ID 623 が発生したときのダンプ
最初のステップとして、2 つのバッチ ファイルをセットアップします。1 つは割り当てられたバージョン バケットでストアのダンプを開始するバッチで、もう 1 つは イベント ID 623 でダンプを開始するバッチです。
VersionBucket.bat の内容:
C:\procdump\procdump.exe store.exe -MA -accepteula c:\store.dmp
EventID623.bat の内容:
C:\procdump\procdump.exe store.exe -MA -accepteula c:\store.dmp
次に、 ユーザー定義データ コレクター セットを Version Buckets という名前で作成します。これを使用して VersionBucket.bat を実行することになります。なお、これらの手順は Windows Server 2008 を想定しています。Windows Server 2003 を使用している場合には、ここ (英語)の手順を参照してください。
1. パフォーマンス モニターを開きます。
2. [データ コレクター セット] で、[ユーザー定義] を右クリックします。
3. 適当な名前 (この例では Version Buckets) を入力し、[手動で作成する (詳細)] (Create manually (Advanced)) を選択し、[次へ] (Next) をクリックします。
4. [パフォーマンス カウンターの警告] (Performance Counter Alert) を選択し、[次へ] (Next) をクリックします。
5. [追加] (Add) をクリックします。MSExchange Database==>Instances を パフォーマンス オブジェクトとして選択し、次に、[カウンター] (Counters) で Version Buckets Allocated を選択します。[インスタンス] (Instances) で SG4 だけが選択されていることを確認してください。[追加] (Add) をクリックし、次に [閉じる] をクリックします。
6. [次の条件で警告] (Alert when) を [より大きい ] (Above) に設定して値を超えた場合に警告を発するように設定し、[制限値] (Limit) を 3968 (4960*.80) にセットして [次へ] (Next) をクリックします。
7. [このデータ コレクター セットをすぐに開始する] (Start this data collector set now) を選択し、[完了] (Finish) をクリックします。
次に、これらのバッチ ファイルを実行するスケジュールされたタスクをセットアップします。
バージョン バケットの割り当て時にストアのダンプを開始するスケジュールされたタスクの作成
1. タスク スケジューラを起動します。
2. 操作ウィンドウで [基本タスクの作成] (Create a Basic Task) を選択します。
3. 適当な名前 (たとえば、Version Buckets) を入力し、[次へ] (Next) をクリックします。
4. [特定イベントのログへの記録時] (When a specific event is logged) を選択し、[次へ] (Next) をクリックします。
5. [ログ] (Log) で Microsoft-Windows-Diagnosis-PLA/Operational を選択します。
[ソース] (Source) で Diagnosis-PLA を選択します。
[イベント ID] (Event ID) に 2031 と入力し、[次へ] (Next) をクリックします。
6. [プログラムの開始] (Start a program) を選択し、[次へ] (Next) をクリックします。
7. [プログラム/スクリプト] (Program/script) で、VersionBucket.bat の置かれているディレクトリへ移動し、[次へ] (Next) をクリックし、[完了] (Finish) をクリックします。
イベント ID 623 の記録時にストアのダンプを開始するスケジュールされたタスクの作成
1. タスク スケジューラを起動します。
2. 操作ウィンドウで [基本タスクの作成] (Create a Basic Task) を選択します。
3. 適当な名前 (たとえば、Event ID 623) を入力し、[次へ] (Next) をクリックします。
4. [特定イベントのログへの記録時] (When a specific event is logged) を選択し、[次へ] (Next) をクリックします。
5. [ログ] (Log) で [アプリケーション] (Application) を選択し、[ソース] (Source) で [アプリケーション] (Application) を選択し、[イベント ID] (Event ID) に 623 と入力し、[次へ] (Next) をクリックします。
6. [プログラムの開始] (Start a program) を選択し、[次へ] (Next) をクリックします。
7. [プログラム/スクリプト] (Program/script) で、EventID623.bat の置かれているディレクトリへ移動し、[次へ] (Next) をクリックし、[完了] (Finish) をクリックします。
ダンプ収集時のダンプ ファイル、アプリケーション ログ、およびパフォーマンス モニター ログを CSS に送って、さらに詳しい分析を行ってください。
この記事の執筆を助けてくれた Mike Edwards、Michael Blanton、Eric Romero Rodriguez に感謝します。
Eileen O’Rourke
これはローカライズされたブログ投稿です。原文の記事は、「Alternative Method for Gathering Data for Version Store Issues on Exchange Server 2007」をご覧ください。