Dynamic Queue Pair Adjustment in NVMeoF Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Non-volatile memory express over fabrics (NVMeoF) systems face performance issues due to unnecessary idled queue pairs, underutilization of resources, and inadequate flow control, leading to slowed queue pair service rates under high I/O pressure.
Innovation Solution
A method and system that dynamically adjust the number of queue pairs and control I/O flows by calculating a system utilization ratio, adding or deleting queue pairs based on thresholds, and using watermarks to manage queue heights, thereby optimizing service rates and minimizing processing delays.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the number of queue pairs is increased to handle high I/O pressure, then the service rate is improved, but system resource wastage increases due to maintaining extra idled queue pairs
Solution Approach 1:
The system dynamically adjusts the number of queue pairs based on real-time I/O pressure conditions. The controller monitors I/O requests and actively creates or removes queue pairs as needed, transitioning from a static configuration to a dynamic one that adapts to workload changes, thereby improving service rate during high demand while reducing resource wastage during low demand
Solution Approach 2:
The system changes the parameter of queue pair count based on system utilization ratio thresholds. When utilization exceeds an upper threshold, the system increases the number of queue pairs; when it falls below a lower threshold, the system decreases the number of queue pairs. This parameter adjustment resolves the contradiction by matching resource allocation to actual system needs
2Loss of energy
If the number of queue pairs is decreased to reduce resource wastage, then system resource efficiency is improved, but performance degradation occurs due to underutilization during high I/O pressure
Solution Approach 1:
The system employs dynamic adjustment of queue pair count rather than maintaining a fixed low number. The controller continuously monitors system utilization and actively increases queue pairs when I/O pressure rises, ensuring performance is maintained during high demand while allowing resource efficiency to improve during low demand periods
Solution Approach 2:
The system uses feedback from system utilization ratio monitoring to control queue pair creation and removal. The controller receives feedback about current I/O pressure and utilization levels, and uses this feedback to make informed decisions about adjusting queue pair count, ensuring performance requirements are met while optimizing resource usage
3Productivity
If queue pair service rate is increased to handle high I/O pressure, then processing capacity is improved, but service rate slows down due to high I/O pressure and large number of queued I/O jobs
Solution Approach 1:
The system segments the I/O workload across multiple queue pairs to reduce the number of queued jobs per queue. By creating additional queue pairs when utilization is high, the system divides the large backlog of I/O requests into smaller manageable chunks across multiple queues, allowing each queue to be serviced more quickly and improving overall service rate
Solution Approach 2:
The system addresses the service rate bottleneck by adding another dimension - the number of parallel queue pairs. Instead of trying to increase the service rate of a single queue, the system creates multiple parallel queues that can be serviced simultaneously, effectively increasing total processing capacity while maintaining acceptable service rates per queue
4Device complexity
If fixed queue pairs are maintained to simplify system management, then device complexity is reduced, but adaptability decreases due to inability to respond to changing workload conditions
Solution Approach 1:
The system implements self-service by automatically monitoring its own utilization and making decisions about queue pair creation and removal. The controller autonomously adjusts the number of queue pairs based on observed workload conditions without requiring external intervention or complex manual configuration, thereby maintaining low management complexity while achieving high adaptability
Solution Approach 2:
The system dynamically changes the parameter of queue pair count based on monitored utilization thresholds. This automatic parameter adjustment allows the system to adapt to changing workload conditions while keeping management simple, as the adjustment logic is built into the controller and operates autonomously based on predefined thresholds
Data Source
AI summary
A system and method for managing input output queue pairs. In some embodiments, the method includes calculating a system utilization ratio, the system utilization ratio being a ratio of: an arrival rate of input output requests, to a service rate; determining whether: the system utilization ratio has exceeded a first threshold utilization during a time period exceeding a first threshold length, and adding a new queue pair is expected to improve system performance; and in response to determining: that the system utilization ratio has exceeded the first threshold utilization during a time period exceeding the first threshold length, and that adding a new queue pair is expected to improve system performance: adding a new queue pair.


