Dynamic Processor Core Allocation for Storage I/O Load Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
It is challenging for computer systems to effectively allocate computation resources between processes that share resources and those that occupy them, particularly when maintaining high performance levels, as seen in systems executing both polling and general application programs.
Innovation Solution
A computer system with multiple processor cores and a storage device, where an execution control program dynamically allocates cores based on I/O information to manage CPU load, ensuring efficient resource utilization by adjusting the number of cores allocated to storage and application processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If polling is used to maintain high response performance, then response performance and throughput performance are maintained at high levels, but CPU load is constantly at around 100%
Solution Approach 1:
The system dynamically adjusts the number of processor cores allocated to the storage control process based on I/O request states. When I/O requests are pending, more cores are allocated to maintain high response performance; when no requests are pending, fewer cores are allocated to reduce CPU load. This dynamic allocation resolves the contradiction between maintaining high performance and reducing resource consumption.
Solution Approach 2:
The invention changes the parameter of core allocation based on I/O information indicating the state of I/O requests. By monitoring I/O states and adjusting core allocation accordingly, the system adapts resource usage to actual workload demands, maintaining performance when needed while reducing load during idle periods.
2Productivity
If computation resources are allocated based on CPU load, then resource allocation is optimized, but computation resources are added to polling program even when not performing I/O processing
Solution Approach 1:
The system uses I/O information as feedback to determine core allocation. Instead of relying solely on CPU load metrics, the invention monitors I/O request states and uses this feedback to make informed decisions about resource allocation. This ensures resources are allocated based on actual I/O needs rather than misleading CPU load signals from polling activities.
Solution Approach 2:
The system performs preliminary checks of I/O states before allocating computation resources. By monitoring I/O request states in advance and allocating cores based on actual I/O needs rather than continuous polling, the system avoids wasting resources on programs that are not actively performing I/O processing.
Data Source
AI summary
The present invention effectively utilizes computation resources by allocating the computation resources, in accordance with conditions, to a process that shares a computation resource with another process and a process that occupies a computation resource. Execution control causes a processor core allocated to a storage control process to be occupied by the storage control process, the execution control causes a processor core allocated to an application process to be shared with another process, and the execution control changes the number of processor cores allocated to the storage control process on the basis of I/O information indicating a state of an I/O.


