DTrace 是 Solaris 10 OS 中的一项至关重要的功能。DTrace 是 Solaris Express 11/03 发行版中的新增功能,并在 Solaris Express 5/04 发行版和 Solaris Express 11/04 发行版中得到增强。
DTrace 是一项全面的动态跟踪功能,借助该功能,Solaris 用户、管理员和开发者可在一个全新级别观察内核和用户进程。
使用 DTrace,可以动态检测操作系统内核和用户进程,并记录您在所关注的位置(称为探测器)指定的数据,从而帮助您了解系统。探测器类似于小型的可编程传感器,分散在整个 Solaris 系统中。本发行版中包含 30,000 多个探测器。每个探测器均可与用新的 D 编程语言编写的自定义程序相关联。通过这种关联,您可以使用 ANSI C 类型和表达式来访问系统数据,并轻松地执行捕获栈跟踪、记录时间戳和生成直方图等操作。
DTrace 的所有检测过程都是完全动态的,并且可用于产品化的系统。关闭 DTrace 对系统的性能没有影响。任何跟踪都只对所启用的探测器和操作的性能产生影响。此外,DTrace 还很安全: 它不会破坏正在运行的系统,因为它以安全性、完整性和错误检查为设计核心。有了这些功能,便可根据需要随时放心地在运行的系统上使用 DTrace,以查明故障的原因。
可以使用《Solaris 动态跟踪指南》以及包括 dtrace(1M) 在内的一套手册页来帮助您学习 DTrace。该指南包含完整的功能参考和示例,可帮助您从头开始学习。您还可以加入 BigAdmin 上的 DTrace 论坛(请访问 http://www.sun.com/bigadmin/content/dtrace),了解有关 DTrace 的更多信息,下载示例程序并提出问题。
在 Solaris Express 5/04 发行版中,使用 pid 提供器的用户进程跟踪功能适用于 x86 系统。自从 Solaris Express 11/03 发行版中引入 DTrace 之后,该功能便可用于 SPARC 平台。
使用 pid 提供器,可在任何函数调用的输入和返回级别或在距离任何函数任意偏移量的位置跟踪任何进程中的任何指令。有关完整的详细信息,请参见《Solaris 动态跟踪指南》中的第 27 章“pid 提供器”和第 32 章“用户进程跟踪”。
在 Solaris Express 11/04 发行版中,您可以通过 plockstat(1M) 实用程序来观察用户级的同步元语,例如内核中的 lockstat(1M)。DTrace plockstat 提供器是 plockstat(1M) 的基本检测方法。Dtrace plockstat 可用于增加由 plockstat 实用程序记录的数据。有关详细信息,请参见 plockstat(1M) 手册页。