私が見ることができることから、LinuxでのDTraceの実装は、ライセンスと政治によって支えられています。現在代替案は何ですか?
Systemtap は、dtraceと同じ種類の問題を解決するように設計されており、同様のユーザーインターフェイスを備えています。ユーザーは、名前付きプローブにアクションをアタッチする小さなスクリプトを記述します。
不安定だと言われていますが、通常はデフォルトでカーネルにコンパイルされていませんが、動作させると問題は発生しませんでした。
systemtap Webサイトのこのテーブル でdtraceと比較する方法を見ることができます(おそらく党派かもしれません:-)
Dtraceは、愛好家のPaul Foxによって一部Linuxに移植されており、ダウンロードして試してみることができます。彼の blog のリンクを確認してください。
kprobes はdtraceの代わりになると言われていますが、私は試したことはありません。
sysdig
は現在、優れたソリューションです。
いくつかの使用例には以下が含まれます(それらの wikiには非常に興味深い例があります ):
ディスク帯域幅の使用量の観点から上位のプロセスを表示します
sysdig -c topprocs_file
多数のファイルを使用しているプロセスを一覧表示します
sysdig -c fdcount_by proc.name "fd.type = file"
読み取り+書き込みバイトの観点から上位のファイルを参照してください
sysdig -c topfiles_bytes
Apacheが読み取りまたは書き込みを行った上位のファイルを出力します
sysdig -c topfiles_bytes proc.name = httpd
基本的なopensnoop:snoopファイルは発生時に開きます
sysdig -p "%12user.name%6proc.pid%12proc.name%3fd.num%fd.typechar%fd.name" evt.type = open
R + Wディスクアクティビティに関して上位のディレクトリを表示します
sysdig -c fdbytes_by fd.directory "fd.type = file"
/ tmpディレクトリのR + Wディスクアクティビティに関して上位のファイルを参照してください
sysdig -c fdbytes_by fd.filename "fd.directory =/tmp /"
「passwd」という名前のすべてのファイルのI/Oアクティビティを監視します
sysdig -A -c echo_fds "fd.filename = passwd"
I/OアクティビティをFDタイプ別に表示します
sysdig -c fdbytes_by fd.type
linux( https://github.com/dtrace4linux )および http://crtags.blogspot.com にはdtraceが存在します。
OracleはDTraceをLinuxに移植しています: https://oss.Oracle.com/projects/DTrace/
これがLinuxディストリビューションまたは他のディストリビューションでのみ機能するかどうかはわかりません。
Linuxにはstrace/ltraceがあります(straceについて この投稿 を参照)。ただし、これらはDTraceと実際には同等ではなく、DTraceが実行できる機能のほんの一部をカバーしています(実際、DTraceはLinuxが提供するものよりもはるかに優れています)。