Dynamic Queue Management for Virtual Machine Traffic Isolation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current queue management systems for virtual machines (VMs) fail to dynamically adjust queue assignments based on traffic types and utilization, leading to performance issues such as interference between latency-sensitive and throughput-intensive VMs, static allocation of queues, and inefficient resource utilization, resulting in increased context switches and reduced VM consolidation ratios.
Innovation Solution
A dynamic queue management system that breaks queues into priority pools, dynamically adjusts the number of queues, and reassigned VMs based on optimization criteria such as under/overutilization, CPU load, and traffic types, using load balancers to periodically rebalance traffic and adjust pool sizes, and preempts queues to optimize resource allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If VMs are assigned to queues statically during driver initialization, then queue assignment is simple and fast, but queue utilization is inefficient and cannot adapt to changing traffic patterns
Solution Approach 1:
The patent implements dynamic queue assignment by moving from static driver initialization to runtime-based assignment. The system continuously monitors queue utilization metrics (packets processed, CPU cycles, memory bandwidth) and dynamically reassigns VMs to queues based on real-time conditions, allowing the system to adapt to changing traffic patterns while maintaining operational simplicity through automated decision-making.
2Device complexity
If all VMs share the same queue pool, then queue management is simple, but latency-sensitive VMs are interfered with by throughput-intensive VMs
Solution Approach 1:
The patent segments the unified queue pool into multiple dedicated queue pools based on traffic characteristics. It creates separate pools for latency-sensitive workloads (e.g., real-time communication, VoIP) and throughput-intensive workloads (e.g., file transfers, batch processing). This segmentation isolates different traffic types, preventing interference between them while maintaining manageable complexity through automated pool creation and assignment.
Solution Approach 2:
The patent applies local quality by tailoring queue characteristics to specific workload requirements. Each queue pool is configured with appropriate parameters (priority, buffer size, CPU affinity) matched to the specific needs of workloads in that pool. Latency-sensitive VMs receive queues optimized for low latency, while throughput-intensive VMs receive queues optimized for bulk data transfer, ensuring each local area of the system receives quality-appropriate resources.
3Ease of manufacture
If fixed number of queues are assigned to each pool, then resource allocation is simple, but overloaded pools cannot take over free queues from other pools
Solution Approach 1:
The patent implements dynamic resource allocation where queue pools can flexibly adjust their size based on demand. The system monitors queue utilization across all pools and enables overloaded pools to borrow queues from underutilized pools through a centralized management mechanism. This dynamic flexibility allows the system to adapt to varying workload demands while maintaining simple automated management through policy-based allocation decisions.
4Productivity
If one-time queue assignment is used for VMs, then assignment process is simple and fast, but VMs cannot be reassigned to optimize performance as traffic patterns change
Solution Approach 1:
The patent implements feedback-driven queue assignment by continuously monitoring queue performance metrics (packet processing rate, CPU utilization, memory bandwidth, latency) and using this feedback to make informed reassignment decisions. The system compares actual queue performance against target metrics and automatically reassigns VMs when optimization opportunities are detected, maintaining high assignment speed through automated feedback loops while improving long-term performance reliability.
Data Source
AI summary
Some embodiments provide a queue management system that efficiently and dynamically manages multiple queues that process traffic to and from multiple virtual machines (VMs) executing on a host. This system manages the queues by (1) breaking up the queues into different priority pools with the higher priority pools reserved for particular types of traffic or VM (e.g., traffic for VMs that need low latency), (2) dynamically adjusting the number of queues in each pool (i.e., dynamically adjusting the size of the pools), (3) dynamically reassigning a VM to a new queue based on one or more optimization criteria (e.g., criteria relating to the underutilization or overutilization of the queue).


