IP Library Granted Patent US 11,188,439
Granted Patent B2
US 11,188,439 · App. 15/952,824 · Granted Nov 30, 2021

Usage pattern virtual machine idle detection

Inventors: Aditya Gopisetti (Bangalore, IN); Chandrashekhar Jha (Bangalore, IN); Jobin Raju George (Bangalore, IN); Kumar Gaurav (Bangalore, IN); Jusvinder Singh (Bangalore, IN)
Assignee: VMware, Inc.
G06F11/3423G06F9/45558G06F11/301G06F2009/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 11,188,439
App. No.
15/952,824
Granted
Nov 30, 2021
Kind
B2
Abstract

The detection of idle virtual machines through usage pattern analysis is described. In one example, a computing device can collect utilization metrics from a virtual machine over time. The utilization metrics can be related to one or more processing usage, disk usage, network usage, and memory usage metrics, among others. The utilization metrics can be separated into a set of training metrics and a set of validation metrics, and a number of clusters can be determined based on the set of training metrics. The clusters can be used to organize the set of validation metrics into groups. Depending upon the number or overall percentage of the utilization metrics assigned to individual ones of the plurality of clusters, it is possible to determine whether or not the virtual machine is an idle virtual machine. Once identified, idle virtual machines can be shut down to conserve processing resources and costs.

Claims (55)

1. A non-transitory computer-readable medium embodying program code for detecting idle virtual machines that, when executed by at least one computing device, directs the at least one computing device to at least:

collect a plurality of utilization metrics from a virtual machine;

separate the plurality of utilization metrics into a set of training metrics and a set of validation metrics;

determine a plurality of clusters to be used for organizing the plurality of utilization metrics into groups based on the set of training metrics, the plurality of clusters being initialized based on different resources utilized by the virtual machine;

assign individual utilization metrics from among the set of validation metrics to individual ones of the plurality of clusters;

compute a percentage of utilization metrics assigned to individual ones of the plurality of clusters; and

determine that the virtual machine is an idle virtual machine in response to the percentage of utilization metrics assigned to one of the plurality of clusters being equal to or greater than a predetermined percentage.

2. The non-transitory computer-readable medium according to claim 1 , wherein the program code further directs the at least one computing device to at least remove outlier utilization metrics from among the plurality of utilization metrics.

3. The non-transitory computer-readable medium according to claim 1 , wherein the program code further directs the at least one computing device to at least normalize the plurality of utilization metrics.

4. The non-transitory computer-readable medium according to claim 1 , wherein individual ones of the plurality of utilization metrics comprise at least one of a processing unit utilization metric, a disk input/output (I/O) utilization metric, a network I/O utilization metric, and a memory utilization metric.

5. The non-transitory computer-readable medium according to claim 4 , wherein, to determine the plurality of clusters, the program code further directs the at least one computing device to at least:

initialize a center of at least one cluster among the plurality of clusters, the center being initialized based on a metric unit of at least one of processing unit utilization, disk I/O utilization, network I/O utilization, and a memory utilization for the virtual machine;

attribute a number of utilization metrics from among the set of training metrics to the at least one cluster based on a difference between individual ones of the number of utilization metrics and the center of the at least one cluster; and

update the center of the at least one cluster based on an average of the difference between individual ones of the number of utilization metrics from among the set of training metrics and the center of the at least one cluster.

6. The non-transitory computer-readable medium according to claim 4 , wherein the program code further directs the at least one computing device to at least notify an owner of the virtual machine that the virtual machine is idle.

7. The non-transitory computer-readable medium according to claim 4 , wherein the program code further directs the at least one computing device to at least notify an owner of the virtual machine that the virtual machine is being shut down.

8. The non-transitory computer-readable medium according to claim 4 , wherein the program code further directs the at least one computing device to at least shut down the virtual machine.

9. A method for detecting idle virtual machines, comprising:

collecting, by at least one computing device, a plurality of utilization metrics from a virtual machine;

determining, by the at least one computing device, a plurality of clusters to be used for organizing the plurality of utilization metrics into groups, the plurality of clusters being initialized based on different resources utilized by the virtual machine;

assigning, by the at least one computing device, individual utilization metrics from among the plurality of utilization metrics to individual ones of the plurality of clusters;

computing, by the at least one computing device, a percentage of utilization metrics assigned to individual ones of the plurality of clusters; and

determining, by the at least one computing device, that the virtual machine is an idle virtual machine in response to the percentage of utilization metrics assigned to one of the plurality of clusters being equal to or greater than a predetermined percentage.

10. The method for detecting idle virtual machines according to claim 9 ,

further comprising notifying an owner of the virtual machine that the virtual machine is idle.

11. The method for detecting idle virtual machines according to claim 9 , further comprising:

determining, by the at least one computing device, that the virtual machine is a utilized virtual machine in response to the percentage of utilization metrics assigned to two of the plurality of clusters being equal to or greater than a predetermined percentage.

12. The method for detecting idle virtual machines according to claim 9 , further comprising:

separating, by the at least one computing device, the plurality of utilization metrics into a set of training metrics and a set of validation metrics; and

determining the plurality of clusters based on the set of training metrics.

13. The method for detecting idle virtual machines according to claim 9 , further comprising:

removing, by the at least one computing device, outlier utilization metrics from among the plurality of utilization metrics; and

normalizing, by the at least one computing device, the plurality of utilization metrics.

14. The method for detecting idle virtual machines according to claim 9 , wherein individual ones of the plurality of utilization metrics comprise at least one of a processing unit utilization metric, a disk input/output (I/O) utilization metric, a network I/O utilization metric, and a memory utilization metric.

15. The method for detecting idle virtual machines according to claim 14 , wherein determining the plurality of clusters comprises:

initializing, by the at least one computing device, a center of at least one cluster among the plurality of clusters, the center being initialized based on a metric unit of at least one of processing unit utilization, disk I/O utilization, network I/O utilization, and a memory utilization for the virtual machine;

attributing, by the at least one computing device, a number of utilization metrics from among the plurality of utilization metrics to the at least one cluster based on a difference between individual ones of the number of utilization metrics and the center of the at least one cluster; and

updating, by the at least one computing device, the center of the at least one cluster based on an average of the difference between individual ones of the number of utilization metrics and the center of the at least one cluster.

16. A system for detecting idle virtual machines, comprising:

a memory device configured to store computer-readable instructions thereon; and

at least one computing device configured, through execution of the computer-readable instructions, to at least:

collect a plurality of utilization metrics from a virtual machine;

separate the plurality of utilization metrics into a set of training metrics and a set of validation metrics;

determine a plurality of clusters to be used for organizing the plurality of utilization metrics into groups based on the set of training metrics, the plurality of clusters being initialized based on different resources utilized by the virtual machine;

assign individual utilization metrics from among the set of validation metrics to individual ones of the plurality of clusters;

compute a percentage of utilization metrics assigned to individual ones of the plurality of clusters; and

determine that the virtual machine is an idle virtual machine in response to the percentage of utilization metrics assigned to one of the plurality of clusters being equal to or greater than a predetermined percentage.

17. The system according to claim 16 , wherein the at least one computing device is further configured to at least:

remove outlier utilization metrics from among the plurality of utilization metrics; and

normalize the plurality of utilization metrics.

18. The system according to claim 16 , wherein individual ones of the plurality of utilization metrics comprise at least one of a processing unit utilization metric, a disk input/output (I/O) utilization metric, a network I/O utilization metric, and a memory utilization metric.

19. The system according to claim 18 , wherein the at least one computing device is further configured to at least:

initialize a center of at least one cluster among the plurality of clusters, the center being initialized based on a metric unit of at least one of processing unit utilization, disk I/O utilization, network I/O utilization, and a memory utilization for the virtual machine;

attribute a number of utilization metrics among the set of training metrics to the at least one cluster based on a difference between individual ones of the number of utilization metrics and the center of the at least one cluster; and

update the center of the at least one cluster based on an average of the difference between individual ones of the number of utilization metrics from among the set of training metrics and the center of the at least one cluster.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2018
From: GOPISETTI, ADITYA; JHA, CHANDRASHEKHAR; GEORGE, JOBIN RAJU; GAURAV, KUMAR; SINGH, JUSVINDER
To: VMWARE, INC.
Reel/Frame 045537/0131 →
Continuity (1)
Related Publication 20190317873A1 · Oct 17, 2019
Cited By (1)
US 12,236,257