Dynamic CPU Allocation for Virtual Machines

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvelatency requirementVSAvoidresource utilization
Core Design Contradiction:
ReliabilityVSProductivity

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

Inventive Principle:
Principle #15Dynamics

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

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improveresource utilizationVSAvoidprocess isolation
Core Design Contradiction:
ProductivityVSReliability

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

Inventive Principle:
Principle #3Local quality

3Productivity

If physical CPUs are occupied by virtual CPUs, then resource availability decreases, but resource utilization increases

Engineering Contradiction:
Improveresource utilizationVSAvoidphysical CPU availability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

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

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12026537B2Server infrastructure and physical CPU allocation program
Publication Date: 2024.07.02 NIPPON TELEGRAPH & TELEPHONE CORP
  • US12026537B2 patent drawing
  • US12026537B2 patent drawing
  • US12026537B2 patent drawing

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.