Help with win_cpu plugin - Percentage Idle time is reported more than 100%


I need help in understanding why perfmon is reporting Processor %Idle Time greater than 100.

Below is sample data points reported from one of our machine.

 SELECT Percent_Idle_Time, Percent_Processor_Time, Percent_User_Time, Percent_Interrupt_Time, Percent_Privileged_Time, Percent_DPC_Time FROM "two_months"."win_cpu" WHERE ("host" = 'AMZGCAPP7')  AND time >= 1569890400000ms and time <= 1569890520000ms AND Percent_Idle_Time > 100
    name: win_cpu
    time                 Percent_Idle_Time  Percent_Processor_Time Percent_User_Time Percent_Interrupt_Time Percent_Privileged_Time Percent_DPC_Time
    ----                 -----------------  ---------------------- ----------------- ---------------------- ----------------------- ----------------
    2019-10-01T00:41:15Z 140.2029571533203                         0                 0                      0                       0
    2019-10-01T00:41:15Z 122.74894714355469                        0                 0                      17.539499282836914      0
    2019-10-01T00:41:15Z 140.2930908203125                         0                 0                      0                       0
    2019-10-01T00:41:15Z 140.29782104492188                        0                 0                      0                       0

A simple google search didn’t give any explanation of Idle Time counter. Can anyone please guide me to right place.

Also which is the correct counter to see CPU utilization? Is it Processor\% Idle Time or

Processor\% Processor Time

Here is what I found on the % Idle Time:

This counter provides a very precise measurement of how much time the disk remained in idle state, meaning all the requests from the operating system to the disk have been completed and there is zero pending requests. This is how it’s calculated, the system timestamps an event when the disk goes idle, then timestamps another event when the disk receives a new request. At the end of the capture interval, we calculate the percentage of the time spent in idle. This counter ranges from 100 (meaning always Idle) to 0 (meaning always busy).

Thanks @katy for your response.

Your response leaves me confused. I’m querying win_cpu measurement. My understanding is Percent_Idle_Time in win_cpu measurement gives percentage of time CPU was idle.

To find the disk idle time I have to query win_disk measurement.

Please clarify?

Just to throw another sample in, on my system all CPUs have less than 100% idle, would be interested to hear if you see similar readings from typeperf:

typeperf "Process(*)\% Idle Time"

Regarding the relationship between Processor Time and Idle Time, I think the formula is:

ProcessorTime = 100 - IdleTime
1 Like