クロックデータの収集の必要性
クロックデータからは、プログラムの実行に時間がかかっている部分、そしてどのような状態またはモードに時間が消費されているかがわかります。 通常は、時間ベースのプロファイルデータの解析がプログラムのパフォーマンスの問題を解析する最初の手順となります。
コレクタによるクロックデータの収集手順
クロックデータは、軽量プロセス (LWP: Lightweight Process) の状態のスナップショットを一定間隔で取ることで収集されます。 この処理をプロファイル収集と呼び、処理の実行間隔をプロファイル間隔と呼びます。 各間隔の最後では、各軽量プロセス (LWP) のマイクロアカウント状態が、プログラムの呼び出しスタック、LWP ID、スレッド ID、およびプロセッサ ID と共に記録されます。 各プロファイル間隔は、その間隔での最後に実行された処理とともに書き込まれます。 したがって、その結果得られたデータの性格は統計的なものとなります。
パフォーマンスアナライザで参照できる時間メトリック
クロックデータは次のメトリック (計測データ) に変換されます。
メトリック | 定義 |
---|---|
ユーザー CPU 時間 | CPU のユーザーモードでの実行で消費された LWP (軽量プロセス) 時間。 |
時計時間 | LWP 1 で費やした LWP 時間。 一般的な「時計時間」です。 |
LWP 合計時間 | 全 LWP 時間の合計。 |
システム CPU 時間 | カーネルモードまたはトラップ状態での実行に消費された LWP 時間。 |
CPU 待ち時間 | CPU 待ちに消費された LWP 時間。 |
ユーザーロック時間 | ロック待ちに消費された LWP 時間。 |
テキストページフォルト時間 | テキストページ待ちに消費された LWP 時間。 |
データページフォルト時間 | データページ待ちに消費された LWP 時間。 |
他の待ち時間 | スリープや停止に消費された時間、またはカーネルページ待ちやロック待ちに消費された LWP 時間。 |
時計時間を除き、すべてのメトリックは LWP 全体で合計されます。 ここで定義された時計時間は、多重プログラム多重データ (MPMD: multiple-program multiple-data) 型プログラムでは意味を持ちません。 Solaris[tm] 7 および 8 のオペレーティング環境でデフォルトのスレッドライブラリが使用されている場合、ユーザーロック時間は他の待ち時間と共に累積されます。
クロックデータ収集に関する制限事項
プロファイルタイマーを使用するプログラムで、時間ベースのプロファイルを収集することはできません。 コレクタは、プロファイルクロックパラメータを設定する setitimer(3) への呼び出しをさえぎり、それらの呼び出しが他のプログラムによって使用されるのを防ぎます。
関連項目 | |
---|---|
プロファイル間隔の値の選択 パフォーマンスデータの収集 動作中プロセスのパフォーマンスデータの収集 |