System.cpu.usage behavior with multiple cores

Started by xenth, April 18, 2008, 05:54:38 PM

Previous topic - Next topic

xenth

Some questions about the parameters:

System.cpu.usage & System.CPU.Usage($1)

The system.cpu.usage readout is fine, but what will happen if I run this parameter on a node with multiple cores?  I know the system.cpu.usage($1) is used for multiple CPU'S but running this parameter on one of my dual core machines gives me incorrect information.   I'm just using "0" and "1" parameter for this, is this correct? and where can I find the core ID?

What's the deal? What parameter should I be using for monitoring CPU LOAD on DUAL CORE machines?   And which parameter for monitoring CPU LOAD on Hyperthreading machines?

Just a little confused  :)

Victor Kirhenshtein

All System.CPU.Usage parameters works with logical processors - i.e. single physical processor with hyper threading will be seen as two logical processors, quad-core processor will be seen as 4 logical processors, and dual-core processor with hyper threading will be seen as 4 logical processors.

System.CPU.Usage gives you an average utilization for all processors. System.CPU.Usage(*) accepts zero-based logical CPU number as an argument. For system with 4 logical processors you will be able to use ids 0, 1, 2, and 3.

That was about CPU utilization. If we come to CPU load, there are no parameters for per-processor load, because system has only one process run queue, and usually processes can be dispatched for execution to any free CPU.

Hope this helps!

Best regards,
Victor

xenth

Thank you, I tested this with prime95 and you are correct, as always  :)