Using Hyper-V Virtual Machine Processor Resource Control

In this post I will show you why and how you can use the virtual processor resource control settings to configure Hyper-V virtual machine reservations, limits, and weights.

How a Virtual Machine Uses Host Logical Processors

A logical processor (LP) is a thread of execution on a host. Let’s look at three example hosts.

Host Name Physical Processors Hyper-threading Enabled? Logical Processors
Host1 Dual Intel 4-core (8 cores) No 8
Host2 Dual Intel 8-core (16 cores) Yes 32
Host3 Dual AMD 12-core (24 cores) N/A 24


Host1 has eight cores with Hyper-threading disabled. There are eight threads of execution or LPs on that host. Host2 has 16 cores; each core has two threads thanks to Hyper-threading, so there are a total of 32 LPs on that host. Host3 has AMD processors (Hyper-threading is an Intel CPU function) with a total of 24 cores; without Hyper-threading there are 24 LPs on this host.

Sponsored Content

Passwords Haven’t Disappeared Yet

123456. Qwerty. Iloveyou. No, these are not exercises for people who are brand new to typing. Shockingly, they are among the most common passwords that end users choose in 2021. Research has found that the average business user must manually type out, or copy/paste, the credentials to 154 websites per month. We repeatedly got one question that surprised us: “Why would I ever trust a third party with control of my network?

Note: Hyper-threading does not double the power of a processor. It allows more multitasking and can add a small percentage to a host’s capacity with recent processors. Only on older processors does enabling Hyper-threading have a negative impact on performance for Hyper-V.

When a virtual machine runs on a host, it is sharing the resources of that host, including the processor capacity. A virtual machines virtual CPUs (vCPUs) do not permanently sit on the LPs that run them. Just like with applications on your PC, each virtual machine gets a slice of time to run. The VM is swapped on and off the physical processors of the host to allow other VMs to share those LPs. This might sound bad at first, but virtualization exists in the first place because the majority of servers were greatly underusing their CPU capacity. The virtual machines swap in/out so quickly that we humans do not normally notice. But sometimes those virtual machines need to be able to guarantee physical processor capacity to more horsepower-hungry services.

how virtual machines use logical processors
How virtual machines queue up to run on a host’s shared logical processors.

Virtual Processor Resource Control

Hyper-V gives us the ability to manipulate how any virtual machine’s vCPUs utilize the LPs of a host. This is known as resource control. You can configure a virtual machine by editing the settings and browsing to Processor. Note that the VM must be powered down to edit these settings.

This is the location where you can configure the number of vCPUs that a VM has. Doing this allows a VM’s guest OS to have the ability to schedule more or fewer parallel tasks. This is useful for multithreaded services such as SQL Server or SharePoint. Doing this needlessly blocks the LPs of a host from being used by other VMs while the over-resourced VM is executing.

Manipulating the scheduling of virtual processors
Virtual processor resource control settings.

Here is also where you will find the Resource Control settings where you can control how LP capacity is scheduled for your virtual machine.

Virtual Machine Reserve (Percentage) is probably the most interesting setting. This is a guarantee of LP capacity for the virtual machine. If your virtual machine has two vCPUs and you set this setting to 100 percent then that virtual machine will be guaranteed two logical processors. No other virtual machines will be scheduled for those logical processors. This is useful for processor-hungry services such as SharePoint. Note that:

  • Some software support statements urge you to enable this setting to 50 or 100 percent.
  • This is probably how Windows Azure is enabling non-sharing of processors to the small (1 vCPU) and larger virtual machine specifications.

The Percent Of Total Resource display is a calculation of how much of the host’s total LP capacity will be assigned to this virtual machine. This setting is important to note – if you reserve 100 percent for every virtual machine then you won’t put many virtual machines onto each host!

This setting is rarely looked at in the real world by most virtual administrators, and really should only be configured for those services that require it. In a cloud there should be a higher cost for any templates that are configured with this setting.

Virtual Machine Limit (Percentage) restricts how much of the assigned LPs that this virtual machine can consume. By default, a virtual machine can use up to 100 percent of the capacity; this is used in conjunction with virtual machine processor pressure (or demand) along with the Relative Weight setting to balance the scheduling of virtual machines on the LPs.

I have never seen Virtual Machine Limit (Percentage) being used outside of a “what does it do?” scenario. It might be useful if some troublesome virtual machine does run away from time to time. Remember that you can only edit these settings while a virtual machine is powered off.

Relative Weight is used to manipulate the scheduling of virtual machines that are competing for shared (by default) LP resources. This setting is 100 by default. You can skew the weight of a VM by changing the setting. Valid values range from 0 to 10000.

Related Topics:

Aidan Finn, Microsoft Most Valuable Professional (MVP), has been working in IT since 1996. He has worked as a consultant and administrator for the likes of Innofactor Norway, Amdahl DMR, Fujitsu, Barclays and Hypo Real Estate Bank International where he dealt with large and complex IT infrastructures and MicroWarehouse Ltd. where he worked with Microsoft partners in the small/medium business space.
Don't leave your business open to attack! Come learn how to protect your AD in this FREE masterclass!REGISTER NOW - Thursday, December 2, 2021 @ 1 pm ET

Active Directory (AD) is leveraged by over 90% of enterprises worldwide as the authentication and authorization hub of their IT infrastructure—but its inherent complexity leaves it prone to misconfigurations that can allow attackers to slip into your network and wreak havoc. 

Join this session with Microsoft MVP and MCT Sander Berkouwer, who will explore:

  • Whether you should upgrade your domain controllers to Windows Server
    2019 and beyond
  • Achieving mission impossible: updating DCs within 48 hours
  • How to disable legacy protocols and outdated compatibility options in
    Active Directory

Sponsored by: