NIC Load Balancing Using Receive Queue Length Across CPU Cores
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network interface card (NIC) systems face inefficiencies due to high likelihood of data traffic imbalance among CPU cores, leading to some cores being overloaded while others remain idle, which adversely affects system-wide performance.
Innovation Solution
Implementing an NIC-based adaptive load balancing technique that dynamically redistributes data traffic by monitoring CPU core responsiveness and redirecting packets to less busy cores using real-time metrics, such as receive queue length, without requiring software intervention.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If Receive Side Scaling (RSS) is used to distribute data packets to CPU cores, then data processing capability is improved, but data traffic imbalance occurs causing some cores to be overloaded while others remain idle
Solution Approach 1:
The patent implements dynamic load balancing by continuously monitoring CPU core responsiveness metrics (such as receive queue length) and adaptively redirecting data packets in real-time. The NIC dynamically adjusts packet distribution based on current system state, transitioning from static RSS hashing to adaptive load balancing that responds to changing workload conditions.
Solution Approach 2:
The system employs feedback mechanisms where the NIC monitors CPU core performance metrics and uses this information to make informed routing decisions. The feedback loop continuously evaluates core responsiveness and adjusts packet redirection accordingly, ensuring optimal load distribution based on actual system state rather than predetermined rules.
2Ease of operation
If data packets are redirected to less busy CPU cores, then load balance is improved, but additional latency or CPU cycle usage may occur
Solution Approach 1:
The system performs preliminary monitoring of CPU core metrics and maintains readiness information about core responsiveness. By pre-evaluating core availability and maintaining this information in the NIC, the system can make rapid redirection decisions without incurring significant latency when load balancing is needed.
Solution Approach 2:
The NIC autonomously performs load balancing operations without requiring software intervention or additional CPU cycles. The hardware-based implementation monitors core metrics and redirects packets independently, eliminating the overhead that would result from software-based load balancing solutions.
3Device complexity
If static RSS hashing is used for packet distribution, then implementation simplicity is improved, but system adaptability to changing workload conditions deteriorates
Solution Approach 1:
The system transitions from static RSS hashing to dynamic load balancing by continuously monitoring CPU core metrics and adaptively adjusting packet distribution. The NIC dynamically changes routing decisions based on real-time system state, enabling adaptation to varying workload conditions while maintaining implementation efficiency through hardware-based operation.
Solution Approach 2:
The system changes the routing parameters dynamically based on monitored CPU core performance metrics. Instead of using fixed hash-based routing, the system adjusts routing decisions based on variables such as receive queue length and core responsiveness, allowing adaptation to changing workload characteristics.
Data Source
AI summary
A network interface card (NIC) can be configured to monitor a first central processing unit (CPU) core mapped to a first receive queue having a receive queue length. The NIC can also be configured to determine whether the CPU core is overloaded based on the receive queue length. The NIC can also be configured to redirect data packets that were targeted from the first receive queue to the CPU core to another CPU core responsive to a determination that the CPU core is overloaded.


