24.3. 启用 DTrace 支持

在 FreeBSD 9.2 和 10.0 中,DTrace 已经集成进 GENERIC内核中。FreeBSD 的早期用户共喜欢将 DTrace 支持静态编译进内核中。将下面代码添加进内核中并参考第 8 章 配置 FreeBSD 内核重编译内核:

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

AMD64 用户还应添加下面这行:

options         KDTRACE_FRAME

此选项提供了对 FBT 特性的支持。 DTrace 可以在没有此选项的情况下正常工作, 但是函数边界跟踪便会有所限制。

FreeBSD 使用重编译的内核,或使用kldload dtraceall加载 DTrace 内核模块后,需要添加 Korn shell 的支持。因为 DTrace 工具包有一些工具是由 ksh 写的。安装 shells/ksh93。 同样也可以通过 shells/pdksh 或者 shells/mksh 使用这些工具。

最后,安装 DTrace 工具包,这是用于收集系统信息的现成脚本的集合。有脚本来检查打开的文件,内存,CPU使用率,以及更多。FreeBSD 10 将其中一些脚本安装到/usr/share/dtrace中。在其他 FreeBSD 版本上,或要安装完整的 DTrace 工具包,请使用 sysutils/DTraceToolkit或 POrt。

注意:

/usr/share/dtrace中的脚本都已适配 FreeBSD,并非有所 DTrace Toolkit 中的脚本都能在FreeBSD下运行,并且某些脚本可能需要修改才能在FreeBSD中使用。

DTrace Toolkit 包含许多使用 DTrace 特殊语言的脚本。这种语言称为 D 语言,它与C++非常相似。对语言的深入讨论超出了本文档的范围。更多详情请阅读《Illumos Dynamic Tracing Guide》。

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.