
跟踪
DTrace 是 完整的动态跟踪监控框架 开发用于实时诊断生产系统中的内核和应用程序问题。 DTrace 最初是为 Solaris 创建的,现已移植到其他类 Unix 操作系统。
开发DTrace 支持系统管理员解决内核和最终应用程序中的动态跟踪问题 在 Solaris 操作系统上,并且与支持 BPF 的标准 Linux 内核兼容。为了发挥作用,它需要 binutils 包中包含的 CTF 调试格式兼容的 libctf 库或从 Solaris 移植的 libdtrace-ctf 库。
这个工具 允许系统管理员和开发人员:
- 系统监控: DTrace 为用户提供有关计算机资源(例如 CPU、内存和存储)使用情况的详细信息,使您能够识别瓶颈并提高系统效率。
- 调试性能问题: 它可以让您实时识别和诊断性能问题,从而更轻松地排除故障和优化系统。
- 优化性能: 通过提供有关应用程序行为的详细信息,DTrace 允许开发人员优化其程序的性能并提高整体系统效率。
直到几年前 Oracle 为 Linux 提供 DTrace 支持 该工具作为用户空间进程的实现提供,该进程使用 eBPF 子系统和 Linux 内核提供的标准跟踪机制。就功能而言,这种基于 eBPF 的 DTrace 实现类似于 Linux 版 DTrace 的第一个版本,它是作为内核模块实现的。
关于 DTrace 2.0.0-1.14
目前, DTrace 版本为 2.0.0-1.14,以两个可选补丁的形式分发 对于内核 6.7,允许您使用高级功能来获取有关模块和内核的附加数据,此外,用于跟踪用户空间中的进程的 pid 提供程序现在支持根据指令在内核空间中的位移来跟踪指令的执行情况。用户空间代码。
它支持使用 stack() 和 ustack() 函数 为了聚合收集的数据,能够通过分配文字 0 从任何类型的关联数组中删除元素,从而更轻松地管理数组中的数据。
DTrace 2.0.0-1.14 为系统的不同方面提供了一系列选项,包括 CPU 性能计数器、功能限制、锁、进程生命周期和新的打印操作,可生成带有类型注释的结构化数据,从而改进监控结果的呈现。
除了它 允许您聚合绘图数据并使用新函数根据结果执行操作 cleanpath()、d_path() 和 link_ntop() 已集成,并且提供了在 dtprobed 重新启动之间保存进程跟踪数据 (USDT) 的功能,即使在重新启动后也可确保跟踪连续性。
而且,也 值得注意的是,添加了“-xcpu”参数,该参数允许检查链接到特定的CPU, 引入“-xlockmem”选项来限制使用的内存大小,优化系统性能。
添加了对 BTF 机制的支持,该机制以 BPF 伪代码提供类型检查信息,并且现在可以使用安装脚本进行构建,从而简化了配置和定制调试工具包的过程。
最后,如果你是 有兴趣了解更多,您可以检查 以下链接中提供了详细信息。
获取DTrace
对于对该工具感兴趣的人,您应该知道 Oracle 为 Oracle Linux 86(UEK64 内核)、Oracle Linux 64(UEK9 或 UEK7 内核)和 Oracle Linux 8(UEK7 内核)提供了预构建的 x6_7 和 aarch6 DTrace 用户空间包。
而对于其他发行版,您必须具有一系列依赖项,您可以在此链接中查阅这些依赖项,并且在编译之前这些依赖项是必需的 自己的源代码。