システム管理要求の処理中に生成される統計
システム管理プロセスによって記録された統計を使用することにより、システム管理プロセスタスクの要求処理活動をモニターすることができます。
スケジュール設定されたすべてのシステム管理プロセス要求は、システム管理要求データベース (ADMIN4.NSF) から発行されます。要求は ADMIN4.NSF から定期的に取得され、要求の種類とスケジュールに応じてさまざまな ID テーブルに一時的に格納されます。特定の要求を処理するスケジュール時刻になるまで、要求は ID テーブルに保持されます。各 ID テーブルには、ID テーブルの使用状況に関するフィードバックや、システム管理プロセスのワークロードを示すフィードバックを提供するための統計が格納されます。これらの統計によって参照されるすべての ID テーブルには、処理対象となるシステム管理プロセス要求の NoteID が格納されます。
該当する ID テーブルにシステム管理要求が適切に分類されると、システム管理要求の処理が可能になります。スケジュール時刻になると、これらの要求は利用可能なメッセージキューのいずれかに格納されます。ID テーブルごとに管理される統計と同様に、各メッセージキューについても、メッセージキューの使用状況に関するフィードバックを提供するための統計が管理されます。
さらに第 3 の統計として、システム管理プロセスのバッチ要求の要求処理時刻に関するフィードバックを提供するための統計情報も生成されます。
これらの統計は、次のように 3 つの領域に分類されます。
システム管理プロセスタスクの統計 |
対応する統計の見出し |
---|---|
要求 ID テーブルのモニター処理 |
ADMINP.RequestIDTables |
要求メッセージの待ち行列処理 |
ADMINP.ReqMsgQueue |
要求のバッチ処理 |
ADMINP.BatchReqProcessing |
これらの統計により、システム管理プロセスの活動状況を知ることができます。ただし、これらの統計で実際の進捗状況をモニターすることはできません。例えば、特定のメッセージキューの統計で多数の「処理待ち」統計があるような場合、すべての要求処理スレッドが長時間にわたる要求を実行していてビジー状態であり、システム管理プロセスの一部を再構成する必要があることを示しています。このような場合、新しい処理スレッドの追加や、専用スレッドの構成が必要になることも考えられます。
コレクションテーブル
コレクションテーブルは、スケジュール時刻で区分された後、要求の種類によってさらに区分されます。これらの ID テーブルには、対象となる要求に関するシステム管理プロセス要求の NoteID が格納されます。コレクションテーブルに追加された NoteID ごとに、TotalCount 統計が更新されます。TotalCount は、これまでコレクションテーブルに格納された NoteID の総数を示します。例えば、次のようになります。
ADMINP.RequestIdTables.CollectionTables.Daily.DirectoryManyDoc.TotalCount = 40
第 2 番の統計として、現在「処理待ち」としてテーブルに格納されている NoteID の数が ID テーブルごとに管理されます。
要求 ID テーブルのモニター処理の [コレクション] セクションに表示される可能性のある統計の例を以下に示します。この例に含まれるのは、即時要求と毎時要求だけです。
- 即時 (ADMINP.RequestIdTables.CollectionTables.Immediate)
AllServer
DirectoryOneDoc
DirectoryManyDoc
ModifyACL
ModifyDesignElement
ModifyUnreadList
ModifyReaderAuthor
ModifyPersonDoc
- 毎時 (ADMINP.RequestIdTables.CollectionTables.Interval)
AllServer
DirectoryOneDoc
DirectoryManyDoc
ModifyACL
ModifyDesignElement
ModifyUnreadList
ModifyReaderAuthor
ModifyPersonDoc
これらの統計にはそれぞれ TotalCount と Waiting の統計が含まれています。以下に例を示します。
ADMINP.RequestIdTables.CollectionTables.Immediate.DirectoryOneDoc.Waiting = 0
ADMINP.RequestIdTables.CollectionTables.Interval.DirectoryOneDoc.TotalCount = 1
BatchRequest テーブル
コレクションテーブルは、スケジュールされている要求処理時刻になると、別の ID テーブルのグループである BatchRequest ID テーブルに移動します。BatchRequest ID テーブルには、バッチ処理要求で処理される NotesID のグループが格納されます。これらのテーブルは、バッチ要求をグループ化したり、要求を共通のスケジュールタイプでグループ化する際に使用されます。BatchRequest ID テーブルの情報は、関連するバッチ要求が実行されてテーブルが空になるまでそのまま保存されます。BatchRequest 統計の例を以下に示します。
ADMINP.RequestIdTables.BatchRequest
BatchRequest ID テーブルに格納される NoteID は特殊な ID です。いずれかの PrimaryTables に格納された要求が起動されると、要求のバッチ処理が開始されます。その後、該当する BatchRequest テーブルが実際の要求処理によって参照され、処理を必要とする要求の詳細情報が特定されます。
SecondaryRequest テーブル
SecondaryRequest テーブルと呼ばれる ID テーブルのグループもあります。SecondaryRequest テーブルは、時間指定された要求、サードパーティの要求、簡易再試行要求など、共通性の少ないスケジュールタイプを収集するための領域です。SecondaryRequest 統計の例を以下に示します。
ADMINP.RequestIdTables.SecondaryRequest
PrimaryRequest テーブル
BatchRequest テーブルに格納される要求を除き、すべての要求は最終的に PrimaryRequest テーブルを通過します。このテーブルは、処理スケジュールの設定前に要求が最後に格納される一時的な格納場所です。PrimaryRequest 統計の例を以下に示します。
ADMINP.RequestIdTables.PrimaryRequest
PrimaryRequest テーブル |
説明と統計例 |
---|---|
即時テーブル |
即時処理としてスケジュール設定されているすべての要求が格納されます。 ADMINP.RequestIdTables.PrimaryRequest.Immediate |
毎時テーブル |
毎時処理としてスケジュール設定されているすべての要求が格納されます。 ADMINP.RequestIdTables.PrimaryRequest.Interval |
一般テーブル |
即時テーブルと毎時テーブルのいずれにも格納されていないすべての要求が格納され、SecondaryRequest テーブルに格納されているすべての要求が格納されます。 ADMINP.RequestIdTables.PrimaryRequest.General |
各 NoteID は PrimaryRequest テーブルから削除され、要求スケジュール内で処理されます。要求は、即時テーブル、毎時テーブル、一般テーブルの順で取得されます。これは、要求スケジュールの優先順位を確保するためです。一度取得された要求はパッケージ化され、要求メッセージキューに格納されます。
要求メッセージキュー
要求メッセージキューは、要求処理スレッドのフィードを実行します。処理予定の要求がある場合、ディスパッチスレッドによって要求メッセージがメッセージキューに格納され、要求処理スレッドに対して実行予定の処理があるという信号を送信します。メッセージを受信した要求処理スレッドは、メッセージにしたがって要求を処理します。メッセージキューにメッセージが格納された時点で統計が更新され、タイムスタンプが記録されます。メッセージがメッセージキューから削除されると統計も更新され、メッセージがキューに格納されてからの時間がタイムスタンプによって計算されます。処理スレッドによってモニターされるメッセージキューには、即時、毎時、一般、ポーリングの 4 種類があります。
- ADMINP.ReqMsgQueue.Immediate
- ADMINP.ReqMsgQueue.Interval
- ADMINP.ReqMsgQueue.GeneralPurpose
- ADMINP.ReqMsgQueue.Poll respectively
ポーリングメッセージキューとポーリングスレッドは、ポリシー管理のメール送信専用です。
即時メッセージキューは、特殊な目的のスレッドで即時スケジュール要求を処理するように設定された場合だけ作成されます。即時メッセージキューが作成されている場合、即時スケジュール用の要求はすべてこのスレッドに格納されます。すべてのアイドル状態の処理スレッドは、次のメッセージキューに移動する前に即時メッセージキューを確認します。
毎時メッセージキューは、特殊な目的のスレッドで毎時スケジュール要求を処理するように設定された場合だけ作成されます。毎時メッセージキューが作成されている場合、毎時スケジュール用の要求はすべてこのスレッドに格納されます。すべてのアイドル状態の処理スレッドは、処理要求に対して即時メッセージキュー (作成されている場合) を確認し、次に毎時メッセージキューを確認します。
一般メッセージキューはすべてのスケジュールタイプを処理できますが、特殊な目的のスレッドが作成されている場合は、そうしたスレッドの確認後に最後に確認されるキューになります。
Domino® サーバーコンソールからの ReqMsgQue 統計の実行例
ADMINP.ReqMsgQueue.Interval.AverageWaitTime = 0 Hours 0 Minutes 0 Seconds
ADMINP.ReqMsgQueue.Interval.TotalCount = 1
ADMINP.ReqMsgQueue.Interval.Waiting = 0
処理のために要求が取得されると、長時間実行のバッチ要求が実行される間、統計は維持されます。
要求のバッチ処理
要求されるバッチごとに統計が管理され、この統計によってバッチ処理の最大時間と平均時間がモニターされます。
Domino® サーバーコンソールからの処理時間統計の実行例
ADMINP.BatchReqProcessing.ModACL.AverageProcTime = 0 Hours 0 Minutes 15 Seconds
ADMINP.BatchReqProcessing.ModACL.MaxProcTime = 0 Hours 0 Minutes 15 Seconds
ADMINP.BatchReqProcessing.ModReaderAuthor.AverageProcTime = 0 Hours 0 Minutes 16 Seconds
ADMINP.BatchReqProcessing.ModReaderAuthor.MaxProcTime = 0 Hours 0 Minutes 16 Seconds