プロファイル・プロバイダ

profileプロバイダでは、指定の時間間隔で定期的に起動する割込みに関連するプローブを使用できます。

このようなプローブは、特定の実行ポイントではなく非同期割込みイベントに関連付けられます。これらのプローブを使用して、特定の観点からシステム状態をサンプリングし、そのサンプルを使用してシステム動作を推測できます。サンプリング・レートが高い、またはサンプリング時間が長いと、正確な推測が可能になります。DTrace関数を使用すると、profileプロバイダでシステムの多くの側面をサンプリングできます。たとえば、現在のスレッドの状態、CPUの状態、現在のマシン命令などの標本をサンプリングできます。

profile-nプローブ

profile-nプローブは、すべてのアクティブなCPUで、割込みレベルが高く、固定間隔で起動します。

nのデフォルトの単位は秒当たりの起動レートとして表される周波数ですが、表8-1に示すように、時間間隔または周波数のいずれかを指定するオプションの接尾辞を値に付けることもできます。次の表では、tick- nプローブで有効な時間の接尾辞について説明します。

表8-1 有効な時間接尾辞

接尾辞 時間の単位

nsecまたはns

ナノ秒

usecまたはus

マイクロ秒

msecまたはms

ミリ秒

secまたはs

minまたはm

hourまたはh

時間

dayまたはd

hz

ヘルツ(秒当たりのレートとして表される周波数)

tick-nプローブ

tick-nプローブは一定の間隔で、高い割込みレベルで間隔ごとに1つのCPUのみで起動します。

すべてのCPUで起動するprofile-nプローブとは異なり、tick-nプローブは間隔ごとに1つのCPUのみで起動し、起動するCPUは時間の経過とともに変化する可能性があります。nのデフォルトの単位は秒当たりの起動レートとして表される周波数ですが、表8-1に示すように、時間間隔または周波数のいずれかを指定するオプションの時間接尾辞を値に付けることもできます。

tick-nプローブには、定期的な出力や定期的なアクションの実行など、いくつかの用途があります。

ノート:

使用可能な最も高い周波数は5000 Hzです(tick-5000)。

profileプローブの引数

次の表では、profileプローブの引数について説明します。

表8-2 profileプローブの引数

プローブ arg0 arg1

profile-n

pc

upc

tick-n

pc

upc

引数は次のとおりです。

  • pc: カーネル・プログラム・カウンタ

  • upc: ユーザー空間プログラム・カウンタ

profileプローブの作成

他のプロバイダとは異なり、profileプロバイダは、必要に応じて動的にプローブを作成します。そのため、たとえばdtrace -l -P profileコマンドの使用時にプローブをすべてリストしたときに、優先されるプローブが表示されない場合がありますが、このプローブは明示的に有効にすると作成されます。

時間間隔が短すぎると、マシンは時間ベースの割込みを継続的に処理することになり、マシン上のサービスが拒否されます。profileプロバイダは、間隔が200マイクロ秒未満になるプローブの作成を拒否し、エラーを返します。

profの安定性

profileプロバイダは、DTraceの安定性メカニズムを使用してその安定性を記述します。これらの安定性の値を、次の表に示します。

要素 名前の安定性 データの安定性 依存クラス

プロバイダ

発展中

発展中

共通

モジュール

変更の可能性あり

変更の可能性あり

不明

関数

非公開

非公開

不明

名前

発展中

発展中

共通

引数

発展中

発展中

共通