How oversubscription works in ThinkAgile CP

When compute oversubscription is used, the ThinkAgile CP hypervisor must invoke processor scheduling to distribute processor time to the VMs, or application instances, that need it.

For example, if we oversubscribe by 5:1, then each physical processor core is supporting five vCPUs, causing a drop in performance.

Note: In ThinkAgile CP, we refer to a VM as an application instance.

To handle and mitigate the effects of memory oversubscription, ThinkAgile CP uses a technique called memory ballooning. A memory ballooning driver is installed inside the guest VM. Idle or unused memory pages are assigned to the driver. The balloon driver then “pins” those pages and reports this back to the hypervisor. If the host becomes low on physical memory, guest memory pages are assigned to the balloon driver. The host can then reclaim these memory pages to address the needs of other VMs that need the RAM. When a VM has RAM to spare, it can transparently share that RAM with other VMs on the same host. This enables the host to achieve higher levels of VM density.

The ballooning process brings to RAM a sort of thin provisioning capability. The ballooning process does require some processing overhead, which is imperceptible. Swapping to disk is used as a last resort. Swapping is a process by which the hypervisor moves the least-used memory pages to disk. Those memory pages are still accessible, but when they are required, they must be retrieved from disk. Swapping noticeably degrades the host’s overall performance.