Every now and then i receive questions about how the different Organization virtual datacenter (Org vDC) compute (CPU and Memory) settings affects the vSphere layer including the vSphere cluster resource pool backing the Org vDC and the virtual machine (VM).
Based on the above i have decided to put together a series of three blog posts where i’ll explain the behavior of the vCD, version 5.1.2, allocation models regarding the compute capacity (CPU and Memory). There are three allocation models available in vCD includes:
- Allocation Pool
- Pay As You Go
- Reservation Pool
This blog post is dedicated to the Org vDC allocation model Pay As You Go (PAYG).
The second blog post dedicated to the Org vDC allocation model Allocation pool can be found here and the third blog post dedicated to the Org vDC allocation model Reservation Pool can be found here.
For the purpose of this blog post i created an Org vDC using the allocation model PAYG keeping its default values apart from the CPU quota and Memory quota configuration which by default uses the Unlimited option.
The “CPU resources guaranteed”, “vCPU speed”, “Memory resources guaranteed” applies to all vApp VMs in the Org vDC meaning you can not have e.g. a vCD controlled vCPU speed of 1 GHz for VM A and a vCD controlled vCPU speed of 2 GHz for VM B.
The vSphere cluster resource pool, PAYG-01 (bf956949-4101-4baf-bdef-eca22d34ab56), created when the Org vDC was created gets the following settings.
The vSphere cluster resource pool CPU and Memory Reservation type expandable is enabled. This enables the vSphere cluster resource pool backing the Org vDC to allocate resources, make reservations, from the overlying vSphere cluster resource pool which in most cases is the vSphere cluster root resource pool (the vSphere cluster itself).
I created a vApp including 1 VM with 1 vCPU and 1024 MB RAM. Let’s take a look at the vApp VM settings which are viewed from vSphere web client since the resource allocation per VM is not managed through the vCD UI for the PAYG Org vDC based VMs.
vApp VM CPU settings:
The vApp VM vSphere CPU Limit setting is controlled by the Org vDC CPU setting “vCPU speed” and the number of vApp VM vCPUs.
The vApp VM vSphere CPU Reservation setting is controlled by the Org vDC CPU settings “CPU resources guaranteed” and “vCPU speed” plus the number of vApp VM vCPUs using the formula:
- “Number of vApp VM vCPUs” X “Org vDC vCPU speed” X ”Org VDC CPU resources guaranteed”
vApp VM Memory settings:
The vApp VM vSphere Memory Limit setting is controlled by the vApp VM configured amount of RAM. Not managed by a vCD setting.
The vApp VM vSphere Memory Reservation setting is controlled by the Org vDC “Memory resources guaranteed” setting together with the vApp VM configured RAM using the formula:
- “vApp VM RAM configuration” X ”Org vDC Memory resources guaranteed”
There is no change to the vSphere cluster resource pool when a vApp is created and left powered off but the vSphere cluster resource pool reservation settings will reflect the vApp VM reservation configuration when the vApp VM is powered on.
As seen below the Memory Reservation value is a bit higher compared to the vApp VM RAM reservation since it reflects both the Memory Reservation and the VM Overhead.
The vSphere cluster resource pool settings does not reflect the vApp VM Limits, only Reservations.
The vSphere cluster resource pool configuration will change every time a:
- vApp is powered on
- vApp is powered off
- vApp VM is powered on
- vApp VM is powered off
The Org vDC CPU allocation used and Memory allocation used are changed when a vCPU and/or GB RAM is powered on and powered off. The picture below reflects the Org vDC after powering on my vApp.
When generating, what the VM thinks 100% CPU utilization the actual number of MHz given to the VM is 1000 MHz as shown by the below picture below meaning the vCPU speed limit of 1 GHz is applied.
The Performance tab in the vSphere Web Client.
Task Manager from within the vApp VM.
The below figure shows the vSphere cluster resource pool configuration when another (exact copy of the first vApp) is powered on.
The below figure shows the Org vDC CPU allocation used and Memory allocation used after the vApp has been powered on.
Summary
- The vApp VM configuration options CPU Reservation, CPU Limit, Memory Reservation and Memory Limit are controlled by vCD and applied per vApp VM.
- The vSphere Cluster resource pool configuration options CPU Reservation and Memory Reservation are controlled by vCD.
- Org vDC CPU Allocation Used is determined by:
- “the number of vCPUs powered on” x “vCPU Speed”
- Org vDC CPU Quota controls how many “vCPUs” X “vCPU Speed” the Org vDC can power on.
- Org vDC “CPU resources guaranteed” controls the vApp VM vCPU Reservation. The values applies per vCPU. The same value is added to the vSphere cluster resource pool, backing the Org vDC, CPU Reservation.
- Org vDC “vCPU Speed” determines the maximum number of GHz available for a vCPU meaning the vApp CPU Limit.
- Org vDC Memory allocation used is determined by:
- The number of GB RAM powered on
- Org vDC Memory quota controls how many GB RAM the Org vDC can power on.
- Org vDC Memory resource guaranteed controls the vApp VM Memory Reservation.
- Org vDC maximum number of VMs controls how many VMs the Org vDC can power on unless the CPU and or Memory quota reaches its maximum value before the Maximum number of VMs is reached.
- It is possible to set Org vDC configuration options “CPU resource guaranteed” and “Memory resource guaranteed” to 0%. The vApp VM memory overhead will still be configured per the vSphere cluster resource pool level but the settings will avoid:
- CPU reservations on the vApp VM.
- Memory Reservations on the vApp VM.
- CPU reservation on the vSphere cluster resource pool backing the Org vDC.
2 pings
vCloud Director Allocation Model settings – Allocation Pool | vcdx56
August 26, 2013 at 2:07 pm (UTC 0) Link to this comment
[…] This will be the second article in the blog series about how the different vCloud Director (vCD), version 5.1.2, Organization virtual datacenter (Org VDC) allocation models affects the vSphere layer including the vSphere cluster resource pool backing the Org vDC and the virtual machines (VMs). The first blog post in the series covered the Pay As You Go allocation model and can be found here. […]
vCloud Director Allocation Model settings – Reservation Pool | vcdx56
September 3, 2013 at 4:55 pm (UTC 0) Link to this comment
[…] first blog post in the series covering the Pay As You Go allocation model and can be found here and the second blog post in the series covering the Allocation Pool allocation model can be found […]