# US 12,182,603 B2 · Automated analysis and dynamic resource configuration for hard provisioned virtual machines

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

- Number: US 12,182,603 B2
- Document ID: US12182603B2
- Status: Granted
- Kind: B2
- Application number: 17/725,350
- Filed: 2022-04-20
- Published: 2023-10-26
- Granted: 2024-12-31
- Earliest claimed: 2022-04-20
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Joseph B. Caisse; Bradley K. Goodman; Himabindu Tummala
- Web page: https://patentgrep.com/patent/US12182603B2

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/5005: {to service a request}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 2009/45579: {I/O management, e.g. providing access to device drivers or storage}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2209/5019: Workload prediction
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods and systems for managing provisioning of virtual machines. Virtual machines may host applications that may provide computer implemented services. Various hardware resources may be allocated to the virtual machines via a hypervisor. As the workloads of the applications change, the virtual machines may become over or under provisioned. To manage provisioning of virtual machines, various types of resource consumption estimates may be obtained. The resource consumption estimates may be used to ascertain how to provision various virtual machines to reduce or eliminate inefficient allocations of hardware resources for use by the virtual machines.

## Claims

### Claim 1

A computer-implemented method for managing resources allocated to virtual machines, the method comprising:
obtaining a first resource consumption estimate for a hard provisioned virtual machine of the virtual machines, the first resource consumption estimate being obtained from a hypervisor that manages resource provisioning for the hard provisioned virtual machine;
obtaining a second resource consumption estimate for a hard provisioned virtual machine of the virtual machines, the second resource consumption estimate being obtained from an agent hosted by the hard provisioned virtual machine;
identifying:
a resource inefficiency for the hard provisioned virtual machine based on the first resource consumption estimate and the second resource consumption estimate, and
a new resource allocation based on the resource inefficiency; and
remediating the identified resource inefficiency using the new resource allocation.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein obtaining the second resource consumption estimate comprises:
obtaining workload characteristics of workloads performed by the hard provisioned virtual machines;
classifying the workloads based on the workload characteristics;
calculating a reduction factor based on the workload classifications; and
reducing a quantity of computing resources alleged to be used by the hard provisioned virtual machine by the reduction factor to obtain the second resource consumption estimate.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, wherein the workloads are classified based on a productivity level of the workloads.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, wherein the productivity level of each of the workloads is based on a ratio of polling behavior by a respective workload and non-polling behavior by the respective workload.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, wherein the polling behavior corresponds to acts of the workload inquiring regarding whether actions should be performed by the hard provisioned virtual machine.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein identifying the resource inefficiency comprises:
making a determination that the first resource consumption estimate and the second resource consumption estimate are different;
based on the determination:
identifying a first provisional resource inefficiency based on the first resource consumption estimate, and
identifying a second provisional resource inefficiency based on the second resource consumption estimate; and
obtaining the resource inefficiency using the first provisional resource inefficiency and the second provisional resource inefficiency.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein remediating the identified resource inefficiency comprises:
making a determination that the first resource consumption estimate and the second resource consumption estimate are different; and
based on the determination:
requesting authorization to modify a resource allocation for the hard provisioned virtual machine based on the new resource allocation.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein remediating the identified resource inefficiency comprises:
making a determination that the first resource consumption estimate and the second resource consumption estimate are similar; and
based on the determination:
provisioning the hard provisioned virtual machine based on the new resource allocation.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein the virtual machines are hosted by a data processing system, and the virtual machines comprise a soft provisioned virtual machine which utilizes, at least in part, shared resources of the data processing system, and the hard provisioned virtual machine has exclusive use of a portion of resources of the data processing system.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1, wherein the first resource consumption estimate is based on resources consumed by the hard provisioned virtual machine for any action, and the second resource consumption estimate is based on resources consumed by the hard provisioned virtual machine for only productive actions.

### Claim 11

A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations for managing resources allocated to virtual machines, the operations comprising:
obtaining a first resource consumption estimate for a hard provisioned virtual machine of the virtual machines, the first resource consumption estimate being obtained from a hypervisor that manages resource provisioning for the hard provisioned virtual machine;
obtaining a second resource consumption estimate for a hard provisioned virtual machine of the virtual machines, the second resource consumption estimate being obtained from an agent hosted by the hard provisioned virtual machine;
identifying:
a resource inefficiency for the hard provisioned virtual machine based on the first resource consumption estimate and the second resource consumption estimate, and
a new resource allocation based on the resource inefficiency; and
remediating the identified resource inefficiency using the new resource allocation.

### Claim 12 (depends on 11)

The non-transitory machine-readable medium of claim 11, wherein obtaining the second resource consumption estimate comprises:
obtaining workload characteristics of workloads performed by the hard provisioned virtual machines;
classifying the workloads based on the workload characteristics;
calculating a reduction factor based on the workload classifications; and
reducing a quantity of computing resources alleged to be used by the hard provisioned virtual machine by the reduction factor to obtain the second resource consumption estimate.

### Claim 13 (depends on 12)

The non-transitory machine-readable medium of claim 12, wherein workloads are classified based on a productivity level of the workloads.

### Claim 14 (depends on 13)

The non-transitory machine-readable medium of claim 13, wherein the productivity level of each of the workloads is based on a ratio of polling behavior by a respective workload and non-polling behavior by the respective workload.

### Claim 15 (depends on 14)

The non-transitory machine-readable medium of claim 14, wherein the polling behavior corresponds to acts of the workload inquiring regarding whether actions should be performed by the hard provisioned virtual machine.

### Claim 16

A data processing system, comprising:
a processor; and
a memory coupled to the processor to store instructions, which when executed by the processor, cause the processor to perform operations for managing resources allocated to virtual machines, the operations comprising:
obtaining a first resource consumption estimate for a hard provisioned virtual machine of the virtual machines, the first resource consumption estimate being obtained from a hypervisor that manages resource provisioning for the hard provisioned virtual machine;
obtaining a second resource consumption estimate for a hard provisioned virtual machine of the virtual machines, the second resource consumption estimate being obtained from an agent hosted by the hard provisioned virtual machine;
identifying:
a resource inefficiency for the hard provisioned virtual machine based on the first resource consumption estimate and the second resource consumption estimate, and
a new resource allocation based on the resource inefficiency; and
remediating the identified resource inefficiency using the new resource allocation.

### Claim 17 (depends on 16)

The data processing system of claim 16, wherein obtaining the second resource consumption estimate comprises:
obtaining workload characteristics of workloads performed by the hard provisioned virtual machines;
classifying the workloads based on the workload characteristics;
calculating a reduction factor based on the workload classifications; and
reducing a quantity of computing resources alleged to be used by the hard provisioned virtual machine by the reduction factor to obtain the second resource consumption estimate.

### Claim 18 (depends on 17)

The data processing system of claim 17, wherein workloads are classified based on a productivity level of the workloads.

### Claim 19 (depends on 18)

The data processing system of claim 18, wherein the productivity level of each of the workloads is based on a ratio of polling behavior by a respective workload and non-polling behavior by the respective workload.

### Claim 20 (depends on 19)

The data processing system of claim 19, wherein the polling behavior corresponds to acts of the workload inquiring regarding whether actions should be performed by the hard provisioned virtual machine.
