Virtual CPU Scheduler Periodic Allocation for Low Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current CPU resource allocation metrics in virtual machines (VMs) result in high latency and unbounded jitter, which are not suitable for workloads requiring predictable responsiveness and sub-millisecond latency, especially in industries like telecommunications, and existing solutions like physical core pinning are costly and inefficient.
Innovation Solution
A method is provided to allocate pCPU resources to vCPUs based on a Quality of Service (QoS) metric and bandwidth metric, allowing periodic allocation of pCPUs for a percentage of time, enabling vCPUs to execute workloads with guaranteed latency and jitter without dedicating a pCPU exclusively to a vCPU.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If physical core pinning is used to guarantee pCPU resources to vCPUs, then CPU Quality of Service requirements are met, but costs increase and resource utilization efficiency decreases
Solution Approach 1:
The patent implements periodic allocation of pCPU resources to vCPUs based on QoS metrics and bandwidth metrics. Instead of permanently pinning a pCPU to a vCPU, the system periodically allocates pCPU time slices to multiple vCPUs according to their configured metrics, enabling time-shared access that guarantees QoS while improving overall resource utilization efficiency
Solution Approach 2:
The patent introduces dynamic CPU resource allocation where the CPU scheduler continuously adjusts pCPU allocation to vCPUs based on current system state, QoS requirements, and workload conditions. This dynamic approach replaces static physical core pinning, allowing the system to adaptively meet QoS guarantees while optimizing resource utilization across different time periods and workload scenarios
2Reliability
If physical core pinning is used to allocate pCPU resources exclusively to vCPUs, then predictable responsiveness is achieved, but efficiency losses occur due to dedicated pCPU cannot be time-shared
Solution Approach 1:
The patent makes pCPU resources universal by enabling each pCPU to serve multiple vCPUs across different time periods based on QoS and bandwidth metrics. Instead of dedicating a pCPU exclusively to one vCPU, the same pCPU can be allocated to different vCPUs in different time slices, allowing the pCPU to perform multiple functions and serve multiple virtual machines, thereby eliminating efficiency losses from dedicated allocation
3Adaptability or versatility
If current CPU resource allocation metrics are used, then resource flexibility is maintained, but high latency and unbounded jitter occur
Solution Approach 1:
The patent implements feedback mechanisms where the CPU scheduler continuously monitors system state, QoS metric compliance, and workload conditions to dynamically adjust pCPU allocation to vCPUs. This feedback-driven approach ensures that latency and jitter remain bounded by constantly adapting allocation decisions to meet QoS requirements while maintaining resource flexibility, preventing the unbounded latency that occurs with static allocation metrics
Data Source
AI summary
The disclosure provides a method of performing a workload on a virtual machine (VM) executing on a host comprising one or more physical central processing units (pCPUs) is provided. The method further includes setting a quality of service (QoS) metric associated with the VM, the QoS metric indicating a time period. The method further includes setting a bandwidth metric associated with the VM, the bandwidth metric indicating a percentage. The method further includes allocating by a central processing unit (CPU) scheduler to a virtual CPU (vCPU) of the VM one of the one or more pCPUs periodically every time period, wherein for every time period the one of the one or more pCPUs is allocated to the vCPU for a duration that is the percentage of the time period based on the QoS metric and the bandwidth metric. The method further includes executing the workload on the virtual machine with the vCPU according to the allocation of the one or more pCPUs.


