# US 10,768,990 B2 · Protecting an application by autonomously limiting processing to a determined hardware capacity

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

- Number: US 10,768,990 B2
- Document ID: US10768990B2
- Status: Granted
- Kind: B2
- Application number: 16/177,482
- Filed: 2018-11-01
- Published: 2020-05-07
- Granted: 2020-09-08
- Earliest claimed: 2018-11-01
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Holly Wright; John William Court
- Web page: https://patentgrep.com/patent/US10768990B2

## CPC

- G06F 9/5044: {considering hardware capabilities}
- G06F 9/4856: {resumption being on a different machine, e.g. task migration, virtual machine migration (G06F9/5088 takes precedence)}
- G06F 9/5016: {the resource being the memory}
- G06F 11/004: {Error avoidance (G06F11/07 and subgroups take precedence)}
- 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 21/52: during program execution, e.g. stack integrity {; Preventing unwanted data erasure; Buffer overflow}
- G06F 2209/501: Performance criteria
- G06F 2209/504: Resource capping
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

A method, apparatus and computer program to protect an application in an underlying multiprocessor computing system, e.g., one in which a processor has local memory available but can access memory assigned to other processors. In operation, a set of hardware characteristics for the underlying computing system are extracted. These characteristics preferably comprise processing power, available memory, and a topology. For each hardware characteristic, an operating limit for that characteristic is determined based at least in part on a baseline value that is determined for the application with respect to the hardware characteristic. Based on the operating limit determined for each hardware characteristic, a recommended limit for a system feature (e.g., network traffic) of the underlying computing system is computed. Thereafter, and during runtime execution of the application, the recommended limit is then enforced, e.g., by dropping excess traffic or spinning up additional application instances, to protect the application.

## Claims

### Claim 1

A method to protect an application, comprising:
extracting a set of hardware characteristics for an underlying computing system, the set of hardware characteristics comprising processing power, memory, and a topology;
for each hardware characteristic of the set of hardware characteristics, determining an operating limit based at least in part on a baseline value determined for the application with respect to the hardware characteristic;
computing a recommended limit for a system feature of the underlying computing system based on the operating limits determined for each of the hardware characteristics; and
during runtime execution of the application, enforcing the recommended limit for the system feature to protect the application.

### Claim 2 (depends on 1)

The method as described in claim 1 wherein the extracting, determining and computing operations are implemented by the application upon initialization.

### Claim 3 (depends on 2)

The method as described in claim 2 further including computing a new recommended limit for the system feature upon a subsequent initialization of the application, the new recommended limit based at least in part on a change in a hardware characteristic.

### Claim 4 (depends on 1)

The method as described in claim 1 wherein the topology is a Non-Uniform Memory Access (NUMA) topology.

### Claim 5 (depends on 4)

The method as described in claim 4 wherein the operating limit for processing power is derived from a number of BogoMIPS per NUMA node, the operating limit for memory is derived from an available memory per CPU core on each NUMA node, and the recommended limit is based on the number of BogoMIPS per NUMA node, the available memory per CPU core on each NUMA node, and a scaling factor derived from an average probabilistic code of an access from a NUMA node.

### Claim 6 (depends on 1)

The method as described in claim 1 wherein the system feature is network traffic.

### Claim 7 (depends on 6)

The method as described in claim 6 wherein enforcing the recommended limit is one of: dropping network traffic once the recommended limit for network traffic is reached, and starting one or more additional instances of the application.

### Claim 8

An apparatus, comprising:
a hardware processor;
computer memory holding computer program instructions executed by the hardware processor to protect an application, the computer program instructions configured to:
extract a set of hardware characteristics for an underlying computing system on which the application will execute, the set of hardware characteristics comprising processing power, memory, and a topology;
for each hardware characteristic of the set of hardware characteristics, determine an operating limit based at least in part on a baseline value determined for the application with respect to the hardware characteristic;
compute a recommended limit for a system feature of the underlying computing system based on the operating limits determined for each of the hardware characteristics; and
during runtime execution of the application, enforce the recommended limit for the system feature to protect the application.

### Claim 9 (depends on 8)

The apparatus as described in claim 8 wherein the computer program instructions configured to extract, determine and compute are implemented by the application upon initialization.

### Claim 10 (depends on 9)

The apparatus as described in claim 9 wherein the computer program instructions are further configured to compute a new recommended limit for the system feature upon a subsequent initialization of the application, the new recommended limit based at least in part on a change in a hardware characteristic.

### Claim 11 (depends on 8)

The apparatus as described in claim 8 wherein the topology is a Non-Uniform Memory Access (NUMA) topology.

### Claim 12 (depends on 11)

The apparatus as described in claim 11 wherein the operating limit for processing power is derived from a number of BogoMIPS per NUMA node, the operating limit for memory is derived from an available memory per CPU core on each NUMA node, and the recommended limit is based on the number of BogoMIPS per NUMA node, the available memory per CPU core on each NUMA node, and a scaling factor derived from an average probabilistic code of an access from a NUMA node.

### Claim 13 (depends on 8)

The apparatus as described in claim 8 wherein the system feature is network traffic.

### Claim 14 (depends on 13)

The apparatus as described in claim 13 wherein the computer program instructions configured to enforce the recommended limit are configured to drop network traffic once the recommended limit for network traffic is reached, or to start one or more additional instances of the application once the recommended limit for network traffic is reached.

### Claim 15

A computer program product in a non-transitory computer readable medium for use in a data processing system to protect an application, the computer program product holding computer program instructions that, when executed by the data processing system, are configured to:
extract a set of hardware characteristics for an underlying computing system on which the application will execute, the set of hardware characteristics comprising processing power, memory, and a topology;
for each hardware characteristic of the set of hardware characteristics, determine an operating limit based at least in part on a baseline value determined for the application with respect to the hardware characteristic;
compute a recommended limit for a system feature of the underlying computing system based on the operating limits determined for each of the hardware characteristics; and
during runtime execution of the application, enforce the recommended limit for the system feature to protect the application.

### Claim 16 (depends on 15)

The computer program product as described in claim 15 wherein the computer program instructions configured to extract, determine and compute are implemented by the application upon initialization.

### Claim 17 (depends on 16)

The computer program product as described in claim 16 wherein the computer program instructions are further configured to compute a new recommended limit for the system feature upon a subsequent initialization of the application, the new recommended limit based at least in part on a change in a hardware characteristic.

### Claim 18 (depends on 15)

The computer program product as described in claim 15 wherein the topology is a Non-Uniform Memory Access (NUMA) topology.

### Claim 19 (depends on 18)

The computer program product as described in claim 18 wherein the operating limit for processing power is derived from a number of BogoMIPS per NUMA node, the operating limit for memory is derived from an available memory per CPU core on each NUMA node, and the recommended limit is based on the number of BogoMIPS per NUMA node, the available memory per CPU core on each NUMA node, and a scaling factor derived from an average probabilistic code of an access from a NUMA node.

### Claim 20 (depends on 15)

The computer program product as described in claim 15 wherein the system feature is network traffic.

### Claim 21 (depends on 20)

The computer program product as described in claim 20 wherein the computer program instructions configured to enforce the recommended limit are configured to drop network traffic once the recommended limit for network traffic is reached, or to start one or more additional instances of the application once the recommended limit for network traffic is reached.

### Claim 22 (depends on 1)

The method as described in claim 1 wherein the set of hardware characteristics are extracted from user space.

### Claim 23 (depends on 8)

The apparatus as described in claim 8 wherein the set of hardware characteristics are extracted from user space.

### Claim 24 (depends on 15)

The computer program product as described in claim 15 wherein the set of hardware characteristics are extracted from user space.
