💡
原文英文,约1300词,阅读约需5分钟。
📝
内容提要
在生产应用中,使用ETW监控高频事件时出现事件丢失。通过logman工具识别会话和提供者,创建并运行并行“间谍”会话,分析事件数据,发现某些事件ID导致大量丢失。解决方案是限制事件频率或降低监控详细程度。
🎯
关键要点
- 在生产应用中,使用ETW监控高频事件时出现事件丢失。
- 事件丢失是一个关键问题,可能导致无法获取重要数据。
- 需要识别产生最多事件的提供者和瓶颈所在。
- 使用logman工具识别现有会话和提供者。
- 通过创建并行的“间谍”会话来监控事件数据。
- 分析事件数据时发现某些事件ID导致大量丢失。
- 解决方案是限制事件频率或降低监控详细程度。
- ETW依赖多个组件协同工作,包括控制器、提供者、内核会话和消费者。
- 如果提供者生成事件的速度超过消费者处理的速度,就会导致事件丢失。
- 使用tracerpt工具分析ETW日志文件,能够获取事件计数和丢失事件的总数。
❓
延伸问答
ETW是什么,它的主要功能是什么?
ETW(事件跟踪Windows)是一种用于监控和记录高频事件的工具,能够帮助开发者获取系统和应用程序的性能数据。
在使用ETW时,事件丢失的原因是什么?
事件丢失通常是因为提供者生成事件的速度超过消费者处理的速度,导致内核丢弃最新的事件。
如何使用logman工具识别ETW会话和提供者?
可以通过命令'logman query -ets'列出所有正在运行的ETW会话,并使用'logman query "MyDebugSession" -ets'查询特定会话的提供者。
如何创建并运行一个并行的ETW“间谍”会话?
使用命令'logman create trace "SpySession" -pf "providers.txt" -o "C:\temp\spy_events.etl" -ets'可以创建并行的间谍会话,记录事件数据。
如何分析ETW日志文件以获取事件丢失的数据?
可以使用tracerpt工具分析ETW日志文件,运行命令'tracerpt spy_events.etl -y -summary summary.txt'来获取事件计数和丢失事件的总数。
解决ETW事件丢失的方案有哪些?
解决方案包括限制事件频率、批量处理多个事件或降低监控详细程度,以减少事件丢失。
➡️