DTrace

更新时间:2023-10-25 17:25

DTrace(全称Dynamic Tracing),也称为动态跟踪,是由 Sun™ 开发的一个用来在生产和试验性生产系统上找出系统瓶颈的工具,可以对内核(kernel)和用户应用程序(user application)进行动态跟踪并且对系统运行不构成任何危险的技术。在任何情况下它都不是一个调试工具, 而是一个实时系统分析寻找出性能及其他问题的工具。 DTrace 是个特别好的分析工具,带有大量的帮助诊断系统问题的特性。还可以使用预先写好的脚本利用它的功能。 用户也可以通过使用 DTrace D 语言创建他们自己定制的分析工具, 以满足特定的需求。

简介

1997年,供职于Sun而现已是Solaris内核研发部高级工程师的Bryan Cantrill 和他的工作组在紧张地研究一个性能问题,他出现在刚刚提及的Sun E10000服务器。该服务器在运行基准测试时,速度突然在一段时间内奇怪地降低。工作组经过六天夜以继日的工作后,终于发现了问题的根本原因。某个“愚蠢之极”的配置错误将服务器配置成了路由器

“我很受震惊,”Cantrill 说到, “这是任何一个客户都可能碰到的问题,但是他们可不敢奢望让内核研发人员为之夜以继日地工作,编写自定义代码以弄清楚问题。我们得找出一个更好的方法。” 经过两年半的紧张研发,Cantrill和他的工作组终于研究出了这个更好的方法: Dtrace 。

特性

DTrace是过去十年中在操作系统方面最具意义的革新之一。Solaris中分散着30,000多的位置指针,也叫探测器probes,DTrace可激活成千上万的探测器,记录所关注的位置指定的数据,如命中,即可从该地址显示用户进程或系统内核的数据,从而了解系统,包括:

1。任何函数的参数

2。内核的任何全局变量

3。函数调用的时间(NS,十亿分之一秒,无任何其他PC/Unix在ns一级精度)

4。跟踪堆栈,包括指明函数调用的代码

5。函数调用时运行的进程

6。产生函数调用的线程

7。统计调用次数、磁盘占用等信息

Dtrace在追踪之外,也支持对系统的采样。

操作系统

除Solaris系列以外,Dtrace已先后被移植到FreeBSD、NetBSD及Mac OS X等操作系统上。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}