IP Library Granted Patent US 9,804,874
Granted Patent B2
US 9,804,874 · App. 13/090,633 · Granted Oct 31, 2017

Consolidation of idle virtual machines on idle logical processors

Inventor: Thomas Fahrig (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F9/45558G06F9/5077G06F9/5094G06F2009/45591Y02B60/142Y02B60/167
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 9,804,874
App. No.
13/090,633
Granted
Oct 31, 2017
Kind
B2
Abstract

Idle virtual machine partitions in a virtualized computing environment are consolidated onto one or more idle logical processors. A hypervisor monitors the individual utilization of multiple virtual machine partitions in a computing environment and determines which virtual machine partitions are idle. The hypervisor also monitors the individual utilization of multiple logical processors in the computing environment and determines which logical processors are idle. The hypervisor schedules all of the idle virtual machine partitions on one or more of the idle logical processors. This can improve the performance for work-generating partitions and ensure compliance with service level agreements. At the same time, it can provide efficient power management in that is consolidates idle virtual machines onto a smaller subset of logical processors.

Claims (38)

1. A method for use by a hypervisor operating in a computer system which comprises a plurality of partitions operating on a plurality of logical processors, the method comprising:

monitoring utilization levels of the plurality of partitions;

determining that a subset of the plurality of partitions are idle based on the utilization level of the subset of the plurality of partitions being below a threshold;

monitoring utilization levels of the plurality of logical processors;

determining that a subset of logical processors of the plurality of the logical processors are idle based on the monitored utilization level of the subset of the plurality of logical processors being below an idle logical processor threshold percentage;

scheduling partitions of the subset of idle partitions on at least one of the logical processors in the subset of idle logical processors.

2. The method of claim 1 , wherein the monitored utilization levels of the plurality of logical processors comprise a utilization level based on the utilization of non-idle partitions, and wherein determining that the subset of logical processors are idle comprises comparing the monitored utilization level of each of the plurality of logical processors based on the utilization of non-idle partitions to an idle logical processor threshold.

3. The method of claim 2 , wherein the idle logical processor threshold is a predetermined logical processor utilization percentage.

4. The method of claim 2 , wherein determining that the subset of the plurality of partitions are idle comprises comparing the monitored utilization level of each of the plurality of partitions to an idle partition threshold.

5. The method of claim 1 , wherein determining that the subset of the plurality of partitions is idle comprises comparing the monitored utilization level of each of the plurality of partitions to an idle partition threshold.

6. The method of claim 5 , wherein the idle partition threshold is a predetermined partition utilization percentage.

7. The method of claim 6 , wherein each of the plurality of partitions which is not idle is scheduled on a different one of the plurality of logical processors.

8. The method of claim 1 , further comprising:

changing a power state of at least one of the plurality of logical processors based on the scheduling of each of the determined at least one idle partition.

9. The method of claim 1 , wherein any partition of the plurality of partitions determined to be idle is scheduled onto one or more logical processors determined to be idle.

10. The method of claim 9 , wherein any partition of the plurality of partitions that is not determined to be idle is scheduled onto the one or more logical processors determined to be idle.

11. A computing system, comprising:

at least one physical processor;

a plurality of partitions operating in the computing system;

a plurality of logical processors capable of hosting one or more of the plurality of partitions, each of the plurality of logical processors operating on the at least one physical processor; and

a hypervisor, wherein the hypervisor is configured to:

monitor utilization levels of the plurality of partitions and utilization levels of the plurality of logical processors operating on the at least one physical processor,

determine that a subset of the plurality of partitions are idle based on the monitored utilization levels of the subset of the plurality of partitions being below a threshold,

determine that a subset of logical processors of the plurality of logical processors are idle based on the monitored utilization levels of the subset of the plurality of logical processors being below an idle logical processor threshold percentage,

schedule partitions of the subset of idle partitions on at least one of the logical processors in the subset of idle logical processors.

12. The computing system of claim 11 , wherein the hypervisor is configured to monitor the utilization levels of the plurality of logical processors by monitoring a utilization level of each of the plurality of logical processors based on the utilization of non-idle partitions, and wherein the hypervisor is configured to determine that the subset of logical processors are idle by comparing the monitored utilization level of each of the plurality of logical processors based on the utilization of non-idle partitions to an idle logical processor threshold.

13. The computing system of claim 12 , wherein the idle logical processor threshold is a predetermined logical processor utilization percentage.

14. The computing system of claim 12 , wherein the hypervisor is configured to determine that at least one partition of the plurality of partitions is idle by comparing the monitored utilization level of each of the plurality of partitions to an idle partition threshold.

15. The computing system of claim 11 , wherein the hypervisor is configured to determine that at least one partition of the plurality of partitions is idle by comparing the monitored utilization level of each of the plurality of partitions to an idle partition threshold.

16. The computing system of claim 15 , wherein the idle partition threshold is a predetermined partition utilization percentage.

17. A computer readable storage device excluding signals per se tangibly embodying computer readable instructions of a hypervisor for execution in a computing environment comprising a plurality of logical processors and a plurality of partitions, the instructions comprising:

instructions to monitor utilization levels of the plurality of partitions;

instructions to monitor utilization levels of the plurality of logical processors;

instructions to determine that a subset of the plurality of partitions are idle based on the utilization levels of the subset of the plurality of partitions being below a threshold;

instructions to determine that a subset of logical processors of the plurality of logical processors are idle based on the monitored utilization levels of the subset of the plurality of logical processors being below an idle logical processor threshold percentage;

instructions to schedule partitions of the subset of idle partitions on at least one of the logical processors in the subset of idle logical processors.

18. The computer readable storage device excluding signals per se of claim 17 , wherein the instructions to monitor utilization levels of the plurality of logical processors comprise instructions to monitor a utilization level of each of the plurality of logical processors based on the utilization of non-idle partitions, and wherein the instructions to determine that a subset of the plurality of logical processors are idle comprise instructions to compare the monitored utilization level of each of the plurality of logical processors based on the utilization of non-idle partitions to an idle logical processor threshold.

19. The computer readable storage device excluding signals per se of claim 17 , wherein instructions to determine that a subset of the plurality of partitions are idle comprise instructions to compare the monitored utilization level of each of the plurality of partitions to an idle partition threshold.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2011
From: FAHRIG, THOMAS
To: MICROSOFT CORPORATION
Reel/Frame 026267/0079 →
Continuity (1)
Related Publication 20120272235A1 · Oct 25, 2012