http://msdn.microsoft.com/zh-cn/magazine/cc163437.aspx

 

事件跟踪
使用 ETW 改善调试和性能优化
Dr. Insung Park  and Ricky Buch

本文讨论:
  • 了解 ETW 体系结构
  • Windows Vista 中 ETW 的新功能
  • 使用事件提供程序 API 进行编程
本文使用了以下技术:
Windows Vista
目前的软件系统变得日益庞大和复杂,软件的开发和管理随之成为一项艰巨的挑战。几乎不可能对所有执行状态做出说明,应用程序所表现的行为也经常出乎开发者 的意料之外。此外,大量硬件组合和工作负载特征的不断变化也增加了各种软件故障诊断的难度。因此,可靠性和可管理性本身成为重要功能也就不足为奇了。而正 是这些功能催生了对检测的需求。
在 软件执行过程中,针对某些关键的错误状态添加的智能检测手段可以极大地缩短故障的调试时间。在其他某些方面,检测也是非常实用的。在托管的企业环境中,必 须对大量计算机的软硬件故障和资源数量偏低等不良情况进行监视并采取措施。此外,检测还非常有助于解决性能问题,因为性能问题对于外部的工作负载、配置参 数以及底层硬件和软件状态十分敏感,所以诊断起来比较困难。当性能有所下降时,开发人员和管理员能够根据实际工作环境的跟踪结果确定性能不佳的组件或服 务,或者发现开发阶段未预见到的瓶颈。最后,IT 专家可以使用各种管理工具从事务跟踪中得出资源使用率的统计数据,以用于容量规划和趋势分析。
Windows® 事件跟踪 (ETW) 是操作系统提供的一个高速通用的跟踪工具。ETW 使用内核中实现的缓冲和日志记录机制,提供对用户模式应用程序和内核模式设备驱动程序引发的事件的跟踪机制。此外,ETW 使您能够动态地启用和禁用日志记录,轻松地在实际生产环境下进行详细跟踪,而无需重新启动系统或重新启动应用程序。日志记录机制使用每处理器的缓冲区,由 异步写线程将这些缓冲区写入磁盘。这样,大型服务器应用程序在写入事件时所受的干扰能够降至最小。
最 初引入 ETW 的操作系统是 Windows 2000。自此开始,各种核心的操作系统和服务器组件开始纷纷采用 ETW 对其活动进行检测。现在,ETW 已成为 Windows 平台中的主要检测技术之一。越来越多的第三方应用程序也开始采用 ETW 进行检测,有些则利用 Windows 自身提供的事件。ETW 还被提取到 Windows 预处理器 (WPP) 软件跟踪技术中,为跟踪“printf”样式的消息提供了一组简单易用的宏,以便用于开发过程中的调试。
在 Windows Vista™ 上,ETW 发生了改头换面的变化,其中最重大的变化之一就是引入了统一的事件提供程序模型和 API。简而言之,新的统一 API 对跟踪结果进行日志记录并将结果写至事件查看器,为事件提供程序提供了一种一致的、简单易用的机制。同时,还添加了一些用于改善开发人员和用户体验的新功 能。在本文中,我们将介绍新的 ETW 提供程序模型,并为大家讲解开发人员应如何在基于 Windows Vista 的应用程序中采用这一新模型。
首 先要对 ETW 体系结构和使用模型进行概述,然后再讲解新的事件模型和 API。接下来对事件检测的设计和实现进行简要介绍,最后再了解用于控制 ETW 会话、处理所记录事件并分析这些事件以生成更高一级报告的随机工具。

typedef struct _EVENT_DESCRIPTOR {
USHORT Id;
UCHAR Version;
UCHAR Channel;
UCHAR Level;
UCHAR Opcode;
USHORT Task;
ULONGLONG Keyword;
} EVENT_DESCRIPTOR, *PEVENT_DESCRIPTOR;

相关文章:

  • 2021-08-18
  • 2021-11-05
  • 2021-08-21
  • 2021-09-17
  • 2021-10-16
  • 2022-12-23
  • 2021-09-30
  • 2022-12-23
猜你喜欢
  • 2021-11-06
  • 2021-05-14
  • 2022-12-23
  • 2022-12-23
  • 2022-01-31
  • 2021-11-22
  • 2022-02-12
相关资源
相似解决方案