このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。
Oracle LinuxのDTraceの実装には、Oracle Solarisと比較して次の主な相違点が存在します。
DTraceのOracle Linux実装では、次のプロバイダを使用できます。
プロバイダ
カーネル・モジュール
説明
dtrace
dtrace
DTrace自体に関連するプローブを提供します(
BEGIN
、ERROR
、END
など)。 これらのプローブを使用して、トレースの開始前にDTraceの状態を初期化し、トレースの完了後にその状態を処理して、他のプローブでの予期しない実行エラーを処理できます。fasttrap
fasttrap
DTrace対応アプリケーションのユーザー領域トレースをサポートします。
io
sdt
データの入力および出力に関連するプローブを提供します。
io
プロバイダによって、iostatなどのI/O監視ツールを通じて監視された動作を迅速に調査できます。proc
sdt
プロセスの作成と終了、LWPの作成と終了、新しいプログラムの実行、およびシグナルの処理を監視するためのプローブを提供します。
profile
profile
固定された指定の時間間隔で起動する割込みに関連するプローブを提供します。 これらのプローブは、特定の実行ポイントではなく、非同期の割込みイベントに関連付けられます。 これらのプローブを使用して、各種のシステム状態をサンプリングできます。
sched
sdt
CPUスケジューリングに関連するプローブを提供します。 CPUは、すべてのスレッドが必ず使用する単一のリソースであるため、
sched
プロバイダは、体系的な動作を把握するために非常に役立ちます。syscall
systrace
すべてのシステム・コールのエントリ・ポイントおよびリターン・ポイントにプローブを提供します。 システム・コールはユーザー・レベル・アプリケーションとオペレーティング・システム・カーネルとの間の主要なインタフェースであるため、これらのプローブによって、アプリケーションとシステム間の相互作用を把握できます。
pid
プロバイダ、関数境界トレース(fbt
)プロバイダ、ネットワーク・プロトコル用プロバイダ(ip
、iscsi
、nfsv3
、nfsv4
、srp
、tcp
、およびudp
)など、その他のプロバイダはまだ実装されていません。プロジェクト、ゾーン、タスク、コントラクト、メッセージ・キューなどのSolaris固有の機能は、サポートされません。
カーネル・プローブの名前は、Linuxカーネルに固有です。
DプログラムでCプリプロセッサ(cpp)を呼び出すとき、dtraceに-Xa、-Xc、および-Xtオプションを指定すると、いずれの場合もオプション-std=gnu99(1999 C標準に準拠し、GNU拡張を含む)が含まれます。 -Xsオプションには、オプション-traditional-cpp(K&R Cに準拠)が含まれます。
匿名トレースはサポートされません(dtraceの-aおよび-Aオプション)。
32ビット・データ・モデルはサポートされません(dtraceの-32オプション)。
フラグ、タイプ、構造および関数プロトタイプの
<dtrace.h>
ヘッダー・ファイルの様々な定義は、Oracle SolarisとOracle Linuxの実装間の本質的な違いを反映しています。SDTプローブは、IRQコンテキストでは動作しません。 結果として、POSIXタイマーの期限切れのイベント通知として送信されるシグナルが破棄されるため、
proc:::signal-discard
プローブは起動されません。
詳細は、/usr/share/doc/dtrace-
にあるDTrace_version
INCOMPATIBILITIES
ファイルを参照してください。