Dynamic RSS Engine Distribution for Virtual Machine Flow Load Balancing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current systems lack an efficient method to dynamically distribute Receive Side Scaling (RSS) engines among virtual machines based on flow data, leading to suboptimal processing of high-throughput infrastructure and virtual machine traffics with multiple loaded flows.
Innovation Solution
Implement a dynamic distribution mechanism that periodically retrieves absolute counts of data flow packets, computes flow load indicator values, and assigns data flow filters to RSS engines, allowing for real-time reassignment based on load thresholds and moving average values, ensuring optimal utilization of RSS engines.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If RSS engines are statically assigned to virtual machines, then infrastructure traffic and high-throughput VM traffic can be processed efficiently, but the system cannot adapt to dynamic flow load changes and CPU load imbalances occur
Solution Approach 1:
The patent implements dynamic RSS engine distribution by periodically calculating flow load indicators and redistributing RSS engines based on current traffic conditions. The system transitions from static assignment to dynamic reassignment, where RSS engines are continuously reallocated to match actual flow loads, preventing CPU load imbalances and adapting to changing traffic patterns in real-time
Solution Approach 2:
The system employs feedback mechanisms by periodically retrieving flow statistics, calculating flow load indicators, and using this information to guide RSS engine redistribution. The feedback loop continuously monitors traffic conditions and adjusts RSS engine allocation accordingly, ensuring optimal utilization while preventing overload on any single CPU
2Productivity
If multiple RSS engines are distributed to handle high-volume traffic, then throughput increases, but CPU load becomes imbalanced across different processors
Solution Approach 1:
The system changes the parameter of RSS engine allocation from fixed to variable based on flow load indicators. By calculating the number of flows per CPU and comparing against thresholds, the system dynamically adjusts RSS engine distribution to maintain balanced CPU loads while preserving high throughput capabilities
3Adaptability or versatility
If RSS engines are allocated to all virtual machines, then resource utilization increases, but system complexity and overhead increase
Solution Approach 1:
The system applies partial action by allocating RSS engines only to virtual machines and flows that require them, rather than universally to all VMs. By using flow load indicators and thresholds, the system selectively distributes RSS engines where needed, reducing overall system complexity while maintaining adaptability for high-performance requirements
Data Source
AI summary
An approach for dynamically distributing RSS engines to virtual machines based on flow data is disclosed. A method comprises receiving first absolute counts of data packets that belong to at least one data flow. Flow load indicator values are computed based on the first absolute counts, and stored in a lookup table. A sorted table is generated by sorting entries of the lookup table. A first count of filters that can be applied on RSS engines is determined. A second count of data flows in the sorted table and having corresponding flow load indicator values exceeding a threshold value is determined. If the second count exceeds the first count, then the first count of data flows is selected from the sorted table. The first count of filters that correspond to the data flows is determined, and the first count of the filters is assigned to at least one RSS engine.


