Dynamic consolidation of virtual machines
AssigneeOpen Invention Network, LLC
InventorJohn Michael Suit
Life of this patent
Estimating the term…
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.
Claims15
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.
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.
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.
Dependencies are inferred from the claim text.