Question

I'm looking for a way to get the current "load" (as in Unix: The number of processes which are waiting for the CPU/data) on Windows. Is that possible at all?

Background: By default, Windows will tell you how much the CPU is utilized or the network traffic, RAM used, etc. From a performance point of view, this is useless. I don't care that 97% of my CPU is idle when the virus scanner blocks my IDE. I want to know whether processes are blocked waiting for some resource.

Was it helpful?

Solution

System\Processor Queue Length counter will tell you how many threads are waiting for CPU resources. LogicalDisk\Current Disk Queue Length will tell you how many requests are pending disk I/O.

EDIT: You can graph these values using "Reliability and Performance Monitor" in Vista or "perfmon.exe" on XP. Unix gives you time-averaged values over various intervals; perfmon has a averaged counters (configurable sample interval for all counters together) or you can just get a snapshot of the current queue. I don't think there is a way to the a EMA (exponential moving average) like Unix gives you.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top