IP Library › Granted Patent US 12,578,985
Granted Patent B2
US 12,578,985 · App. 18/070,118 · Granted Mar 17, 2026

Hybrid virtual machine allocation optimization system and method

Inventors: Benjamin Eric Ahlvin (Seattle, WA); Sida Peng (Chestnut Hill, MA); Abigail Sandra Atchison (Seattle, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F9/45558G06Q10/04G06F2009/4557G06F2009/45595
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,578,985
App. No.
18/070,118
Granted
Mar 17, 2026
Kind
B2
Abstract

Systems and methods for determining an allocation plan for allocating virtual machines (VMs) to a hosted service utilizes a demand forecast that predicts future demand for VMs, a response curve that correlates user experience to VM utilization, and an estimated spot eviction rate to determine the allocation plan. The demand forecast, the response curve and the eviction rate are processed using mixed-integer optimization to determine the numbers of VMs of each allocation type that should be online at any given time to meet demand.

Claims (47)

1 . A data processing system comprising:

a processor; and

a machine-readable medium storing executable instructions that, when executed, cause the processor to perform operations comprising:

estimating a demand forecast for allocating virtual machines (VMs) to a service hosted by a cloud service provider over a predetermined allocation time period based on historical demand data;

using a causal inference model to determine a response curve that correlates user experience to VM utilization, the causal inference model receiving historical utilization data, historical customer satisfaction data, and historical cost data and producing the response curve as an output;

estimating an eviction rate for spot VMs based on historical eviction data; and

using an allocation optimizer model to process the demand forecast, the response curve, and the eviction rate along with current allocation data and current pricing data corresponding to a plurality of different VM allocation types using mixed-integer optimization to determine an allocation plan that identifies numbers of VMs of each of the VM allocation types to allocate during the allocation time period; and

performing a resource allocation for the service based on the determined allocation plan during the allocation time period.

2 . The data processing system of claim 1 , wherein the demand forecast is estimated using one or more forecasting algorithms.

3 . The data processing system of claim 1 , wherein the response curve indicates an optimal number of sessions per VM threshold that minimizes impact of utilization of VMs on user satisfaction.

4 . The data processing system of claim 3 , wherein the historical customer satisfaction data is based on a Customer Satisfaction (CSAT) metric based on user input to questions pertaining to use of services provided by the cloud service provider.

5 . The data processing system of claim 1 , wherein the eviction rate indicates a probability that a spot VM will be evicted within a predetermined time horizon.

6 . The data processing system of claim 1 , wherein a weighted average of the historical eviction data over a predetermined eviction time period is used to estimate the eviction rate.

7 . The data processing system of claim 1 , wherein the VM allocation types include a spot VM allocation type, and

wherein the estimated eviction rate is used to determine how many spot VMs to allocate as part of the allocation plan.

8 . The data processing system of claim 7 , wherein the VM allocation types include an on-demand type and a reserved type, and

wherein the allocation plan identifies a number of the on-demand type and a number of the reserved type to allocate as part of the allocation plan.

9 . The data processing system of claim 1 , wherein the allocation time period is at least a week.

10 . The data processing system of claim 1 , wherein the mixed-integer optimization involves minimizing a cost of allocation of VMs for the service,

wherein the numbers of each of the VM allocation types correspond to decision variables for the mixed-integer optimization that are used to minimize the cost of allocation, and

wherein the demand forecast, the response curve, the eviction rate, the current allocation data, and the current pricing data correspond to constraints for the mixed-integer optimization.

11 . The data processing system of claim 1 , wherein the operations further comprise:

displaying a graphical representation of the allocation plan on a user interface; and

receiving input from a user via the user interface that specifies at least one user selectable parameter, the at least one user selectable parameter being used in determining at least one of the demand forecast, the response curve, the eviction rate, and the allocation plan.

12 . A method for determining allocation plan for identifying numbers of VMs of each of a plurality of VM allocation types to allocate to a service hosted by a cloud service provider during an allocation time period, the method comprising:

estimating a demand forecast for allocating virtual machines (VMs) to a service hosted by a cloud service provider over a predetermined allocation time period based on historical demand data;

using a causal inference model to determine a response curve that correlates user experience to VM utilization, the causal inference model receiving historical utilization data, historical customer satisfaction data, and historical cost data and producing the response curve as an output;

estimating an eviction rate for spot VMs based on historical eviction data; and

using an allocation optimizer model to process the demand forecast, the response curve, and the eviction rate along with current allocation data and current pricing data corresponding to a plurality of different VM allocation types to determine an allocation plan that identifies numbers of VMs of each of the VM allocation types to allocate during the allocation time period; and

performing a resource allocation for the service based on the determined allocation plan during the allocation time period.

13 . The method of claim 12 , wherein the allocation optimizer model processes the demand forecast, the response curve, the eviction rate, the current allocation data, and the current pricing data using mixed-integer optimization to determine the allocation plan.

14 . The method of claim 13 , wherein the mixed-integer optimization involves minimizing a cost of allocation of VMs for the service,

wherein the numbers of each of the VM allocation types correspond to decision variables for the mixed-integer optimization that are used to minimize the cost of allocation, and

wherein the demand forecast, the response curve, the eviction rate, the current allocation data, and the current pricing data correspond to constraints for the mixed-integer optimization.

15 . The method of claim 12 , wherein the response curve indicates an optimal number of sessions per VM threshold that minimizes impact of utilization of VMs on user satisfaction.

16 . The method of claim 15 , wherein the historical customer satisfaction data is based on a Customer Satisfaction (CSAT) metric based on user input to questions pertaining to use of services provided by the cloud service provider.

17 . The method of claim 12 , wherein a weighted average of the historical eviction data over a predetermined eviction time period is used to estimate the eviction rate.

18 . The method of claim 12 , wherein the VM allocation types include a spot VM allocation type, and

wherein the estimated eviction rate is used to determine how many spot VMs to allocate as part of the allocation plan.

19 . The method of claim 18 , wherein the VM allocation types include an on-demand type and a reserved type, and

wherein the allocation plan identifies a number of the on-demand type and a number of the reserved type to allocate as part of the allocation plan.

20 . A non-transitory computer readable medium on which are stored instructions that, when executed by a processor, cause a programmable device to perform functions of:

estimating a demand forecast for allocating virtual machines (VMs) to a service hosted by a cloud service provider over a predetermined allocation time period based on historical demand data;

using a causal inference model to determine a response curve that correlates user experience to VM utilization, the causal inference model receiving historical utilization data, historical customer satisfaction data, and historical cost data and producing the response curve as an output;

estimating an eviction rate for spot VMs based on historical eviction data; and

using an allocation optimizer model to process the demand forecast, the response curve, and the eviction rate along with current allocation data and current pricing data corresponding to a plurality of different VM allocation types using mixed-integer optimization to determine an allocation plan that identifies numbers of VMs of each of the VM allocation types to allocate during the allocation time period; and

performing a resource allocation for the service based on the determined allocation plan during the allocation time period.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2022
From: AHLVIN, BENJAMIN ERIC; PENG, SIDA; ATCHISON, ABIGAIL SANDRA
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 061894/0028 →
Continuity (1)
Related Publication 20240176637A1 · May 30, 2024
References Cited (11)
US 20160188375A1 · Kozloski · 2016 [cited by examiner]
US 20170024640A1 · Deng · 2017 [cited by examiner]
US 20200210920A1 · Joseph · 2020 [cited by examiner]
US 20200293374A1 · Phuke · 2020 [cited by examiner]
US 20210287108A1 · Hwang · 2021 [cited by examiner]
US 20220327002A1 · Yang et al. · 2022 [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2023/033914 mailed on Jan. 3, 2024, 17 pages. [cited by applicant]
Yang et al., “Spot Virtual Machine Eviction Prediction in Microsoft Cloud,” Proceedings of the 23rd International Middleware Conference: Tutorials, ACMPUB27, New York, NY, USA, Apr. 25, 2022, 152-156 pages. [cited by applicant]
“Forecasting at Scale”, Retrieved From: https://facebook.github.io/prophet/, Retrieved on: Dec. 1, 2022, 4 Pages. [cited by applicant]
“Virtual Machines Selector”, Retrieved From: https://azure.microsoft.com/en-us/pricing/vm-selector/, Retrieved on: Dec. 1, 2022, 3 Pages. [cited by applicant]
International preliminary report on patentability Received for PCT Application No. PCT/US23/033914, mailed on Jun. 5, 2025, 10 Pages. [cited by applicant]