27.3.开启 DTrace 支持
在 FreeBSD 9.2 和 10.0 中,DTrace 支持已内建在 GENERIC 内核中。对于早期版本的 FreeBSD 用户或那些希望静态编译 DTrace 支持的用户,应在自定义内核配置文件中添加以下行,并按照 配置 FreeBSD 内核 的说明重新编译内核:
对于 AMD64 架构的用户,还应添加以下行:
此选项为 FBT
提供支持。虽然没有此选项 DTrace 也能工作,但函数边界追踪的支持将有限。
待 FreeBSD 系统重新启动并加载了新的内核,或者通过 kldload dtraceall
加载了 DTrace 内核模块,系统将需要 Korn shell 的支持,因为 DTrace 工具包中有一些实用程序是用 ksh
编写的。确保安装了 shells/ksh93 软件包和 Ports 。也可以在 shells/pdksh 或 shells/mksh 下运行这些工具。
最后,安装当前的 DTrace 工具包,它包含了许多用于收集系统信息的现成脚本。这些脚本可以检查打开的文件、内存、CPU
使用情况等。FreeBSD 10 会将其中一些脚本安装到 /usr/share/dtrace。在其他 FreeBSD 版本上,或者如果需要安装完整的 DTrace 工具包,可以使用 sysutils/dtrace-toolkit 软件包和 Ports 。
注意
/usr/share/dtrace 中的脚本是专门为 FreeBSD 移植的。并非所有 DTrace 工具包中的脚本都能在 FreeBSD 上直接使用,有些脚本可能需要一定的修改才能在 FreeBSD 上运行。
DTrace 工具包包含许多使用 DTrace 特有语言编写的脚本。这种语言被称为 D 语言,它与 C++ 非常相似。关于该语言的深入讨论超出了本文的范围,详细内容可参见 Illumos 动态追踪指南。
最后更新于