Virtual NIC Queue Reassignment for Multi-Thread Load Balancing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The fixed binding of PMD threads to virtual network interface card queues in OVS+DPDK solutions leads to load imbalance, resulting in underutilization of computing resources due to varying queue loads.
Innovation Solution
A load balancing method that switches virtual network interface card queues from high-load threads to low-load threads, utilizing polling and interrupt packet receiving modes to optimize resource utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If PMD threads are fixedly bound to virtual network interface card queues in advance, then the binding relationship is simple and stable, but load imbalance occurs between threads causing underutilization of computing resources
Solution Approach 1:
The patent implements dynamic load balancing by allowing virtual network interface card queues to be reassigned between PMD threads based on real-time load conditions. Instead of fixed binding, the system continuously monitors thread loads and migrates queues from high-load threads to low-load threads, making the binding relationship adaptive and dynamic to maximize computing resource utilization while maintaining operational stability
2Device complexity
If a fixed binding manner is used between PMD threads and virtual network interface card queues, then the system configuration is simple, but load imbalance causes resources not to be fully utilized
Solution Approach 1:
The patent implements self-service load balancing where the system automatically monitors thread loads and performs queue migrations without external intervention. The load balancing mechanism autonomously identifies high-load and low-load threads, selects appropriate queues for migration, and executes the reassignment, thereby improving resource utilization without significantly increasing system configuration complexity
Data Source
AI summary
A load balancing method for multi-thread forwarding includes determining a first thread and a second thread from a plurality of threads, where the plurality of threads are all used to process data packets in virtual network interface card queues, wherein a load of the first thread is greater than a first threshold, wherein a load of the second thread is less than a second threshold, and wherein the first threshold is greater than the second threshold; determining a first queue from a plurality of virtual network interface card queues corresponding to the first thread, where the first thread is used to process data packets in the plurality of virtual network interface card queues; and switching the first queue to the second thread, so that the second thread processes a data packet in the first queue.


