Dynamic NIC Queue Management for High-Throughput VMs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for increasing data throughput to virtual machines (VMs) via network interface cards (NICs) are insufficient for high-throughput requirements, as they either rely on static queue configurations or limited processing optimizations.
Innovation Solution
Implementing dynamic queue management techniques that leverage multiple hardware queues and data processing features like Receive Side Scaling (RSS) and Large Receive Offload (LRO) to distribute incoming data across multiple CPUs, reducing CPU processing time and increasing data rate by dynamically reallocating queues based on load thresholds.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple hardware queues are used to increase data rate, then throughput is improved, but CPU processing complexity increases
Solution Approach 1:
The system dynamically selects between different queue processing modes (single queue vs. multiple queues) based on real-time throughput requirements and CPU processing capacity. The virtualization software monitors system state and adjusts queue configuration dynamically, transitioning between static and dynamic queue management to optimize both throughput and complexity.
Solution Approach 2:
The queue management system provides multiple functions through a unified interface: it can operate in single-queue mode for simplicity, multi-queue mode for high throughput, and dynamically switch between modes. The virtualization software serves as a universal controller that handles both queue configuration and packet processing logic, making the system adaptable to different performance requirements.
2Loss of time
If data messages are combined into larger messages to reduce CPU time, then processing efficiency is improved, but data message handling complexity increases
Solution Approach 1:
The system combines multiple small data messages into larger aggregated messages when throughput requirements demand it. The virtualization software monitors message rates and combines incoming packets into larger batches before processing, reducing the number of individual CPU processing operations while maintaining data integrity through proper message boundary management.
Solution Approach 2:
The message combination strategy is dynamically adjusted based on system state. When CPU processing time is critical and throughput requirements are high, messages are combined into larger batches. When low-latency requirements exist or throughput demands are moderate, individual messages are processed separately. The system transitions between these strategies based on real-time conditions.
Data Source
AI summary
A method for managing several queues of a network interface card (NIC) of a computer. The method initially configures the NIC to direct data messages received for a data compute node (DCN) executing on the computer to a default first NIC queue. When the DCN requests data messages addressed to the particular DCN to be processed with a first feature for load balancing data messages across multiple queues and a second feature for aggregating multiple related data messages into a single data message, the method configures the NIC to direct subsequent data messages received for the DCN to a second queue in a first subset of queues associated with the first feature if a load on the default first queue exceeds a first threshold. Otherwise, if a load on the first subset of queues exceeds a second threshold, the method configures the NIC to direct subsequent data messages received for the particular DCN to a third queue in a second subset of queues associated with both the first and second features.


