Solaris 动态跟踪指南

选择探测器位置

DTrace 允许开发者在应用程序代码(包括完整的应用程序和共享库)中嵌入静态探测器点。无论应用程序或库在什么位置(在开发环境下或在生产环境下)运行,都可以启用这些探测器。所定义探测器的语义应易于被 DTrace 用户群理解。例如,对于与提交请求的客户机对应的 Web 服务器和响应该请求的 Web 服务器,可以定义 query-receivequery-respond 探测器。这些示例探测器易于被大多数 DTrace 用户理解,它们对应于应用程序的最高级别的抽象,而不是较低级别的实现信息。DTrace 用户可以使用这些探测器来了解请求的时间分配。如果 query-receive 探测器将 URL 请求字符串显示为参数,则 DTrace 用户可以通过将此探测器与 io 提供器结合使用,确定哪些请求产生的磁盘 I/O 最多。

在选择探测器名称和位置时还应考虑所描述的抽象对象的稳定性。在应用程序的未来发行版中,是否仍将保留此探测器,即使实现发生变化。此探测器是在所有系统体系结构中都有意义,还是特定于特殊的指令集?本章将详细讨论这些决定如何指导您完成静态跟踪定义。