使用 ETW 改善调试和性能优化
2008-11-17 17:39:25 来源:WEB开发网核心提示: 多数情况下,跟踪意味着收集来自所关注的特定提供程序的事件,使用 ETW 改善调试和性能优化(5),按照这种思路,事件跟踪会话要与一个或多个提供程序组成的概念上作为整体的一个集合建立关联,或在事件日志中搜索重大故障时,会使用此方法,而会话本身(日志记录引擎)通常被忽略,ETW 体系结构考虑到
多数情况下,跟踪意味着收集来自所关注的特定提供程序的事件。按照这种思路,事件跟踪会话要与一个或多个提供程序组成的概念上作为整体的一个集合建立关联,而会话本身(日志记录引擎)通常被忽略。ETW 体系结构考虑到更加动态和灵活地进行跟踪和管理事件。这里的会话与提供程序存在于不同的空间内。控制器用于启动和停止 ETW 会话,并为会话动态地启用提供程序。因此,控制器可以选择为一个会话启用一组提供程序,稍后禁用其中一些提供程序,稍后再为该会话启用另一提供程序。会话运行于内核之中,不与提供程序建立静态关联。同样,提供程序通常也不知道自己的事件被记录到哪些会话中。有很多应用程序和服务同时作为提供程序、控制器和使用者。提供程序、控制器和使用者的所有操作都提供 API,而且应用程序可能会承担任何角色组合。但在通常情况下,开发人员仅实现事件提供程序,并使用附带工具来收集和查看跟踪。
提供程序与跟踪会话相分离这种做法的好处之一在于,应用程序的故障(发生崩溃或挂起)不会对跟踪造成影响。在发生崩溃前,如果提供程序所记录的事件尚未写入跟踪文件,则这些事件将存储在内核内存中,这对于调试应用程序异常尤其有用。
正如签名提到的,开发人员、IT 管理员和管理工具开发人员会使用事件进行调试、监控、诊断和容量规划。常用的基于事件的分析方法可以分为下列几类。
扫描 用户对事件转储进行扫描,从中找到单一的重要事件或一小组已知事件。通常在使用事件调试对应于最终用户问题的故障案例时,或在事件日志中搜索重大故障时,会使用此方法。
Delta 分析 由于 ETW 会捕获每个事件的时间戳和 CPU 使用率,因此进行诸如下列形式的简单 Delta 分析时
Property (Event B)-Property (Event A)
更多精彩
赞助商链接