パフォーマンス ログ
パフォーマンス ログには、ジョブまたはサービスの実行にかかった時間の詳細が記録されます。ジョブまたはサービスの全般的なパフォーマンス情報に加えて、ジョブまたはサービス データフロー内の各ステージのパフォーマンス情報が含まれます。この情報を使用して、各ステージの実行時間と処理時間を確認し、ボトルネックを特定できます。実行時間と処理時間が大きく異なる場合、そのステージでは上流ステージからのデータを待つ時間が長いことを意味します。この場合は、上流ステージがデータフローにおけるボトルネックである可能性があります。シンクについては、実行時間と処理時間が大きく異なることが、必ずしもパフォーマンスの問題を意味するとは限らないことに注意してください。シンクは一般的に、データフローのその他の部分からの最初のレコードを待たなければならないためです。
ジョブまたはサービスのパフォーマンス モニタリングを有効にするには、管理ユーティリティでコマンド performancemonitor enabled set を使用します。
パフォーマンス ログは、お使いの Spectrum™ Technology Platform サーバーの次の場所にあります。
SpectrumDirectory\server\logs\performance.log
パフォーマンス ログは、モニタリング対象のジョブまたはサービスの各実行に対して 1 行で書き出されます。循環式のログで、最大 5 ファイルで構成されます。各ファイル サイズの上限は 10 MB です。この上限に達すると、最も古いパフォーマンス データが削除され、新しいパフォーマンス データが記録されます。
パフォーマンス ログの各エントリには、次の情報が含まれます。
注: 以下では読みやすいように、改行とインデントを挿入しています。実際のログでは、エントリは 1 行で書き出されます。
Date Time [performance]
{
"username":"UserName",
"dataflowId":"DataflowName",
"runMode":"BatchOrRealTime",
"elapsedTime":Nanoseconds,
"stageInfo":[
{
"stageName":"Name",
"stageLabel":"Label",
"options":{
OptionsList
},
"recordsRead":Count,
"recordsWritten":Count,
"executionTime":Nanoseconds,
"processingTime":Nanoseconds
"readBlockingTime":Nanoseconds
"writeBlockingTime":Nanoseconds
"readBlockingPercent":Percentage
"writeBlockingPercent":Percentage
}
]
}
説明:
- username
- ジョブまたはサービスを実行したユーザ。
- dataflowID
- Enterprise Designer で定義されているサービスまたはジョブの名前。
- runMode
- ジョブとサービスのどちらのログ エントリであるかを示します。次のいずれかです。
- Batch
- ジョブに対するログ エントリです。
- RealTime
- サービスに対するログ エントリです。
- elapsedTime
- ジョブまたはサービスのリクエストを実行するのにかかった時間 (単位: ナノ秒)。
- stageInfo
- データフローの各ステージにおける実行時間の情報を一覧表示します。各ステージに対して、次の情報が表示されます。
- stageName
- ステージの永続的な名前。
- stageLabel
- ステージのユーザ定義の名前。ステージ ラベルは、Enterprise Designer のキャンバス上に表示されます。
- options
- 実行時に指定されたオプションがあれば、その設定内容がここに表示されます。
- recordsRead
- ステージの全入力ポートを通してこのステージに引き渡されたレコードの総数。
- recordsWritten
- ステージの全出力ポートに書き出されたレコードの総数。
- executiontime
- ステージで最初のレコードが処理されてから最後のレコードが処理されるまでの時間。これには、データフローの他のステージからのデータを待つ間、ステージがアイドル状態だった時間が含まれます。
- processingtime
- ステージがレコードを実際に処理していた時間。データフローの他のステージからのデータ待ちでアイドル状態だった時間を除きます。
- readBlockingTime
- 次のレコードの読み取り中にブロックする時間の長さ。読み取りのブロック時間を長くすると、前のプロセスにかかる時間がこのステージよりも長くなり、追加のチューニングが必要になる場合があります。
- writeBlockingTime
- 次のレコードの書き込み中にブロックする時間の長さ。書き込みのブロック時間を長くすると、前のプロセスにかかる時間がこのステージよりも長くなり、追加のチューニングが必要になる場合があります。
- readBlockingPercent
- レコードの読み取り時にステージがブロックしていた合計実行時間の割合。
- writeBlockingPercent
- レコードの書き込み時にステージがブロックしていた合計実行時間の割合。