ETW

  • ETW(Event trace for Windows)是微软提供的追踪和记录由应用程序和内核驱动事件的机制。ETW已经由Windows操作系统实现了,所以我们无需对其编程。并且在此基础上提供给了开发者一些快速、可靠、通用的事件追踪特性。

ETW架构图(取自MSDN)

  • 下面解释一些ETW架构中使用到的概念

    • Providers(事件提供者):具体是指提供事件的一些对象,最终抓取到的事件都是来源于它们的
    • Consumers(事件收集者):有时也称Collector,具体是指收集事件的一些对象,这个一般在WPR或者是Xperf中已经编写好了,我们不需要担心这一部分。
    • Session(事件追踪会话):可以理解成追踪事件的一次过程,此时追踪事件的所有数据都还在内存当中,到最后结束追踪的时候
    • Controllers(事件追踪控制者):开启或关闭事件追踪会话

Kernel Provider ···· User Provider

  • 从字面的含义去解释它就是内核级(Kernel)用户级(User)的事件提供者,或者更简单一点,系统已经定义好的Provider就称为System ProviderKernel Provider。而由开发者自定义的Provider就称为User Provider

System Provider ···· Kernel Session ···· Kernel Event

  • System Provider:真名是Windows Kernel Trace,顾名思义,是一个内核级别的事件提供者,因此我们可以说只要你在使用Windows操作系统你就可以追踪到它提供的事件。并且System Provider提供的事件只能被Kernel Session追踪
  • Kernel Session:我们之前提到过Session的概念,不难理解Kernel Session也是一次事件追踪的过程,只不过Kernel Session这次过程追踪的事件都是由System Provider提供的。
  • Kernel Event:是由System Provider产生的内核事件,交给Kernel Session追踪

我们可以通过如下步骤
1)找到命令提示符以管理员身份打开

2)使用logman命令查看System Provider的情况

logman query providers "Windows Kernel Trace"

  • 注:这里的keyword字段可能会令大家迷惑。这里可以大概模拟一个情形,由于Provider提供了许多类型的事件,所以如果我们对其中所有的事件都进行追踪将会使得最后的.etl文件非常大,从而浪费磁盘空间。所以keyword的实际上相当于一种过滤机制,让开发者可以只追踪一小部分的事件。

3)使用logman命令查看session的情况

logman -ets


命令行方式使用WPR

在我的《如何使用WPRWPA记录系统状态》博文中已经提到了如何用UI(User interface)的方式开启记录和关闭记录。这里不做赘述。下面介绍通过命令行方式使用WPR的方法。

1)首先我们可以通过如下命令查看wpr提供的内置监控配置文件(built-in profile)

wpr -profiles

  • 注:该命令必须在(以管理员身份打开的cmd.exe中)执行,否则会拒绝访问

2)profile配置文件定义了开启哪些Provider,我们可以通过如下命令查看CPU profile开启了哪些Provider

wpr -profiledetails CPU

3)通过上述的两个命令,我们可以选取一个内建的profile来开启记录,比如选取CPU profile,命令如下

wpr -start CPU

4)等待几秒,执行wpr -stop xxx.etl命令保存日志文件

wpr -stop test.etl
  • 注:test.etl文件会生成在你cmd.exe的工作路径下,如下图


ETW架构以及WPT(Windows Performance Toolkit)命令行的使用相关推荐

  1. Windows Performance Toolkit(WPT)入门

    今天花点时间了解了一下WTP, 看到了一篇非常好的入门文章.看起来WTP对windows本身的性能状况分析很有用.目前还搞不懂如何将其应用在windows平台上的application. 先转下这篇入 ...

  2. 用Windows Performance Toolkit(WPT)分析Vista系统

    本文独家授权IT专家网,版权所有请勿转载! 原文链接:[url]http://winsystem.ctocio.com.cn/vista/102/8712602.shtml[/url] Microso ...

  3. 利用WPT(Windows Performance Toolkit)进行程序的性能分析

    Windows Performance Toolkit WPT(Windows Performance Toolkit)是微软提供的一套用于分析程序性能的工具包,它其中包含两个主要的工具 WPR(Wi ...

  4. Windows Performance Toolkit

    http://bigasp.com/archives/606 https://randomascii.wordpress.com/category/xperf/ ADK 8.0  (C:\Progra ...

  5. Windows中的命令行提示符里的Start命令执行路径包含空格时的问题

    转自:http://www.x2009.net/articles/windows-command-line-prompt-start-path-space.html 当使用Windows 中的命令行提 ...

  6. windows下 cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”的解决办法

    Mask R-CNN学习(三):windows下 cl: 命令行 error D8021 :无效的数值参数"/Wno-cpp"的解决办法 2018年07月20日 11:11:06 ...

  7. windows下php命令行模式错误信息

    windows下php命令行模式遇错误一闪而过自动关闭窗口,无法看清报错内容.此时,可手动开启一个窗口,然后运行相关代码即可. 转载于:https://www.cnblogs.com/shanhesh ...

  8. windows下cmd命令行显示UTF8字符设置(CHCP命令)

    点我进入原文 windows下cmd命令行显示UTF8字符设置(CHCP命令) 在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在CMD.exe命令行窗口(所谓的DOS窗口)中不能 ...

  9. Windows 7 中文版命令行如何修改字符编码为UTF-8?

    Windows 7 中文版命令行如何修改字符编码为UTF-8? CMD 之后,命令行有时候无法显示中文,是乱码,于是我右键查看了编码,是GBK编码.如何修改为UTF-8 如果要更改为 UTF-8,则需 ...

  10. 解决windows系统powershell命令行无法使用代理的问题

    解决windows系统powershell命令行无法使用代理的问题 有时在用命令行下载一些项目的包时会出现无法连接或者下载的很慢的问题,遇到这种情况可以考虑设置powershell使其可以使用系统代理 ...

最新文章

  1. ora-1031解决一例
  2. JS保留4位小数(合集)
  3. wireshark1.8捕获无线网卡的数据包——找不到无线网卡!
  4. python中的成员运算符_在Python中使用成员运算符的示例
  5. .NET 异步,你也许不知道的5种用法
  6. CSS和CSS3中的伪元素和伪类(总结)
  7. open***成功配置思考
  8. BZOJ4543[POI2014]Hotel加强版——长链剖分+树形DP
  9. C# 修改Config文件,增删查改
  10. 用友T6固定资产模块处理菜单中的项目会突然消失
  11. Linux netfilter hook源码分析(基于内核代码版本4.18.0-80)
  12. BBS.peidy.com版本
  13. 电驴链接服务器老是无响应,全部服务器无响应!!!
  14. 【渝粤教育】国家开放大学2018年秋季 1355T高级英语(2) 参考试题
  15. 【MySQL从删库到跑路】-1-安装MySQL-5.7
  16. 无法解析的外部符号 __imp____iob_func
  17. Java做图片上传、文件上传、 批量上传、 Base64图片上传 。附上源码
  18. 制作微信H5互动小游戏如何确认主题?
  19. 代码随想录Day01 | LeetCode704.二分查找、LeetCode27.移除元素
  20. 耗时十年!精心整理的Java高级开发需要的分布式技术

热门文章

  1. 小米android手机密码忘了怎么解锁,小米5忘记了锁屏密码怎么办 小米5忘记锁屏密码的解决方法...
  2. python营业数据分析_基于pandas python的美团某商家的评论销售(数据分析)
  3. 验证boost是否安装成功
  4. Python实现壁纸批量下载
  5. 物竞党的福利来啦~如何学物理竞赛获得省一及以上的成绩?
  6. linux spec文档解析
  7. java ssl 报错 Received fatal alert: illegal_parameter
  8. QGraphicsItem设置绘图区域和鼠标响应以及碰撞检测区域,并实现碰撞检测
  9. 好用的工具介绍之——免费pdf编辑及英文pdf翻译成中文
  10. 2021年上海会展行业发展现状及重点企业对比分析:展览面积为1086万平方米,同比减少1.97%[图]