# US 11,030,069 B2 · Multi-layer autoscaling for a scale-up cloud server

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,030,069 B2
- Document ID: US11030069B2
- Status: Granted
- Kind: B2
- Application number: 15/698,726
- Filed: 2017-09-08
- Published: 2019-03-14
- Granted: 2021-06-08
- Earliest claimed: 2017-09-08
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Takuya Nakaike; Moriyoshi Ohara; Takanori Ueda
- Web page: https://patentgrep.com/patent/US11030069B2

## CPC

- G06F 11/3409: {for performance assessment}
- G06F 9/45545: {Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/5005: {to service a request}
- G06F 9/5016: {the resource being the memory}
- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 9/505: {considering the load}
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G06F 11/3433: {for load management (allocation of a server based on load conditions G06F9/505; load rebalancing G06F9/5083; redistributing the load in a network by a load balancer H04L67/1029)}
- G06F 2009/45579: {I/O management, e.g. providing access to device drivers or storage}
- G06F 2009/45591: {Monitoring or debugging support}
- G06F 2209/501: Performance criteria
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A computer-implemented scaling method, an apparatus, and a computer program product for detecting whether a performance of a system reaches a target performance are provided. The method includes scaling a layered software environment, including scaling a first layer software environment in the layered software environment in response to the performance of the system not reaching the target performance and scaling a second layer software environment that is above the first layer software environment in the layered software environment in response to the performance of the system not reaching the target performance despite the first layer software environment being scaled. The method also includes scaling hardware resources used for executing the layered software environment in the system in response to the performance of the system not reaching the target performance before scaling of the first layer software environment or after scaling of the second layer software environment.

## Claims

### Claim 1

A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a device to cause the device to perform operations comprising:
detecting whether a performance of a system, which executes an application using a layered software environment that provides one or more lower layer software environments below an upper layer software environment, reaches a target performance;
horizontally scaling the layered software environment, including scaling a first layer software environment in the layered software environment in response to the performance of the system not reaching the target performance and scaling a second layer software environment that is above the first layer software environment in the layered software environment in response to the performance of the system not reaching the target performance despite the first layer software environment being scaled; and
vertically scaling hardware resources used for executing the layered software environment in the system in response to the performance of the system not reaching the target performance based on a response time of the application and a central processing unit (CPU) usage rate before scaling of the first layer software environment based on a lock contention.

### Claim 2 (depends on 1)

The computer program product according to claim 1, wherein the horizontally scaling the layered software environment includes scaling the software environments one layer at a time from a bottommost layer to a topmost layer in the layered software environment, until it is no longer detected that the performance of the system does not reach the target performance.

### Claim 3 (depends on 1)

The computer program product according to claim 1, wherein the scaling the first layer software environment includes increasing the number of first layer software environments provided below the second layer software environment.

### Claim 4 (depends on 1)

The computer program product according to claim 1, wherein the operations further comprise reducing the layered software environment, including reducing a software environment of one layer in the layered software environment in response to the performance of the system being greater than the target performance by at least a predetermined margin.

### Claim 5 (depends on 1)

The computer program product according to claim 1, wherein the operations further comprise monitoring a state of lock contention occurrences of at least one software environment in the layered software environment, and
the horizontally scaling the layered software environment includes scaling the first layer software environment on a further condition that an amount of lock contentions occurring in the first layer software environment exceeds an allowable amount.

### Claim 6 (depends on 1)

An apparatus comprising a processor and the computer program product according to claim 1.

### Claim 7

An apparatus comprising:
at least one processor operatively coupled to a memory device, the at least one processor being configured to:
detect whether a performance of a system, which executes an application using a layered software environment that provides one or more lower layer software environments below an upper layer software environment, reaches a target performance;
horizontally scale the layered software environment, including scaling a first layer software environment in the layered software environment in response to the performance of the system not reaching the target performance and scaling a second layer software environment that is above the first layer software environment in the layered software environment in response to the performance of the system not reaching the target performance despite the first layer software environment being scaled; and
vertically scale hardware resources used for executing the layered software environment in the system in response to the performance of the system not reaching the target performance based on a response time of the application and a central processing unit (CPU) usage rate before scaling of the first layer software environment based on a lock contention.
