23.5 統計情報出力機能のタイマースレッド
統計情報出力機能は,定期的に統計情報をMBeanサーバから取得してログ出力するためのタイマースレッドを作成します。ここでは,MBeanサーバから統計情報を取得する処理を「情報収集」と呼びます。
開始されたタイマースレッドは,一定間隔ごとに情報を収集して,カテゴリごとにログ出力を行います。統計情報ログを開けなかった場合はエラーログを出力し,エラーが起きたカテゴリを情報収集とログ出力の対象から除外します。情報収集とログ出力はモニタ対象プロセス上で動作しますが,統計情報出力機能がモニタ対象プロセスの動作に影響を及ぼして,モニタ対象プロセスの動作を遅延させることはありません。
なお,統計情報出力機能が終了すると,タイマースレッドも終了します。
統計情報出力機能のタイマースレッドと出力ファイルの関係を次の図に示します。
|
|
- 統計情報出力機能のタイマーの動作
-
統計情報出力機能のタイマーは,ログ出力のタイミングを決定するために動作します。
統計情報出力機能は,前回の情報収集の開始時刻からログ出力インターバルが経過していた場合にログ出力を行います。ログ出力インターバルは,config.properties(本製品の設定ファイル)のstats.log.intervalプロパティに指定した時間です。
統計情報出力機能のタイマーの動作イメージを次の図に示します。
図23‒3 統計情報出力機能のタイマーの動作のイメージ
- 統計情報出力機能のタイマーの高負荷時の動作
-
負荷が高くなり,情報収集とログ出力に掛かった時間がログ出力インターバルよりも長くなった場合は,ログ出力のあとすぐに次の情報収集を開始します。
統計情報出力機能のタイマーの高負荷時の動作イメージを次の図に示します。
図23‒4 統計情報出力機能のタイマーの高負荷時の動作のイメージ
- 統計情報出力機能のログ出力インターバルの分割時の動作
-
config.properties(本製品の設定ファイル)のstats.log.sampling-countプロパティには,ログ出力インターバル間の情報収集の回数を指定できます。統計情報ログのレコードに含まれる出力内容に,最大値または最小値を求めたい項目がある場合,指定を検討してください。最大値または最小値を求めたい出力内容が,統計情報ログのレコードに含まれる場合,タイマースレッドは情報収集インターバルごとに情報を収集します。そのため,stats.log.sampling-countプロパティの値を大きくすると取得する最大値または最小値の精度が高くなります。情報収集インターバルは,stats.log.intervalプロパティに指定したログ出力インターバルの時間を,stats.log.sampling-countプロパティに指定した回数で分割した時間になります。
ログ出力インターバルを分割する場合のタイマーの動作イメージを次の図に示します。
図23‒5 ログ出力インターバルを分割する場合のタイマーの動作のイメージ
情報を収集した統計情報は,ログ出力インターバルごとに,統計情報ログへ出力します。統計情報ログのフォーマットと出力例については,「26.4.3 統計情報ログ」を参照してください。