> For the complete documentation index, see [llms.txt](https://handbook.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://handbook.bsdcn.org/di-28-zhang-dtrace/28.1.-gai-shu.md).

# 28.1.概述

DTrace，也称为动态跟踪，是由 Sun™ 开发的工具，用于定位生产环境和预生产系统中的性能瓶颈。除了诊断性能问题外，DTrace 还可以用来帮助调查和调试 FreeBSD 内核和用户空间程序中的意外行为。

DTrace 是一款出色的性能分析工具，具有强大的功能，能诊断系统问题。它还可以运行预编写的脚本来利用其功能。用户可以使用 DTrace D 语言编写自己的工具，从而根据特定需求定制性能分析。

FreeBSD 实现对内核 DTrace 提供完整支持，对用户空间 DTrace 提供实验性支持。用户空间 DTrace 让用户能使用 `pid` provider 对用户空间程序做函数边界跟踪，并在用户空间程序中插入静态探针以供后续跟踪。某些 Ports，如 [databases/postgresql12-server](https://cgit.freebsd.org/ports/tree/databases/postgresql12-server/) 和 [lang/php74](https://cgit.freebsd.org/ports/tree/lang/php74/)，提供 DTrace 选项以启用静态探针。

DTrace 的官方指南由 illumos 项目维护，网址为 [illumos Dynamic Tracing Guide](https://illumos.org/books/dtrace/bookinfo.html)。

通过阅读本章，你将了解：

* DTrace 是什么，它提供了哪些功能。
* Solaris™ DTrace 实现与 FreeBSD 提供的实现之间的差异。
* 如何在 FreeBSD 上启用和使用 DTrace。

在阅读本章之前，你应该：

* 了解 UNIX® 和 FreeBSD 基础知识（[FreeBSD Basics](/di-3-zhang-freebsd-ji-chu/3.1.-gai-shu.md)）。
* 对安全性及其与 FreeBSD 的关系有所了解（[Security](/di-16-zhang-an-quan/16.1.-gai-shu.md)）。
