55、系统管理、诊断与追踪技术解析

系统管理、诊断与追踪技术解析

1. DTrace 与 ETW 相关机制

DTrace 是一个强大的系统分析工具,它与 ETW(Event Tracing for Windows)紧密协作,为系统管理员提供了深入了解系统运行状态的能力。

1.1 ETW 提供者与 DTrace 的交互流程

ETW 提供者在 DTrace 驱动中实现。当 Pnp 管理器初始化跟踪引擎时,会向 DTrace 引擎注册所有提供者。注册时,ETW 提供者会配置一个名为 DTraceLoggingSession 的 ETW 会话,该会话将事件写入循环缓冲区。

从命令行启动 DTrace 时,它会向 DTrace 驱动发送一个 IOCTL。IOCTL 处理程序调用每个提供者的提供函数,内部的 DtEtwpCreate 函数会使用 EtwEnumTraceGuidList 函数代码调用 NtTraceControl API,这使得 DTrace 能够枚举系统中注册的所有 ETW 提供者,并为每个提供者创建一个探针。例如,使用 dtrace -l 命令可以显示 ETW 探针。

当编译并执行针对 ETW 提供者的 D 脚本时,内部的 DtEtwEnable 例程会被调用,以启用一个或多个 ETW 探针。如果注册时配置的日志会话尚未运行,则会启动该会话。通过跟踪扩展上下文(包含私有系统接口),DTrace 能够注册一个内核模式回调,每当有新事件记录到 DTrace 日志会话中时,该回调就会被调用。

第一次启动会话时,没有与之关联的提供者。与系统调用和 FBT 提供者类似,DTrace 会为每个探针创建一个跟踪数据结构,并将其插

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值