IP Library Granted Patent US 9,753,760
Granted Patent B2
US 9,753,760 · App. 14/972,647 · Granted Sep 5, 2017

Prioritization of low active thread count virtual machines in virtualized computing environment

Inventors: Qunying Gao (Austin, TX); Peter J. Heyrman (Rochester, MN); Bret R. Olszewski (Austin, TX)
Assignee: International Business Machines Corporation
G06F9/45558G06F9/4881G06F9/5038G06F9/5077G06F2009/4557
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,753,760
App. No.
14/972,647
Granted
Sep 5, 2017
Kind
B2
Abstract

Virtual machines with low active thread counts are prioritized during periods of high system load in a virtualized computing environment to improve the performance of such virtual machines.

Claims (46)

1. An apparatus, comprising:

at least one processor; and

program code configured upon execution by the at least one processor to schedule virtual machines in a virtualized computing environment by:

determining that a first virtual machine among a plurality of virtual machines active in the virtualized computing system has a low active thread count;

determining that a high system load exists in the virtualized computing environment; and

in response to determining that the high system load exists in the virtualized computing environment, prioritizing scheduling of the first virtual machine over at least one other virtual machine among the plurality of virtual machines active in the virtualized computing system based upon the determination that the first virtual machine has the low active thread count;

wherein the program code is configured to determine that the first virtual machine has a low active thread count by monitoring counts of cycles consumed by a plurality of threads in a virtual processor and determining that the first virtual machine runs at a higher utilization level without exploiting at least a subset of the plurality of threads in the virtual processor.

2. The apparatus of claim 1 , wherein the program code comprises a hypervisor, and wherein the hypervisor is configured to schedule the plurality of virtual machines on the at least one processor.

3. The apparatus of claim 1 , wherein the at least one processor comprises at least one multi-threaded microprocessor.

4. A program product, comprising:

a non-transitory computer readable medium; and

program code stored on the non-transitory computer readable medium and configured upon execution by at least one processor to schedule virtual machines in a virtualized computing environment by:

determining that a first virtual machine among a plurality of virtual machines active in the virtualized computing system has a low active thread count;

determining that a high system load exists in the virtualized computing environment; and

in response to determining that the high system load exists in the virtualized computing environment, prioritizing scheduling of the first virtual machine over at least one other virtual machine among the plurality of virtual machines active in the virtualized computing system based upon the determination that the first virtual machine has the low active thread count;

wherein the program code is configured to determine that the first virtual machine has a low active thread count by monitoring counts of cycles consumed by a plurality of threads in a virtual processor and determining that the first virtual machine runs at a higher utilization level without exploiting at least a subset of the plurality of threads in the virtual processor.

5. The apparatus of claim 1 , wherein the program code is configured to determine that the first virtual machine has a low active thread count by:

sampling process identifiers for threads scheduled on one or more processors in the virtualized computing environment; and

determining that the first virtual machine has a low active thread count based upon the sampled processor identifiers.

6. The apparatus of claim 5 , wherein the program code is configured to determine that the first virtual machine has a low active thread count by determining that a first virtual processor for the first virtual machine has a low active thread count.

7. The apparatus of claim 1 , wherein the program code is configured to determine that the first virtual machine has a low active thread count by:

in a hypervisor, receiving an active thread count from the first virtual machine; and

determining that the first virtual machine has a low active thread count based upon the received active thread count.

8. The apparatus of claim 1 , wherein the program code is configured to determine that the high system load exists in the virtualized computing environment by determining when system load in the virtualized computing environment impacts performance of low active thread count virtual machines.

9. The apparatus of claim 8 , wherein the program code is configured to determine when system load in the virtualized computing environment impacts performance of low active thread count virtual machines by monitoring one or more performance metrics in the virtualized computing environment.

10. The apparatus of claim 9 , wherein the one or more performance metrics includes shared pool utilization, number of unique virtual machines dispatched within a time window and/or a measure of the locality of the virtual machine dispatches against non-local core resources.

11. The apparatus of claim 8 , wherein the program code is configured to determine when system load in the virtualized computing environment impacts performance of low active thread count virtual machines by detecting dispatches of many virtual machines and/or virtual processors on one or more processors over a time window.

12. The apparatus of claim 8 , wherein the program code is configured to determine when system load in the virtualized computing environment impacts performance of low active thread count virtual machines by detecting dispatches of many virtual machines and/or virtual processors against non-local processor resources.

13. The apparatus of claim 8 , wherein the program code is configured to determine when system load in the virtualized computing environment impacts performance of low active thread count virtual machines by:

determining one or more hardware characteristics of the first virtual machine;

determining one or more hardware characteristics of the virtualized computing environment; and

comparing the determined one or more hardware characteristics of the first virtual machine with the determined one or more hardware characteristics of the virtualized computing environment.

14. The apparatus of claim 1 , wherein the program code is configured to prioritize scheduling of the first virtual machine over at least one other virtual machine among the plurality of virtual machines active in the virtualized computing system based upon the determination that the first virtual machine has the low active thread count by scheduling the first virtual machine earlier in a dispatch window than the at least one other virtual machine based upon the determination that the first virtual machine has the low active thread count.

15. The apparatus of claim 1 , the program code is configured to prioritize scheduling of the first virtual machine over at least one other virtual machine among the plurality of virtual machines active in the virtualized computing system based upon the determination that the first virtual machine has the low active thread count by boosting priority of the first virtual machine based upon the determination that the first virtual machine has the low active thread count.

16. The apparatus of claim 1 , wherein the program code is configured to boost priority of the first virtual machine based upon the determination that the first virtual machine has the low active thread count by boosting an allocated time for the first virtual machine above entitlement.

17. The apparatus of claim 1 , wherein the first virtual machine has a primarily batch workload handled by a single thread.

18. An apparatus, comprising:

at least one processor; and

program code configured upon execution by the at least one processor to schedule virtual machines in a virtualized computing environment by:

determining that a first virtual machine among a plurality of virtual machines active in the virtualized computing system has a low active thread count;

determining that a high system load exists in the virtualized computing environment; and

in response to determining that the high system load exists in the virtualized computing environment, prioritizing scheduling of the first virtual machine over at least one other virtual machine among the plurality of virtual machines active in the virtualized computing system based upon the determination that the first virtual machine has the low active thread count;

wherein the program code is configured to determine that the high system load exists in the virtualized computing environment by determining when system load in the virtualized computing environment impacts performance of low active thread count virtual machines, and wherein the program code is configured to determine when system load in the virtualized computing environment impacts performance of low active thread count virtual machines by:

detecting dispatches of many virtual machines and/or virtual processors on one or more processors over a time window;

detecting dispatches of many virtual machines and/or virtual processors against non-local processor resources; or

determining one or more hardware characteristics of the first virtual machine, determining one or more hardware characteristics of the virtualized computing environment, and comparing the determined one or more hardware characteristics of the first virtual machine with the determined one or more hardware characteristics of the virtualized computing environment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2015
From: GAO, QUNYING; HEYRMAN, PETER J.; OLSZEWSKI, BRET R.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037317/0714 →
Continuity (1)
Related Publication 20170177393A1 · Jun 22, 2017