IP Library Granted Patent US 12,293,233
Granted Patent B2
US 12,293,233 · App. 17/494,699 · Granted May 6, 2025

Automated methods and systems that provide resource recommendations for virtual machines

Inventors: Nitu Sharaff (Palo Alto, CA); Yanislav Yankov (Palo Alto, CA)
Assignee: VMWare LLC
G06F9/5077G06F9/5016G06F9/5027G06N20/00G06F2209/503
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,293,233
App. No.
17/494,699
Granted
May 6, 2025
Kind
B2
Abstract

The current document is directed to methods and systems that generate recommendations for resource specifications used in virtual-machine-hosting requests. When distributed applications are submitted to distributed-computer-system-based hosting platforms for hosting, the hosting requester generally specifies the computational resources that will need to be provisioned for each virtual machine included in a set of virtual machines that correspond to the distributed application, such as the processor bandwidth, memory size, local and remote networking bandwidths, and data-storage capacity needed for supporting execution of each virtual machine. In many cases, the hosting platform reserves the specified computational resources and accordingly charges for them. However, in many cases, the specified computational resources significantly exceed the computational resources actually needed for hosting the distributed application. The currently disclosed methods and systems employ machine learning to provide accurate estimates of the computational resources for the VMs of a distributed application.

Claims (79)

1. A system comprising:

one or more processors;

one or more memories;

one or more data-storage devices; and

computer instructions that, when executed by one or more of the one or more processors, controls the system to

store a plurality of computational-resource-consumption datasets collected during each hosting of each of multiple virtual machines by one or more distributed-computer-system-based hosting platforms, each computational-resource-consumption dataset comprising a memory consumption and a processing-bandwidth consumption of a respective virtual machine during a respective hosting,

generate, for each of the computational-resource-consumption datasets, a corresponding resource value,

generate a decision tree using the generated resource values and virtual machine characterizations corresponding to the multiple virtual machines associated with the computational-resource-consumption datasets, the decision tree comprising multiple nodes associated with multiple rules, wherein each rule is associated with a corresponding entropy gain, wherein a rule having the best entropy gain is associated with two datasets of the plurality of computational-resource-consumption datasets,

receive a request for a computational-resource specification for a virtual machine of the multiple virtual machines,

input a virtual machine characterization of the virtual machine characterizations for the virtual machine to the decision tree;

generate a response to the received request containing

the computational-resource specification generated from output of the decision tree; and

execute the virtual machine using an allocated computational hardware resource based at least on the response.

2. The system of claim 1 , wherein each virtual machine characterization is a set of attribute values corresponding to a set of attributes of a respective virtual machine.

3. The system of claim 2 , wherein the attributes include one or more of:

a user email address;

a user role identifier;

a distributed-application-blueprint identifier;

a data-center or cloud-computing-facility identifier;

a project identifier; and

a resource-image identifier.

4. The system of claim 2 , wherein the decision tree multiple nodes comprise:

a root node;

multiple internal nodes; and

multiple leaf nodes.

5. The system of claim 4 , wherein the root node and multiple internal nodes each include a rule and references to two child nodes, each child node either an internal node or a leaf node; and wherein the leaf nodes each include one or more resource values.

6. The system of claim of claim 5 , wherein the rule is a Boolean expression comprising:

an indication of an attribute;

a comparison operator; and

an attribute value.

7. The system of claim 6 , wherein when the virtual machine characterization is input to the decision tree, the system is controlled to:

return contents of a leaf node of the decision tree, wherein the leaf node is based on a traversal of the decision tree and the multiple rules.

8. The system of claim 7 , wherein

one of the resource values is based on additional information contained in the contents of the leaf node.

9. The system of claim 2 , wherein each resource value is an identifier for a set of quantized computational-resource capacity or size values.

10. The system of claim 9 , wherein a quantized computational-resource capacity or size value is one of:

a number of the one or more processors;

a number of megabytes of the one or more memories;

a number of gigabytes of the one or more memories;

a number of megabytes of capacity of the one or more data-storage devices;

a number of gigabytes of capacity of the one or more data-storage devices; and

a number of terabytes of capacity of the one or more data-storage devices.

11. The system of claim 9 , wherein each resource value is based on

a set of computational hardware resources

and a quantized computational-resource capacity or size that would satisfy a target percentage of a resource-consumption need for the virtual machine.

12. A method executed by a system having one or more processors, one or more memories, and one or more data-storage devices, the method comprising:

receiving a request for a computational-resource specification for a virtual machine, the computational-resource specification comprising a memory consumption and a processing-bandwidth consumption of the virtual machine, the virtual machine associated with a dataset of a plurality of datasets;

generating a decision tree using a resource value corresponding to the dataset of the plurality of datasets and a characterization of the virtual machine, the decision tree comprising multiple nodes associated with multiple rules, wherein each rule is associated with a corresponding entropy gain, wherein a rule having the best entropy gain is associated with two datasets of the plurality of datasets;

inputting machine the characterization for the virtual machine to the decision tree;

generating a response to the received request containing

the computational-resource specification generated from output of the decision tree; and

executing the virtual machine using an allocated computational hardware resource based at least on the response.

13. The method of claim 12 , wherein the characterization of the virtual machine is a set of attribute values corresponding to a set of attributes.

14. The method of claim 13 , wherein the attributes include one or more of:

a user email address;

a user role identifier;

a distributed-application-blueprint identifier;

a data-center or cloud-computing-facility identifier;

a project identifier; and

a resource-image identifier.

15. The method of claim 13 , wherein the multiple nodes:

a root node;

multiple internal nodes; and

multiple leaf nodes.

16. The method of claim 15 , wherein the root node and multiple internal nodes each include a rule and references to two child nodes, each child node either an internal node or a leaf node; and wherein the leaf nodes each include one or more resource values.

17. The method of claim of claim 16 , wherein the rule is a Boolean expression comprising:

an indication of an attribute;

a comparison operator; and

an attribute value.

18. The method of claim 17 wherein when the characterization is input to the the decision tree, the the method further comprises:

returning contents of a leaf node of the decision tree, wherein the leaf node is based on a traversal of the decision tree and the multiple rules.

19. The method of claim 18 , wherein resource value based on the resource value is based on additional information contained in the contents of the leaf node.

20. A data-storage device encoded with processor instructions that, when executed on one or more processors of a computer system, controls the computer system to:

receive a request for a computational-resource specification for a virtual machine associated with a dataset of a plurality of datasets;

generate a decision tree using a resource value corresponding to the dataset of the plurality of datasets and a characterization of the virtual machine, the decision tree comprising multiple nodes associated with multiple rules, wherein each rule is associated with a corresponding entropy gain, wherein a rule having the best entropy gain is associated with two datasets of the plurality of datasets;

input the characterization for the virtual machine to the decision tree;

generate a response to the received request containing

the computational-resource specification generated from output of the decision tree; and

execute the virtual machine using an allocated computational hardware resource based at least on the response.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2021
From: SHARAFF, NITU; YANKOV, YANISLAV
To: VMWARE, INC.
Reel/Frame 058012/0651 →