Understanding compute demand & performance on Windows (VM)

How can we obtain the metrics of performance and computational requirements for a
compute-heavy workload that must run on Windows?

Background: This question is related to how we can size a VM “just right” for a given computational workload. And we want to make it easy for researchers to obtain these metrics on their own.

Some scoping would be helpful: I am interested specifically in compute-heavy workloads that will be run under a VM, but it does not have to be so. Why VM? Because sometimes that’s what available to us–no access to bare metals. Let’s limit ourselves to Windows 8 and up.

I understand that Windows have a built-in Task Manager and it can show CPU utilization (per core) and memory usage (total and per-application). I tend to doubt whether the per-application memory usage shown on the Task Manager is really honest. Any experience on this? Is there a tool to obtain CPU & memory utilization of an application as a function of time? Do we only have the option of watching the “task manager movie” as the computation goes on?

Wirawan

Hello!

So! A few things:

  • Generally, try to rely on performance metrics from the hypervisor, where possible. Particularly for CPU metrics. These may be available from some API your hypervisor or VM management infrastructure provides, or from performance counters in each guest
  • Windows and third party software often provide a variety of performance counters. Which counters to examine, and what the values mean might take some reading/research, but they are available. Poke around perfmon, or PowerShell

Good luck!