本文へスキップ

DTraceとは?

でぃーとれーす

DTraceとはOSのカーネルからアプリケーションまで動的にトレースできる高機能なパフォーマンス解析・デバッグツールです。

DTraceは、Sun Microsystemsが2004年にSolaris 10向けに開発した動的トレーシングフレームワークです。その後MacOS X(現macOS)・FreeBSD・Linuxにも移植され、システム全体を網羅的に観測できるツールとして高く評価されています。

最大特徴安全性を保ちながら本番環境で動作できる点です。DTraceはD言語という独自のスクリプト言語でプローブ(観測点)を記述します。スクリプトはカーネル内の安全性検証機構を通過してから実行されるため、システムをクラッシュさせるリスクが非常に低いです。

観測できる対象は非常に広範囲にわたります。

  • カーネルの内部動作(システムコール・スケジューラ・ネットワークスタック)
  • ユーザー空間アプリケーション(関数の呼び出しと戻り)
  • Java・Ruby・Pythonなど動的言語のランタイム(USDT経由)
  • ディスクI/O・ロック競合・メモリアロケーション

BPF/eBPFが普及した現在のLinux環境ではDTraceの役割はBPFツール群が担うことも多いですが、macOSではDTraceが今なお標準的なシステムトレースツールとして位置づけられており、IOSnoop・opensnoop・execsnoopなど多くのフロントエンドツールがDTraceを基盤として動作しています。

使い方・例文

macOSでどのプロセスがどのファイルを開いているか監視したいとき、DTraceを使うと数行のスクリプトでシステム全体のopen()システムコールをリアルタイムに観測できます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語