IP Library Granted Patent US 11,960,941
Granted Patent B2
US 11,960,941 · App. 17/738,920 · Granted Apr 16, 2024

Managing virtual machine memory balloon using time series predictive data

Inventors: Martin Sivak (Brno, CZ); Andrej Krejcir (Brno, CZ)
Assignee: Red Hat, Inc.
G06F9/5077G06F9/45558G06F2009/4557G06F2209/5011G06F2209/5019G06F2209/508
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 11,960,941
App. No.
17/738,920
Granted
Apr 16, 2024
Kind
B2
Abstract

A virtual machine's (VM's) usage of a resource over a first time period may be monitored to determine a load pattern for the VM. A time series analysis of the load pattern may be performed to generate a predictive resource usage model, the predictive resource usage model indicating one or more predicted variations in the usage of the resource by the VM over a second time period. A predicted resource usage of the VM at a future time that is within the second time period may be determined based, at least in part, on the predictive resource usage model. An amount of the resource to allocate to the VM at a current time may be determined based, at least in part, on the predicted resource usage of the VM at the future time and the actual resource usage of the VM at the current time.

Claims (58)

1. A method comprising:

monitoring, by the processing device, a resource usage by a virtual machine (VM) over a first time period to obtain a load pattern for the VM;

performing, by the processing device, a time series analysis of the load pattern to generate a predictive resource usage model, the predictive resource usage model indicating one or more predicted variations in the resource usage of the VM over a second time period;

determining, by the processing device, at least partially in view of the predictive resource usage model, a predicted resource usage of the VM at a future time that is within the second time period;

determining, by the processing device, an amount of the resource to allocate to the VM at a current time at least partially in view of the predicted resource usage of the VM at the future time and a resource reserve;

executing, by the processing device, the VM using the determined amount of allocated resources;

detecting, by the processing device, a difference between an actual resource usage and a predicted resource usage of the VM over a third time period;

adjusting, by the processing device, the predictive resource usage model in view of the difference between the actual resource usage and the predicted resource usage of the VM over the third time period to generate a corrected predictive resource usage model;

determining, by the processing device, a corrected amount of the resource to allocate to the VM in view of the corrected predictive resource usage model; and

executing, by the processing device, the VM using the corrected amount of the resource.

2. The method of claim 1 , wherein determining an amount of the resource to allocate to the VM comprises:

comparing the predicted resource usage of the VM at the future time to an actual resource usage of the VM at the current time; and

multiplying the larger of the predicted resource usage of the VM at the future time and the actual resource usage of the VM at the current time with the resource reserve.

3. The method of claim 2 , wherein the resource reserve comprises a minimum amount by which the amount of the resource allocated to the VM at the current time must exceed the actual resource usage of the VM at the current time.

4. The method of claim 1 , wherein the resource usage of the VM includes one of: memory usage of the VM, processor usage of the VM, input/output operation usage of the VM, storage bandwidth usage of the VM and network bandwidth usage of the VM.

5. The method of claim 1 , wherein the detecting a difference between an actual resource usage and a predicted resource usage of the VM and the adjusting the predictive resource usage model in view of the difference are performed periodically.

6. The method of claim 1 , wherein the determining a predicted resource usage of the VM at a future time and the determining an amount of the resource to allocate to the VM at a current time are performed periodically to account for the one or more predicted variations in the resource usage of the VM over the second time period.

7. A system comprising:

a memory to store one or more load patterns; and

a processing device to:

monitor a resource usage by a virtual machine (VM) over a first time period to obtain a load pattern for the VM;

perform a time series analysis of the load pattern to generate a predictive resource usage model, the predictive resource usage model indicating one or more predicted variations in the resource usage of the VM over a second time period;

determine, at least partially in view of the predictive resource usage model, a predicted resource usage of the VM at a future time that is within the second time period;

determine an amount of the resource to allocate to the VM at a current time at least partially in view of the predicted resource usage of the VM at the future time and a resource reserve;

execute the VM using the determined amount of allocated resources;

detect a difference between an actual resource usage and a predicted resource usage of the VM over a third time period;

adjust the predictive resource usage model in view of the difference between the actual resource usage and the predicted resource usage of the VM over the third time period to generate a corrected predictive resource usage model;

determine a corrected amount of the resource to allocate to the VM in view of the corrected predictive resource usage model; and

execute the VM using the corrected amount of the resource.

8. The system of claim 7 , wherein the processing device is further to:

detect a difference between an actual resource usage and a predicted resource usage of the VM over a third time period; and

adjust the predictive resource usage model in view of the difference.

9. The system of claim 8 , wherein the processing device detects a difference between an actual resource usage and a predicted resource usage of the VM and adjusts the predictive resource usage model in view of the difference periodically.

10. The system of claim 7 , wherein to determine an amount of the resource to allocate to the VM, the processing device is to:

compare the predicted resource usage of the VM at the future time to an actual resource usage of the VM at the current time; and

multiply the larger of the predicted resource usage of the VM at the future time and the actual resource usage of the VM at the current time with the resource reserve.

11. The system of claim 10 , wherein the resource reserve comprises a minimum amount by which the amount of the resource allocated to the VM at the current time must exceed the actual resource usage of the VM at the current time.

12. The system of claim 7 , wherein the resource usage of the VM includes one of: memory usage of the VM, processor usage of the VM, input/output operation usage of the VM, storage bandwidth usage of the VM and network bandwidth usage of the VM.

13. The system of claim 7 , wherein the processing device determines a predicted resource usage of the VM at a future time and determines an amount of the resource to allocate to the VM at a current time periodically to account for the one or more predicted variations in the resource usage of the VM over the second time period.

14. A non-transitory computer-readable storage medium including instructions that, when executed by a processing device, cause the processing device to:

monitor a resource usage by a virtual machine (VM) over a first time period to obtain a load pattern for the VM;

perform a time series analysis of the load pattern to generate a predictive resource usage model, the predictive resource usage model indicating one or more predicted variations in the resource usage of the VM over a second time period;

determine, at least partially in view of the predictive resource usage model, a predicted resource usage of the VM at a future time that is within the second time period;

determine, by the processing device, an amount of the resource to allocate to the VM at a current time at least partially in view of the predicted resource usage of the VM at the future time and a resource reserve;

execute the VM using the determined amount of allocated resources;

detect a difference between an actual resource usage and a predicted resource usage of the VM over a third time period;

adjust the predictive resource usage model in view of the difference between the actual resource usage and the predicted resource usage of the VM over the third time period to generate a corrected predictive resource usage model;

determine a corrected amount of the resource to allocate to the VM in view of the corrected predictive resource usage model; and

execute the VM using the corrected amount of the resource.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the processing device is further to:

detect a difference between an actual resource usage and a predicted resource usage of the VM over a third time period; and

adjust the predictive resource usage model in view of the difference.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the processing device detects a difference between an actual resource usage and a predicted resource usage of the VM and adjusts the predictive resource usage model in view of the difference periodically.

17. The non-transitory computer-readable storage medium of claim 14 , wherein to determine an amount of the resource to allocate to the VM, the processing device is to:

compare the predicted resource usage of the VM at the future time to an actual resource usage of the VM at the current time; and

multiply the larger of the predicted resource usage of the VM at the future time and the actual resource usage of the VM at the current time with the resource reserve.

18. The non-transitory computer-readable storage medium of claim 17 , wherein the resource reserve comprises a minimum amount by which the amount of the resource allocated to the VM at the current time must exceed the actual resource usage of the VM at the current time.

19. The non-transitory computer-readable storage medium of claim 14 , wherein the resource usage of the VM includes one of: memory usage of the VM, processor usage of the VM, input/output operation usage of the VM, storage bandwidth usage of the VM and network bandwidth usage of the VM.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2024
From: SIVAK, MARTIN; KREJCIR, ANDREJ
To: RED HAT, INC.
Reel/Frame 066756/0430 →
Continuity (2)
Continuation 16450558 · Jun 24, 2019
Related Publication 20220269547A1 · Aug 25, 2022