Dynamic CPU Allocation for Virtual Machines
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current IaaS platforms face challenges in efficiently allocating physical CPUs to virtual machines, particularly in balancing resource utilization and meeting varying service requirements such as load and latency needs, leading to potential resource inefficiencies and unavailability of physical CPUs.
Innovation Solution
A server platform with a resource allocation determination unit and virtual machine generation management unit that dynamically allocates physical CPUs by instructing virtual CPUs to share, occupy, or pin resources based on predetermined load and latency requirements, and migrates virtual machines to optimize CPU usage across compute nodes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a virtual CPU is pinned to a physical CPU using the dedicated policy, then latency requirements are met and cache hit ratio is maintained, but resource utilization decreases and excess resources occur when latency requirements are not strict
Solution Approach 1:
The system dynamically adjusts CPU allocation policies based on service requirements. The determination unit selects between dedicated policy (pinning), shared policy (occupying without pinning), and flexible shared policy based on real-time assessment of latency requirements and load conditions, making the resource allocation adaptive rather than static
Solution Approach 2:
The system changes the allocation parameters by introducing three distinct policies with different degrees of CPU attachment: pinned (strict attachment), occupied but not pinned (moderate attachment), and shared (no attachment). This parameterization allows optimization based on service-specific requirements
2Productivity
If a virtual CPU shares a physical CPU using the shared policy, then resource utilization increases, but the virtual CPU cannot be pinned and processes are mixed with other virtual CPUs
Solution Approach 1:
The system applies different quality levels of CPU allocation to different virtual machines based on their specific requirements. Some VMs receive pinned CPUs for strict isolation and latency requirements, while others receive shared CPUs for maximum resource utilization, creating localized optimization rather than uniform allocation
3Productivity
If physical CPUs are occupied by virtual CPUs, then resource availability decreases, but resource utilization increases
Solution Approach 1:
The system implements automatic resource reallocation through the determination unit that monitors CPU availability and automatically migrates or reallocates virtual CPUs when physical CPUs become unavailable, eliminating the need for manual intervention and maintaining system operation
Data Source
AI summary
A CPU is allocated in view of service requirements of a virtual machine. An IaaS platform generates a virtual CPU and a virtual machine on a physical CPU of a compute node and allocates the virtual CPU to the virtual machine. This IaaS platform includes a resource allocation determination unit 32 configured to generate an instruction to cause the virtual CPU allocated to the virtual machine to occupy a physical CPU of a designated compute node in a case where load to be imposed on a process which is to run on the virtual machine is higher than a predetermined value, and generate an instruction to pin the virtual CPU at the physical CPU in a case where latency requirements of the process are stricter than a predetermined value, and generate an instruction not to pin the virtual CPU at the physical CPU in a case where the latency requirements of the process are laxer than a predetermined value, and a virtual machine generation management unit 34 configured to generate a new virtual machine on the physical CPU of the compute node in response to the instruction from the resource allocation determination unit.


