IP Library Granted Patent US 10,592,266
Granted Patent B1
US 10,592,266 · App. 14/700,375 · Granted Mar 17, 2020

Dynamic consolidation of virtual machines

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,592,266
App. No.
14/700,375
Granted
Mar 17, 2020
Kind
B1
Abstract

A method and apparatus are disclosed of monitoring a number of virtual machines operating in an enterprise network. One example method of operation may include identifying a number of virtual machines currently operating in an enterprise network and determining performance metrics for each of the virtual machines. The method may also include identifying at least one candidate virtual machine from the virtual machines to optimize its active application load and modifying the candidate virtual machine to change its active application load.

Claims (37)

1. A method, comprising:

determining a plurality of performance metrics for each of a plurality of virtual machines, wherein the plurality of performance metrics comprise at least one of memory usage and processor (CPU) usage currently utilized by the plurality of virtual machines;

modifying a candidate virtual machine from the plurality of virtual machines to optimize its respective active application load based on at least one of the memory usage and the processor usage of the candidate virtual machine;

wherein the modifying the candidate virtual machine changes its active application load by increasing or decreasing a total number of applications operated by the active application load assigned to the candidate virtual machine;

generating a new application pool for the candidate virtual machine comprising a new application mix of a plurality of applications with at least one change from a present application pool currently assigned to the candidate virtual machine, wherein the at least one change in the present application pool comprises an increase or decrease in a number of applications included in the present application pool assigned to the candidate virtual machine, and wherein the new application pool comprises at least two applications which are assigned to the candidate virtual machine;

storing the new application pool based on the new application mix, which comprises a total number of applications and application names identifying each of the at least two applications assigned to the candidate virtual machine, in a configuration file, wherein the configuration file comprises the new application pool and a reallocation list of the plurality of performance metrics including the memory usage and the CPU usage assigned to each of the plurality of applications assigned to the candidate virtual machine, wherein each of the plurality of applications have different configuration mixes of amounts of the memory usage and the CPU usage assigned to the respective plurality of applications to be used by the candidate virtual machine;

transmitting the configuration file to the candidate virtual machine; and

reallocating at least one performance metric used by the candidate virtual machine based on the configuration file.

2. The method of claim 1 , wherein the active application load is optimized by increasing a number of active applications currently operated by the candidate virtual machine.

3. The method of claim 1 , wherein the active application load is optimized by decreasing a number of active applications currently operated by the candidate virtual machine.

4. The method of claim 1 , wherein the plurality of performance metrics further comprise at least one of a number of active applications, an amount of processor (CPU) utilization, an amount of memory, and an amount of data storage.

5. The method of claim 1 , further comprising periodically repeating the determining of the plurality of performance metrics for each of the plurality of virtual machines to determine additional optimization modifications to the plurality of virtual machines.

6. An apparatus, comprising:

at least one processor configured to:

determine a plurality of performance metrics for each of a plurality of virtual machines, wherein the plurality of performance metrics comprise at least one of memory usage and processor (CPU) usage currently utilized by the plurality of virtual machines;

modify a candidate virtual machine from the plurality of virtual machines to optimize its respective active application load based on at least one of the memory usage and the processor usage of the candidate virtual machine;

wherein the modification of the candidate virtual machine to change its active application load by an increase or decrease to a total number of applications operated by the active application load assigned to the candidate virtual machine;

generate a new application pool for the candidate virtual machine comprising a new application mix of a plurality of applications with at least one change from a present application pool currently assigned to the candidate virtual machine, wherein the at least one change in the present application pool comprises an increase or decrease in a number of applications included in the present application pool assigned to the candidate virtual machine, and wherein the new application pool comprises at least two applications which are assigned to the candidate virtual machine;

store the new application pool based on the new application mix, which comprises a total number of applications and application names identifying each of the at least two applications assigned to the candidate virtual machine, in a configuration file, wherein the configuration file comprises the new application pool and a reallocation list of the plurality of performance metrics including the memory usage and the CPU usage assigned to each of the plurality of applications assigned to the candidate virtual machine, wherein each of the plurality of applications have different configuration mixes of amounts of the memory usage and the CPU usage assigned to the respective plurality of applications to be used by the candidate virtual machine; and

a transmitter configured to transmit the configuration file to the candidate virtual machine,

wherein the processor is further configured to reallocate at least one performance metric used by the candidate virtual machine based on the configuration file.

7. The apparatus of claim 6 , wherein the active application load is optimized by an increase in a number of active applications currently operated by the candidate virtual machine.

8. The apparatus of claim 6 , wherein the active application load is optimized by a decrease in a number of active applications currently operated by candidate virtual machine.

9. The apparatus of claim 6 , wherein the plurality of performance metrics further comprise at least one of a number of active applications, an amount of processor (CPU) utilization, an amount of memory, and an amount of data storage.

10. The apparatus of claim 6 , wherein the at least one processor is further configured to periodically repeat the plurality of performance metrics determined for each of the plurality of virtual machines to determine additional optimization modifications to the plurality of virtual machines.

11. A non-transitory computer readable storage medium configured to store instructions that, when executed by at least one processor, cause the at least one processor to:

determine a plurality of performance metrics for each of a plurality of virtual machines, wherein the plurality of performance metrics comprise at least one of memory usage and processor (CPU) usage currently utilized by the plurality of virtual machines;

modify a candidate virtual machine from the plurality of virtual machines to optimize its respective active application load based on at least one of the memory usage and the processor usage of the candidate virtual machine;

wherein the modification of the candidate virtual machine changes its active application load by an increase or decrease to a total number of applications operated by the active application load assigned to the candidate virtual machine;

generate a new application pool for the candidate virtual machine comprising a new application mix of a plurality of applications with at least one change from a present application pool currently assigned to the candidate virtual machine, wherein the at least one change in the present application pool comprises an increase or decrease in a number of applications included in the present application pool assigned to the candidate virtual machine, and wherein the new application pool comprises at least two applications which are assigned to the candidate virtual machine;

store the new application pool based on the new application mix, which comprises a total number of applications and application names identifying each of the at least two applications assigned to the candidate virtual machine, in a configuration file, wherein the configuration file comprises the new application pool and a reallocation list of the plurality of performance metrics including the memory usage and the CPU usage assigned to each of the plurality of applications assigned to the candidate virtual machine, wherein each of the plurality of applications have different configuration mixes of amounts of the memory usage and the CPU usage assigned to the respective plurality of applications to be used by the candidate virtual machine;

transmit the configuration file to the candidate virtual machine; and

reallocate at least one performance metric used by the candidate virtual machine based on the configuration file.

12. The non-transitory computer readable storage medium of claim 11 , wherein the active application load is optimized by increasing a number of active applications currently operated by the candidate virtual machine.

13. The non-transitory computer readable storage medium of claim 11 , wherein the active application load is optimized by decreasing a number of active applications currently operated by the candidate virtual machine.

14. The non-transitory computer readable storage medium of claim 11 , wherein the plurality of performance metrics further comprise at least one of a number of active applications, an amount of processor (CPU) utilization, an amount of memory, and an amount of data storage.

15. The non-transitory computer readable storage medium of claim 11 , wherein the instructions are further configured to cause the at least one processor to periodically repeat the determining of the plurality of performance metrics for each of the plurality of virtual machines to determine additional optimization modifications to the plurality of virtual machines.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2022
From: OPEN INVENTION NETWORK LLC
To: GOOGLE LLC
Reel/Frame 058657/0744 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 13, 2020
From: SUIT, JOHN MICHAEL
To: OPEN INVENTION NETWORK LLC
Reel/Frame 054717/0277 →