Reconciling operating system monitoring tools clock cycle identification

Reconciling operating system monitoring tools clock cycle identification

How do you reconcile operating system monitoring tools' clock cycle identification with non-corresponding or non-awareness of the host clock and the impact on the clock dependent metrics?

This is one of the hardest parts of working with performance monitoring for virtualization – translating virtual CPU calls to physical ones. In general, most virtualization platforms attempt to pass CPU calls directly through to the underlying host physical processors. This helps reduce latency, although it does cause potential compatibility issues. In order to truly differentiate between guest and host CPU activity, you'll need information from the virtualization layer / Hypervisor. For example, Microsoft Virtual Server includes performance counters that can be used to collect data about individual VMs. (There might be an analogous method in the VMware world, but I'm not aware of the details.)

Below is a table that includes some common counters that I tend to use. In addition, when you install Virtual Server on a machine, you'll have to know objects for use. I believe they're Virtual Machine Processor and Virtual Machine Memory (I'm unable to confirm). If you need more specific information, I recommend you post to an online forum such as the Microsoft Communities site. Perhaps one of the experts in the virtualization-related forums will be able to provide you with more details. Good luck!

ObjectCounterInstancesNotes
MemoryPages/secNoneIndicates the total number of paging operations that must access the disk (also known as "hard" page faults); A high value might indicate that memory is a bottleneck
Available MBytesNoneTotal amount of physical memory available on the computer
ProcessorPercent processor timeTotal or individual CPUsShows overall CPU utilization
Interrupts / secTotal or individual CPUsShows the number of hardware-related interrupts managed by the CPU
ProcessPercent processor timeAll running processesCan be used to isolate resources used by specific processes
IO data bytes / secAll running processesShows the amount of disk IO per process
Page faults / secAll running processesShows amount of paging per process; Might indicate that more physical memory would increase performance

This was first published in October 2007