如何在Windows中获取每个进程磁盘活动

时间:2014-02-25 17:38:38

标签: c# performance monitoring

我需要提取给定进程的磁盘统计信息,我可以获取列出的进程并使用WMI和PerformanceCounters获取列出的CPU和内存等整体信息。但是这些信息都是捆绑在一起的,有没有办法在每个进程中提取这些数据。有点像Windows资源监视器?

先谢谢

1 个答案:

答案 0 :(得分:2)

如果您需要实时数据,则应实施ETW监听器。

ETW是在Windows中跟踪性能信息的方式。它支持Windows 2000。

Windows中的每个组件都会报告ETW事件(如果有一个侦听器在等待数据)。

例如,磁盘信息,内存(消耗,页面错误等),争用,CPU使用情况(每个核心,每个线程,每个应用程序,甚至对磁盘或网络的单个IO请求)。 驱动程序使用它,.NET CLR使用它(获取JIT或GC统计信息),示例是无穷无尽的。

我建议您首先下载XPerf \ Xperf视图,或Windows性能记录器+分析器,PerfView,尝试查看您正在寻找的信息,然后开始创建您的托管ETW监听器。

您可以从这个blog post开始,或者搜索Vans Morison(负责MS中托管ETW提供商和消费者)的ETW帖子。

希望这有帮助, 奥菲尔。