2013-03-20 124 views
2

我正在编写一个客户端来从Windows机器收集性能数据。这些数据将被发送到存储信息并以图形方式显示的中央服务器。在Perfmon中找到的CPU百分比

我正在使用windows性能API来收集系统数据。但现在我有一个小问题。服务器需要知道我发送的数据是如何相互关联的,并且我无法在网络上找到有关CPU计数器的任何有用信息。我的问题是这些计数器如何相互关联。

%处理器时间+%的空闲时间= 100%

这不是太硬,找出但我不能找到象中断的其它百分比值的任何信息时间,特权时间或用户时间。例如,如何将这些与处理器时间相关联。最终目标是添加所有这些值,并最终获得100%。

在此先谢谢您,并对我的英语感到抱歉,希望我的问题很明确。

回答

3

This article makes clear(段落结尾 “将是15%”),其

%特权时间+%用户时间+%空闲时间= 100%

这意味着所有其他CPU时间测量是这三种测量中的一种的子集。 perfmon中的“计数器描述”描述了其中大多数人的关系,例如:

%DPC时间是%特权时间的一个组成部分,因为DPC在特权模式下执行。

%中断时间没有像这样记录,但它显然也是特权时间的一个组件。

+0

嗨,我还在测试。由于四舍五入/准确性问题,计算%特权时间+%用户时间+%空闲时间时,似乎得到不正确的结果。然后我只用原始计数器来计算百分比,我接近100%(我得到的结果是99.98%)。但我仍然试图从其他值计算总特权时间,因为我不能100%确定哪些值与特权时间有关。 – roohan 2013-03-26 08:16:45

+0

这是预期的。这些计数器并不完全准确,所以它们不会精确到100%。我不认为你可以从其他计数器组装特权时间。这将是类似“dpc时间+中断时间+其他未分类的特权时间”,而后者不是一个单独的计数器。 – arx 2013-03-26 09:20:35

+0

是的,我想我无法在windows上获得这些细节。谢谢您的回答。 – roohan 2013-03-26 16:15:58