Configuring Resource Throttling for VMM
Updated: May 13, 2016
Applies To: System Center 2012 SP1 - Virtual Machine Manager, System Center 2012 R2 Virtual Machine Manager
System Center 2012 – Virtual Machine Manager (VMM) provided some rudimentary resource throttling features. Starting with VMM in System Center 2012 SP1, these features were enhanced with processor (CPU) and memory throttling capabilities. These additional features can help administrators and cloud hosters to ensure that CPU and memory resources are allocated and used effectively, and that incorrectly balanced resources do not cause virtual machines to run ineffectively.
You can set the weight of a virtual processor to provide the processor with a larger or smaller share of CPU cycles, using the following properties:
High, Normal, Low, Custom—Specifies how the CPU is distributed when contention occurs. Higher priority virtual machines will be allocated CPU first.
Reserve CPU cycles (%)—Specifies the percentage of CPU resources that are associated with one logical processor that should be reserved for the virtual machine. This is useful when a virtual machine runs applications that are particularly CPU-intensive and you want to ensure a minimal level of CPU resources. A zero setting indicates that no specific CPU percentage is reserved for the virtual machine. This setting is only supported for Windows Server 2012.
Limit CPU cycles (%)—Specifies that the virtual machine should not consume more that the indicated percentage of one logical processor. This setting is only supported for Windows Server 2012.
The settings for these properties ensure that virtual machines can be prioritized or deprioritized when CPU resources are overcommitted. For highly intensive workloads, more virtual processors can be added, especially when a physical CPU is close to its upper limit.
Memory throttling helps to prioritize or deprioritize access to memory resources in scenarios where memory resources are constrained. When memory usage on a host is high, then the virtual machines with a higher memory priority are allocated memory resources before the virtual machines with a lower priority. If you specify a lower priority, it might prevent a virtual machine from starting when other virtual machines are running and the available memory is low. You can set the memory priority settings and thresholds as follows:
Static—The amount of static memory that is assigned to a specific virtual machine
Dynamic—Dynamic memory settings include:
Start-up memory—The amount of memory that is allocated to the virtual machine when it starts up. It should at least be set to the minimum amount of memory that is required to run the operating system and applications on the virtual machine. Dynamic memory will adjust the memory amount as required.
Minimum memory—The minimum amount of memory that is required for the virtual machine. It allows an idle virtual machine to scale back the memory consumption below the start-up memory requirement. The available memory can then be used by other virtual machines.
Maximum memory—The memory limit that is allocated to the virtual machine. The default value for Windows Server 2012 is 1 TB.
Memory Buffer Percentage—Dynamic memory adds memory to a virtual machine as required, but there is a chance that an application might demand memory more quickly than dynamic memory allocates it. The memory buffer percentage specifies the amount of available memory that will be assigned to the virtual machine if needed. The percentage is based on the amount of memory that is actually needed by the applications and services that run on the virtual machine. It is expressed as a percentage because it changes depending on the virtual machine requirements.
The percentage is calculated as follows: Amount of memory buffer = memory needed by the virtual machine/ (memory buffer value/100). For example, if the memory that is committed to the virtual machine is 1000 MB and the buffer is 20%, then an additional buffer of 20% (200 MB) will be allocated for a total of 1200 MB of physical memory allocated to the virtual machine.
Memory weight—The priority that is allocated to a virtual machine when the memory resources are in full use. If you set a high priority value, it will prioritize a virtual machine when the memory resources are allocated. If you set a low priority, a virtual machine might be unable to start if memory resources are insufficient.
For information about how to configure processor and memory throttling, see How To Configure Processor and Memory Throttling for VMM.