Multi-Queue I/O Throttling via Weighted Credit Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for sharing multi-queue resources do not effectively utilize the high bandwidth provided by modern processors and resources, leading to inefficient processing of I/O requests from multiple process groups.
Innovation Solution
An I/O throttling method that sets a total credit for a multi-queue capable resource, allocates individual credits to process groups based on their weights, and selectively dispatches I/O requests by consuming these credits, thereby efficiently managing access to the resource.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If existing methods for sharing multi-queue resources are used, then resource access is allowed, but the high bandwidth provided by modern processors is not effectively utilized
Solution Approach 1:
The system pre-allocates credits to process groups based on their weights before I/O requests arrive. This preliminary credit allocation enables the system to immediately process I/O requests using pre-configured bandwidth portions, effectively utilizing the high bandwidth capacity of modern processors without waiting for dynamic allocation decisions.
Solution Approach 2:
The total bandwidth is segmented into multiple credit portions, each allocated to different process groups based on their weights. This segmentation allows parallel processing of I/O requests from multiple process groups simultaneously, fully utilizing the multi-queue capability and high bandwidth of modern processors.
2Productivity
If multiple process groups access the multi-queue resource simultaneously, then resource utilization increases, but inefficient processing of I/O requests occurs
Solution Approach 1:
The system dynamically adjusts the credit allocation and consumption rate based on the weight of each process group. Process groups with higher weights consume credits faster and receive preferential treatment in I/O request processing, while lower-weight groups consume credits more slowly. This dynamic mechanism optimizes processing time by ensuring that critical processes receive timely service while maintaining high overall resource utilization.
Data Source
AI summary
An input/output (I/O) throttling method of a process group, performed with respect to a multi-queue capable resource, includes setting a total credit corresponding to the multi-queue capable resource, allocating an individual credit to the process group based on the total credit and a weight of the process group, and selectively dispatching an I/O request of the process group to a multi-queue manager by consuming at least a part of the individual credit.


