IP Library Granted Patent US 10,817,046
Granted Patent B2
US 10,817,046 · App. 16/236,939 · Granted Oct 27, 2020

Power saving through automated power scheduling of virtual machines

Inventors: Stefano Visconti (Cittiglio, IT); Kanika Dhyani (Pioltello, IT); Jeyashree Sivasubramanian (Wayland, MA); Marco Bertoli (Trecate, IT); Luca Poddigue (Pavia, IT)
Assignee: BMC Software, Inc.
G06F1/3287G06F1/28G06F1/329G06F9/45558G06F2009/4557G06F2009/45575G06F2009/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 10,817,046
App. No.
16/236,939
Granted
Oct 27, 2020
Kind
B2
Abstract

A plurality of virtual machines executing on physical machines may be monitored, and performance data characterizing consumption of physical resources of the physical machines by the plurality of virtual machines during the observation time may be extracted. Each of the plurality of virtual machines may be classified as active or idle during each time division of a plurality of time divisions of the observation time, based on the performance data and on idleness criteria, to thereby generate an active-idle series for each of the plurality of virtual machines. For each active-idle series of each virtual machine of the plurality of virtual machines, at least one periodicity of recurring idle times within the observation time may be determined. Then, for each virtual machine with the at least one periodicity, an on-off schedule may be determined, and each of the virtual machines may be transitioned with the at least one periodicity between an on state and an off state in accordance with the on-off schedule.

Claims (62)

1. A system including a non-transitory computer readable storage medium and at least one processor, wherein instructions stored on the non-transitory computer readable storage medium are configured to cause the at least one processor to:

monitor, for an observation time divided into time divisions, a plurality of virtual machines executing on physical machines;

extract performance data characterizing consumption of physical resources of the physical machines by the plurality of virtual machines during the observation time, the performance data being extracted with respect to each of the time divisions;

classify each of the plurality of virtual machines as active or idle during each time division of the observation time, based on the performance data and on idleness criteria, to thereby generate an active-idle series for each of the plurality of virtual machines;

determine, for each active-idle series of each virtual machine of the plurality of virtual machines, at least one periodicity of recurring idle times within the observation time;

predict, for each virtual machine with the at least one periodicity, an on-off schedule; and

transition each of the virtual machines with the at least one periodicity between an on state and an off state in accordance with the on-off schedule.

2. The system of claim 1 , wherein the time divisions are hours, and wherein the performance data includes hourly utilization of at least one processor of the physical machines, a network byte rate of data bytes exchanged with a network by the physical machines, and a data transfer rate of data bytes by a memory of the physical machines.

3. The system of claim 1 , wherein the idleness criteria include a predetermined set of utilization thresholds, for each time division, of two or more of at least one processor of the physical machines, a network byte rate of data bytes exchanged with a network by the physical machines, and a data transfer rate of data bytes by a memory of the physical machines.

4. The system of claim 1 , wherein the instructions, when executed to determine the at least one periodicity, are further configured to cause the at least one processor to:

examine the active-idle series for a data range that includes time units of one or more of days, weeks, or months; and

execute, for the active-idle series, a frequency analysis in which an active count percentage for each time division of the active-idle series, relative to the time units of the data range, is compared to a frequency threshold.

5. The system of claim 4 , wherein the instructions, when executed to predict the on-off schedule, are further configured to cause the at least one processor to:

predict the on-off schedule for each virtual machine based on the frequency analysis.

6. The system of claim 4 , wherein the instructions, when executed, are further configured to cause the at least one processor to:

calculate, prior to the transition, a reliability index of the on-off schedule during a reliability estimation time of the observation time, including comparing the on-off schedule calculated for each virtual machine to an actual schedule thereof during the reliability estimation time.

7. The system of claim 6 , wherein the instructions, when executed, are further configured to cause the at least one processor to:

determine that the reliability index is lower than a reliability threshold; and

adjust the frequency threshold to improve the reliability index; and

re-execute the frequency analysis with the adjusted frequency threshold.

8. The system of claim 1 , wherein the instructions, when executed, are further configured to cause the at least one processor to:

extract deployment metadata characterizing a manner in which each virtual machine is deployed during the observation time, including one or more of an installed application, a service, or an assigned user.

9. The system of claim 8 , wherein the instructions, when executed, are further configured to cause the at least one processor to:

define a group of the plurality of virtual machines, based on the deployment metadata and on similarity of on-off schedules of each virtual machine of the group;

determine a group on-off schedule for the group; and

transition the group between the on state and the off state collectively, and in accordance with the group on-off schedule.

10. The system of claim 1 , wherein the plurality of virtual machines are provided by at least two cloud providers providing the physical machines.

11. A method comprising:

monitoring, for an observation time divided into time divisions, a plurality of virtual machines executing on physical machines;

extracting performance data characterizing consumption of physical resources of the physical machines by the plurality of virtual machines during the observation time, the performance data being extracted with respect to each of the time divisions;

classifying each of the plurality of virtual machines as active or idle during each time division of the observation time, based on the performance data and on idleness criteria, to thereby generate an active-idle series for each of the plurality of virtual machines;

determining, for each active-idle series of each virtual machine of the plurality of virtual machines, at least one periodicity of recurring idle times within the observation time;

predicting, for each virtual machine with the at least one periodicity, an on-off schedule; and

transitioning each of the virtual machines with the at least one periodicity between an on state and an off state in accordance with the on-off schedule.

12. The method of claim 11 , wherein the time divisions are hours, and wherein the performance data includes hourly utilization of at least one processor of the physical machines, a network byte rate of data bytes exchanged with a network by the physical machines, and a data transfer rate of data bytes by a memory of the physical machines.

13. The method of claim 11 , wherein the idleness criteria include a predetermined set of utilization thresholds, for each time division, of two or more of at least one processor of the physical machines, a network byte rate of data bytes exchanged with a network by the physical machines, and a data transfer rate of data bytes by a memory of the physical machines.

14. The method of claim 11 , wherein the determining the at least one periodicity comprises:

examining the active-idle series for a data range that includes time units of one or more of days, weeks, or months; and

executing, for the active-idle series, a frequency analysis in which an active count percentage for each time division of the active-idle series, relative to the time units of the data range, is compared to a frequency threshold.

15. The method of claim 14 , wherein the predicting the on-off schedule comprises:

predicting the on-off schedule for each virtual machine based on the frequency analysis.

16. The method of claim 14 , further comprising:

calculating, prior to the transition, a reliability index of the on-off schedule during a reliability estimation time of the observation time, including comparing the on-off schedule calculated for each virtual machine to an actual schedule thereof during the reliability estimation time.

17. The method of claim 11 , further comprising:

extracting deployment metadata characterizing a manner in which each virtual machine is deployed during the observation time, including one or more of an installed application, a service, or an assigned user;

defining a group of the plurality of virtual machines, based on the deployment metadata and on similarity of on-off schedules of each virtual machine of the group;

determining a group on-off schedule for the group; and

transitioning the group between the on state and the off state collectively, and in accordance with the group on-off schedule.

18. A computer program product including instructions recorded on a non-transitory computer readable storage medium and configured, when executed by at least one semiconductor processor, to cause the at least one processor to:

access a set of idleness criteria for a plurality of virtual machines executing on a plurality of physical machines, the idleness criteria including a predetermined set of utilization thresholds, defined per time division, of one or more of at least one processor of the physical machines, a network byte rate of data bytes exchanged with a network by the physical machines, and a data transfer rate of data bytes by a memory of the physical machines;

extract performance data characterizing consumption of physical resources of the physical machines by the plurality of virtual machines during an observation time, the performance data extracted with respect to the time division during the observation time;

classify each virtual machine as active or idle during each time division of the observation time, based on a comparison of the performance data and the idleness criteria, to thereby obtain an active-idle series for each virtual machine;

examine the active-idle series for each virtual machine over a data range that includes time units of one or more of days, weeks, or months;

execute, for the active-idle series of each virtual machine, a frequency analysis in which an active count percentage for each time division of the active-idle series of each virtual machine, relative to the time units of the data range, is compared to a frequency threshold;

generate, for each virtual machine, a predicted on-off model, based on the frequency analysis; and

transition, following the observation time, each virtual machine between an on state and an off state, based on the predicted on-off model.

19. The computer program product of claim 18 , wherein the instructions, when executed, are further configured to cause the at least one processor to:

extract deployment metadata characterizing a manner in which each virtual machine is deployed during the observation time, including one or more of an installed application, a service, or an assigned user.

20. The computer program product of claim 19 , wherein the instructions, when executed, are further configured to cause the at least one processor to:

define a group of the plurality of virtual machines, based on the deployment metadata and on similarity of on-off schedules of each virtual machine of the group;

determine a group on-off schedule for the group; and

transition the group between the on state and the off state collectively, and in accordance with the group on-off schedule.

Assignments (12)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
SECURITY INTEREST Recorded Sep 10, 2019
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 050327/0634 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2019
From: VISCONTI, STEFANO; DHYANI, KANIKA; SIVASUBRAMANIAN, JEYASHREE; BERTOLI, MARCO; PODDIGUE, LUCA
To: BMC SOFTWARE, INC.
Reel/Frame 047923/0471 →