Q: Hyper-V: VMs are not using all CPU power available to the server? I have a relatively powerful dual-xeon (12 cores) server

running MS Windows Server 2016 with Hyper-V installed. I created a bunch of VMs - and none of them are really resource-demanding - except one VM I want to use for processing security cameras' feed. So I gave that VM 8 vCPUs in settings:

but even though CPU usages goes to 70% in that VM, the host has almost zero CPU usage displayed. I thought "perhaps, Windows does not report CPU usage from VMs in the host" - even though that does not really make sense to me - but the problem is that VM lacks performance. It misses frames, etc. And for 3 cameras I have, I'm sure underlying host server has more than enough computing power.

So the question is - am I doing something wrong? How do I tell a specific VM "take as much CPU as needed from the host"?

A: You have 24 logical CPUs on the host and you assign 8 CPUs to this VM, that's 33% of total host resources (that's what Hyper-V shows in the configuration dialog).
I recommend you to assign 24 vCPUs to this VM (that's for "take as much CPU as needed from the host"), but you may need to lower the "Virtual machine reserve" value if you reserved CPU on other VMs, otherwise they won't be able to start.
Additionally, you can read Measuring Performance on Hyper-V/Processor Performance, to learn about the performance counters that you can use:

[...]To measure total physical processor utilization of the host operating
system and all guest operating systems, use the "\Hyper-V Hypervisor
Logical Processor(_Total)% Total Run Time" performance monitor
counter. This counter measures the total percentage of time spent by
the processor running the both the host operating system and all guest
operating systems. [...]

Take a look at Detecting bottlenecks in a virtualized environment too, in case you ever need to detect bottlenecks

A: What you see in the host task manager is CPU consumption by management OS, not the real host CPU load. Management OS is a special 'vm' that runs on top of hypervisor ( just like other VMs) and connected to the physical console of the host. To see the real CPU consumption, use PerfMon. See https://docs.microsoft.com/en-us/windows-server/administration/performance-tuning/role/hyper-v-server/detecting-virtualized-environment-bottlenecks#processor-bottlenecks for the counters.
