如何安装 DTrace?

jus*_*ime 21 software-installation

谷歌搜索表明 DTrace 在 Linux 上可用,但我找不到有关如何安装它的说明。

DTrace 是一个全面的动态跟踪框架。它旨在提供运营洞察力,使用户能够对应用程序和操作系统本身进行调整和故障排除。已特别考虑使其在生产环境中安全使用。例如,跟踪进行时的探测影响很小,并且任何禁用的探测都不会影响性能;这很重要,因为可以启用数以万计的 DTrace 探针。

Red*_*dro 16

1

我找到了 sytemtap-sdt-dev 包。从终端类型:

sudo apt-get install systemtap-sdt-dev
Run Code Online (Sandbox Code Playgroud)

该软件包提供dtrace.

请注意,虽然它的命名dtrace是有原因的,但它与来自Solaris. 你可能可以做一些事情,但不是全部。

2

如果你不介意编译,一个功能更完整的版本dtrace是 Paul Fox 的端口:ftp :
//crisp.dyndns-server.com/pub/release/website/dtrace/

它很容易构建,请参阅自述文件。

3

还有一个Oracle港口。但我没有测试过,也不推荐。显然,它只有大约 0.1% 的探测到 Paul Fox 端口。

$ dtrace -l | wc -l
394267
Run Code Online (Sandbox Code Playgroud)

具有讽刺意味的是,因为Oracle购买Sundtracefor 的原作者Solaris

4

请注意,Linux-dtrace 缺少(原始)Solaris-dtrace 提供的某些用户空间功能。因此,dtrace 的某些用途,例如分析 Node.js,将很复杂,如果不是不可能的话,使用 dtrace 的克隆、分叉或模仿。

  • 确实,“systemtap-sdt-dev”中的版本不支持“-n”选项 (5认同)

Rin*_*ind 15

使用 git 或在此处下载多个版本的dtrace。我找到了这些安装说明

git clone "https://github.com/dtrace4linux/linux.git" dtrace
cd dtrace
tools/get-deps.pl
make all 
make install
sudo make load
Run Code Online (Sandbox Code Playgroud)

旁注: 关于头脑风暴的评论声称您可以对这 3 个做同样的事情: