IP Library Granted Patent US 10,103,956
Granted Patent B2
US 10,103,956 · App. 14/501,820 · Granted Oct 16, 2018

Virtual machine processor and memory resource coordinator

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,103,956
App. No.
14/501,820
Granted
Oct 16, 2018
Kind
B2
Abstract

A network monitor is used to determine resource (e.g., CPU, memory, storage, or network) utilization of one or more virtual machines on one or more corresponding servers. Using resource utilization data for an original configuration of the virtual machines on the servers, the described system and methods simulate reconfigurations of various VMs on servers, determines resource utilization of the simulated reconfigurations, and proposes a reconfiguration that results in lower resource utilization across the one or more corresponding servers.

Claims (30)

1. A computer implemented method comprising:

receiving virtual machine utilization data per unit time in a time window for at least two virtual machines, the at least two virtual machines in a first configuration on at least two servers in a server cluster;

determining a CPU utilization metric and a memory utilization metric for each of the at least two virtual machines in the first configuration, wherein the CPU utilization metric comprises a prime utilization of CPU utilization, wherein the prime utilization comprises a mean utilization per unit time within the time window plus one standard deviation of utilization for each corresponding unit time;

simulating a second configuration of the at least two virtual machines on the at least two servers in the server cluster, wherein the second configuration comprises a movement of not more than a predetermined number of the at least two virtual machines between the at least two servers in the cluster;

determining a CPU utilization metric and a memory utilization metric for the at least two virtual machines corresponding to the simulated second configuration, wherein the memory utilization metric comprises a prime utilization of memory utilization;

determining, by a processing device, a first net utilization metric based on a first combination of the CPU utilization metric and the memory utilization metric for each of the at least two servers of the first configuration and determining a second net utilization metric based on a second combination of the CPU utilization metric and the memory utilization metric for each of the at least two servers of the simulated second configuration, wherein configurable weighting values are applied to the CPU utilization metric and the memory utilization metric in the first and second combinations to determine the first and second net utilization metrics;

comparing the first net utilization metric to the second net utilization metric; and

responsive to the second net utilization metric having a lower value that the first net utilization metric, reconfiguring the at least two virtual machines on the at least two servers according to the second configuration.

2. The method of claim 1 , wherein the CPU utilization metric further comprises a peak utilization of at least one of CPU utilization and the memory utilization metric comprises a peak utilization of memory utilization, wherein the peak utilization comprises a highest combined utilization for the at least two virtual machines in the time window.

3. The method of claim 1 , further comprising providing a recommendation of one of the first configuration and the second configuration.

4. The method of claim 1 , wherein the second configuration is determined by executing at least one swap function.

5. The method of claim 4 , wherein the at least one swap function comprises an N to N swap moving a number N of the at least two virtual machines from a first randomly selected server to a second randomly selected server and moving the number N of the at least two virtual machines from the second randomly selected server to the first randomly selected server.

6. The method of claim 4 , wherein the at least one swap function comprises a problem reduction swap for separating a first virtual machine on a first server from a correlated second virtual machine on the first server.

7. The method of claim 4 , wherein the at least one swap function comprises a chunk swap for exchanging at least one of the two or more virtual machines from a first server to a second server and at least one of the two or more virtual machines from the second server to the first server, the exchanged virtual machines of the first server and the second server having approximately the same resource utilization.

8. The method of claim 4 , wherein the at least one swap function comprises a friend swap for moving a first virtual machine having a first resource utilization pattern from a first server to a second server, the second server having a second virtual machine with a second resource utilization pattern that destructively interferes with the first utilization pattern of the first virtual machine.

9. A non-transitory computer-readable storage medium that includes instructions that, when loaded into memory, cause a processor to:

receive virtual machine utilization data per unit time in a time window for at least two virtual machines, the at least two virtual machines in a first configuration on at least two servers in a server cluster;

determine a CPU utilization metric and a memory utilization metric for each of the at least two virtual machines in the first configuration, wherein the CPU utilization metric comprises a prime utilization of CPU utilization, wherein the prime utilization comprises a mean utilization per unit time within the time window plus one standard deviation of utilization for each corresponding unit time;

simulate a second configuration of the at least two virtual machines on the at least two servers in the server cluster, wherein the second configuration comprises a movement of not more than a predetermined number of the at least two virtual machines between the at least two servers in the cluster;

determine a CPU utilization metric and a memory utilization metric for the at least two virtual machines corresponding to the simulated second configuration, wherein the memory utilization metric comprises a prime utilization of memory utilization;

determine a first net utilization metric based on a first combination of the CPU utilization metric and the memory utilization metric for each of the at least two servers of the first configuration and determining a second net utilization metric based on a second combination of the CPU utilization metric and the memory utilization metric for each of the at least two servers of the simulated second configuration, wherein configurable weighting values are applied to the CPU utilization metric and the memory utilization metric in the first and second combinations to determine the first and second net utilization metrics;

compare the first net utilization metric to the second net utilization metric; and

responsive to the second net utilization metric having a lower value that the first net utilization metric, reconfigure the at least two virtual machines on the at least two servers according to the second configuration.

10. The non-transitory computer-readable storage medium of claim 9 , wherein the CPU utilization metric further comprises a peak utilization of at least one of CPU utilization and the memory utilization metric comprises a peak utilization of memory utilization, wherein the peak utilization comprises a highest combined utilization for the at least two virtual machines in the time window.

11. The non-transitory computer-readable storage medium of claim 9 , wherein the instructions further cause the processor to provide a recommendation of one of the first configuration and the second configuration.

12. The non-transitory computer-readable storage medium of claim 9 , wherein the second configuration is determined by executing at least one swap function.

13. The non-transitory computer-readable storage medium of claim 12 , wherein the at least one swap function comprises an N to N swap moving a number N of the at least two virtual machines from a first randomly selected server to a second randomly selected server and moving the number N of the at least two virtual machines from the second randomly selected server to the first randomly selected server.

14. The non-transitory computer-readable storage medium of claim 12 , wherein the at least one swap function comprises a problem reduction swap for separating a first virtual machine on a first server from a correlated second virtual machine on the first server.

15. The non-transitory computer-readable storage medium of claim 12 , wherein the at least one swap function comprises a chunk swap for exchanging at least one of the two or more virtual machines from a first server to a second server and at least one of the two or more virtual machines from the second server to the first server, the exchanged virtual machines of the first server and the second server having approximately the same resource utilization.

16. The non-transitory computer-readable storage medium of claim 12 , wherein the at least one swap function comprises a friend swap for moving a first virtual machine having a first resource utilization pattern from a first server to a second server, the second server having a second virtual machine with a second resource utilization pattern that destructively interferes with the first utilization pattern of the first virtual machine.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Jan 13, 2022
From: TRIPLEPOINT VENTURE GROWTH BDC CORP., AS THE SECURED PARTY
To: VIRTUAL INSTRUMENTS WORLDWIDE, INC. F/K/A LOAD DYNAMIX, INC.
Reel/Frame 058652/0332 →
RELEASE OF SECURITY INTEREST Recorded Jan 10, 2022
From: WESTERN ALLIANCE BANK
To: VIRTUAL INSTRUMENTS CORPORATION
Reel/Frame 058612/0572 →
SECURITY INTEREST Recorded Jan 10, 2022
From: VIRTUAL INSTRUMENTS CORPORATION; VIRTUAL INSTRUMENTS WORLDWIDE, INC.; XANGATI, INC.
To: MIDTOWN MADISON MANAGEMENT LLC
Reel/Frame 058668/0268 →
RELEASE OF SECURITY INTEREST Recorded Jan 10, 2022
From: WESTERN ALLIANCE BANK
To: VIRTUAL INSTRUMENTS WORLDWIDE, INC.
Reel/Frame 058612/0102 →
SECURITY INTEREST Recorded Oct 10, 2018
From: VIRTUAL INSTRUMENTS WORLDWIDE, INC.
To: WESTERN ALLIANCE BANK
Reel/Frame 047127/0767 →
SECURITY INTEREST Recorded Sep 21, 2018
From: VIRTUAL INSTRUMENTS CORPORATION; VIRTUAL INSTRUMENTS USA, INC.; XANGATI, INC.; VIRTUAL INSTRUMENTS WORLDWIDE, INC.
To: TRIPLEPOINT VENTURE GROWTH BDC CORP.
Reel/Frame 046941/0930 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2018
From: VIRTUAL INSTRUMENTS CORPORATION
To: VIRTUAL INSTRUMENTS WORLDWIDE, INC.
Reel/Frame 046183/0524 →
SECURITY INTEREST Recorded Feb 21, 2017
From: VIRTUAL INSTRUMENTS CORPORATION
To: WESTERN ALLIANCE BANK
Reel/Frame 041326/0057 →