IP Library Granted Patent US 10,698,709
Granted Patent B2
US 10,698,709 · App. 15/914,421 · Granted Jun 30, 2020

Prediction of virtual machine demand

Inventors: Bruno Korbar (Hanover, NH); Yu Yao (Redmond, WA); Sushant Pramod Rewaskar (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F9/45533G06F9/4401G06F9/44505G06F9/45558G06N5/02H04L41/12G06F2009/4557G06F2009/45562G06F2009/45591
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 10,698,709
App. No.
15/914,421
Granted
Jun 30, 2020
Kind
B2
Abstract

For each selected category of virtual machine, a cardinality of virtual machines of the category that are requested is recorded over time. For each category of virtual machine, a prediction algorithm is used to predict a cardinality of virtual machines for the selected category to be requested in the future, such that the prediction algorithm weighs under-prediction of the cardinality of virtual machines as costlier than over-prediction. For each category of virtual machine, a cardinality of virtual machines of the category of virtual machines are composed and booted with generic virtual machine artifacts such that the cardinality of virtual machines of the selected categories is the predicted cardinality of requested virtual machines for the selected category. The booted virtual machines are caused to enter a state in which the booted virtual machines are polling for a configuration with user-specific compute settings and user-specific networking settings.

Claims (43)

1. An apparatus, comprising:

a device including at least one memory adapted to store run-time data for the device, and at least one processor that is configured to execute processor-executable code that, in response to execution, enables the device to perform actions, including:

selecting categories of virtual machines from a plurality of categories of virtual machines;

for each selected category of virtual machine, recording, over time, a cardinality of virtual machines of the selected category that are requested for provisioning;

for each selected category of virtual machine, using a prediction algorithm to predict a cardinality of virtual machines for the selected category to be requested in the future, such that the prediction algorithm weighs under-prediction of the cardinality of virtual machines as costlier than over-prediction of the cardinality of virtual machines;

determining, for the selected categories of virtual machines, an error for the predicted cardinalities of virtual machines for the selected categories;

for each selected category of virtual machine, composing and booting a cardinality of virtual machines of the selected category of virtual machines with generic virtual machine artifacts such that the cardinality of virtual machines of the selected categories is the predicted cardinality of requested virtual machines for the selected category; and

causing the booted virtual machines to enter a state in which the booted virtual machines are polling for a configuration with user-specific compute settings and user-specific networking settings.

2. The apparatus of claim 1 , wherein the prediction algorithm includes an autoregressive integrated moving average model.

3. The apparatus of claim 1 , wherein the prediction algorithm includes an artificial neural network.

4. The apparatus of claim 1 , wherein the categories of virtual machines each include at least an operating system type for the virtual machine and a size of the virtual machine.

5. The apparatus of claim 1 , wherein the prediction algorithm uses at least the last 14 days as input.

6. The apparatus of claim 1 , wherein composing and booting the virtual machines includes booting the virtual machines with a bare minimum configuration such that a plurality of configurations are skipped during the bare minimum configuration.

7. The apparatus of claim 1 , wherein the virtual machine artifacts include a placeholder virtual network that is not physically addressable.

8. The apparatus of claim 1 , the actions further including:

updating the prediction algorithm over time based on the determined error; and

performing an adjustment for the predicted cardinalities for virtual machines for the selected categories.

9. The apparatus of claim 8 , wherein the adjustment includes at least one of a minimum cardinality and a maximum cardinality.

10. The apparatus of claim 8 , wherein the adjustment includes at least one system constraint.

11. The apparatus of claim 8 , wherein the adjustment includes at least one external factor.

12. A method, comprising:

storing cardinalities of types of virtual machines over time that are requested for provisioning;

predicting cardinalities of the types of virtual machines to be requested in the future using a prediction algorithm, such that the prediction algorithm weighs over-prediction of a cardinality of virtual machines as less costly than under-prediction of the cardinality of virtual machines;

calculating errors for the predicted cardinalities of types of virtual machines;

refining the prediction algorithm over time based on the calculated errors;

generating and booting cardinalities of the types of virtual machines with generic virtual machine artifacts such that the cardinalities of types of virtual machines are the predicted cardinality of requested types of virtual machines; and

causing the booted virtual machines to enter a state in which the booted virtual machines are polling for a configuration with user-specific compute settings and user-specific networking settings.

13. The method of claim 12 , wherein the prediction algorithm includes an autoregressive integrated moving average model.

14. The method of claim 12 , wherein the types of virtual machines each include at least an operating system type for the virtual machine and a size of the virtual machine.

15. The method of claim 12 , wherein generating and booting the virtual machines includes booting the virtual machines with a bare minimum configuration such that a plurality of configurations are skipped during the bare minimum configuration.

16. The method of claim 12 , wherein the virtual machine artifacts include a placeholder virtual network that is not physically addressable.

17. A processor-readable storage medium, having stored thereon processor-executable code that, upon execution by at least one processor, enables actions, comprising:

selecting categories of virtual machines from a plurality of categories of virtual machines;

for each selected category of virtual machine, recording, over time, a cardinality of virtual machines of the selected category that are requested for provisioning;

for each selected category of virtual machine, predicting a cardinality of the virtual machines to be requested in the future using a prediction algorithm, such that the prediction algorithm weighs under-prediction of a cardinality of virtual machines as costlier than over-prediction of the cardinality of virtual machines;

calculating, for the selected categories of virtual machines, an error for the predicted cardinalities of virtual machines for the selected categories;

training the prediction algorithm over time based on the calculated error;

performing an adjustment for the predicted cardinalities for virtual machines for the selected categories;

for each selected category of virtual machine, composing and booting a cardinality of virtual machines of the selected category of virtual machines with generic virtual machine artifacts such that the cardinality of virtual machines of the selected categories is the adjusted predicted cardinality of requested virtual machines for the selected category; and

causing the booted virtual machines to enter a state in which the booted virtual machines are polling for a configuration with user-specific compute settings and user-specific networking settings.

18. The processor-readable storage medium of claim 17 , wherein the categories of virtual machines each include at least an operating system type for the virtual machine and a size of the virtual machine.

19. The processor-readable storage medium of claim 17 , wherein composing and booting the virtual machines includes booting the virtual machines with a bare minimum configuration such that a plurality of configurations are skipped during the bare minimum configuration.

20. The processor-readable storage medium of claim 17 , wherein the virtual machine artifacts include a placeholder virtual network that is not physically addressable.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2018
From: KORBAR, BRUNO; YAO, YU; REWASKAR, SUSHANT PRAMOD
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 045133/0867 →
Continuity (1)
Related Publication 20190278620A1 · Sep 12, 2019
Cited By (2)
US 12,340,256 US 12,436,788