27.3.开启 DTrace 支持

在 FreeBSD 9.2 和 10.0 中,DTrace 支持已内置于 GENERIC 内核中。使用较老版本的 FreeBSD 或希望将 DTrace 支持静态编译进内核的用户,应在自定义内核配置文件中添加以下行,并按照 配置 FreeBSD 内核 中的说明重新编译内核:

options         KDTRACE_HOOKS
options         DDB_CTF
makeoptions	DEBUG=-g
makeoptions	WITH_CTF=1

AMD64 架构的用户还应添加以下行:

options         KDTRACE_FRAME

此选项提供了对 dtrace_fbt(4) 的支持。虽然没有该选项 DTrace 仍可工作,但函数边界跟踪功能将受限。

当 FreeBSD 系统重启进入新内核,或使用 kldload dtraceall 加载 DTrace 内核模块后,可安装当前的 DTrace 工具包 (sysutils/dtrace-toolkit),该工具包包含用于收集系统信息的现成脚本,包括检查打开的文件、内存、CPU 使用情况等。FreeBSD 基础系统中也包含一些脚本,存放于 /usr/share/dtrace

注意

/usr/share/dtrace 中的脚本是专门为 FreeBSD 移植的。DTrace 工具包中的脚本并非全部可直接在 FreeBSD 上运行,有些脚本需要进行一定修改才能使用。

DTrace 工具包使用 DTrace 特有的脚本语言,这种语言称为 D 语言,与 C++ 非常相似。本文档不对 D 语言做深入讲解。如需概览,请参阅 FreeBSD 的 d(7) 手册页。D 语言在 illumos 动态跟踪指南 中也有详细介绍。

最后更新于