パフォーマンス ログ

パフォーマンス ログには、ジョブまたはサービスの実行にかかった時間の詳細が記録されます。ジョブまたはサービスの全般的なパフォーマンス情報に加えて、ジョブまたはサービス データフロー内の各ステージのパフォーマンス情報が含まれます。この情報を使用して、各ステージの実行時間と処理時間を確認し、ボトルネックを特定できます。実行時間と処理時間が大きく異なる場合、そのステージでは上流ステージからのデータを待つ時間が長いことを意味します。この場合は、上流ステージがデータフローにおけるボトルネックである可能性があります。シンクについては、実行時間と処理時間が大きく異なることが、必ずしもパフォーマンスの問題を意味するとは限らないことに注意してください。シンクは一般的に、データフローのその他の部分からの最初のレコードを待たなければならないためです。

ジョブまたはサービスのパフォーマンス モニタリングを有効にするには、管理ユーティリティでコマンド 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
レコードの書き込み時にステージがブロックしていた合計実行時間の割合。