MySQL 8.0 参考手册  / 第 5 章 MySQL 服务器管理  / 5.9 调试 MySQL  /  5.8.4 使用 DTrace 跟踪 mysqld

5.8.4 使用 DTrace 跟踪 mysqld

对 DTrace 的支持在 MySQL 5.7 中被弃用,并在 MySQL 8.0 中被移除。

MySQL 服务器中的 DTrace 探测器旨在提供有关 MySQL 中查询执行的信息以及该过程中使用的系统的不同区域。探测器的组织和触发意味着整个查询的执行可以使用一级探测器(query-startquery-done)进行监视,但是通过监视其他探测器,您可以根据使用的锁连续获得有关查询执行的更多详细信息、排序方法甚至逐行和存储引擎级别的执行信息。

DTrace 探测器经过组织,以便您可以跟踪整个查询过程,从客户端的连接点开始,通过查询执行、行级操作,然后再次退出。您可以将探测器视为在典型的客户端连接/执行/断开连接序列期间的特定序列内触发,如下图所示。

图 5.1 DTrace 探测序列

典型客户端连接、执行、断开连接序列期间的 DTrace 探测序列示例。

全局信息在各个级别的 DTrace 探测器的参数中提供。全局信息,即连接 ID 和用户/主机以及相关的查询字符串,在关键级别(connection-startcommand-startquery-startquery-exec-start)提供。当您深入研究探测时,假设您只对单个执行感兴趣(行级探测仅提供有关数据库和表名的信息),或者您打算将行级探测与名义上的parent 探测以提供有关特定查询的信息。在提供每个探测器的格式和参数时给出了这方面的示例。

MySQL 包括对这些平台上的 DTrace 探测的支持:

  • SPARC、x86 和 x86_64 平台上的 Solaris 10 Update 5 (Solaris 5/08)

  • OS X / macOS 10.4 及更高版本

  • 带有 UEK 内核的 Oracle Linux 6 及更高版本(自 MySQL 5.7.5 起)

在这些平台上启用探测器应该是自动的。要在构建期间显式启用或禁用探测器,请使用 CMake-DENABLE_DTRACE=1的或 -DENABLE_DTRACE=0选项 。

如果非 Solaris 平台包括 DTrace 支持,则在该平台上构建 mysqld包括 DTrace 支持。

其他资源