Dynamic Processor Core Allocation for Storage I/O Load Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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%

Engineering Contradiction:
Improveresponse performanceVSAvoidCPU load
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improveresource allocation efficiencyVSAvoidwasted computation resources
Core Design Contradiction:
ProductivityVSLoss of energy

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.

Inventive Principle:
Principle #23Feedback

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10788996B2Computer system and process execution method
Publication Date: 2020.09.29 HITACHI VANTARA LTD
  • US10788996B2 patent drawing
  • US10788996B2 patent drawing
  • US10788996B2 patent drawing

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.