Closed-loop feedback mechanism for achieving optimum performance in a consolidated workload environment

US9727361B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9727361-B2
Application numberUS-201314104672-A
CountryUS
Kind codeB2
Filing dateDec 12, 2013
Priority dateDec 12, 2013
Publication dateAug 8, 2017
Grant dateAug 8, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Mechanisms are provided for dynamically adjusting assignment of software threads to hardware threads in virtual machine (VM) environments. The mechanisms receive, by a virtual machine manager (VMM), an indication of workload priority from a plurality of VMs. The indication indicates a priority of a workload executing on each VM in the plurality of VMs. The mechanisms provide, by the VMM, an indication of physical resource usage to each VM. The indication of physical resource usage is an indication of physical resource usage across all VMs in the plurality of VMs. The mechanisms automatically adjust, by each VM, assignment of corresponding software threads to hardware threads based on the indication of physical resource usage and a priority of a workload executing on the VM to achieve a balance of usage of hardware threads across all VMs in the plurality of VMs.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer program product comprising a computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on a data processing system, causes the data processing system to: receive, by a virtual machine manager (VMM) executing in the data processing system, an indication of workload priority from each virtual machine (VM) of a plurality of virtual machines (VMs) executing in the data processing system, wherein the indication indicates a priority of a workload executing on the VM determined from a priority policy associated with the VM; monitor, by the VMM, physical resource usage across all VMs in the plurality of VMs to determine a load level in the data processing system; send by the VMM in response to determining a high load level, a notification indicating the high load level to each VM in the plurality of VMs that is over-provisioned, wherein the notifications are sent in accordance with priorities of workloads executing on the VMs in the plurality of VMs such that notifications are sent to relatively low priority VMs prior to sending notifications to relatively high priority VMs in the plurality of VMs; and starting with relatively low priority VMs in the plurality of VM then by relatively higher priority VMs in the plurality of VMs, automatically adjust, by each VM in the plurality of VMs that is over-provisioned, assignment of corresponding software threads to hardware threads by performing one of folding or unfolding a number of virtual processors (VPs) allocated to the VM based on the indicated high load level and the priority of the workload executing on the VM, wherein performing one of folding or unfolding the number of VPs allocated to the adjusting VM comprises: determining whether the priority of the adjusting VM is relatively low or relatively high based on the priority policy associated with the adjusting VM; in response to the priority of the adjusting VM being relatively low, folding the number of VPs allocated to the VM down to a minimum number of VPs required for the workload executing on the adjusting VM and assigning software threads to all of the hardware threads represented by the allocated VPs of the adjusting VM to achieve complete utilization of allocated VPs of the adjusting VM; and in response to the priority of the adjusting VM being relatively high, folding or unfolding the number of VPs allocated to the adjusting VM covering a capacity above and beyond the entitlement of the adjusting VM to match the number of available processors from a set of shared resources available in the data processing system up to a maximum number of VPs associated with the adjusting VM, wherein software threads are assigned to only the primary hardware threads represented by the allocated VPs when allocated the maximum number of VPs. 2. The computer program product of claim 1 , wherein the VMM is a hypervisor executing in the data processing system. 3. The computer program product of claim 1 , wherein the program further causes the data processing system to: send, by the VMM in response to determining a low load level, a notification indicating the low load level to each VM in the plurality of VMs; and automatically adjust, by each relatively low priority VM in the plurality of VMs in response to receiving the notification indicating the low load level, assignment of corresponding software threads to hardware threads by unfolding VPs allocated to the VM up to a number of VPs greater than the minimum number of VPs and assigning software threads to less than all of the hardware threads represented by the allocated VPs. 4. The computer program product of claim 1 , wherein the computer readable program further causes the data processing system to: identify, by a first VM of the plurality of VMs, a change in the workload executing on the first VM; and send, by the first VM, an indication of workload priority for the changed workload to the VMM. 5. The computer program product of claim 1 , wherein at least one of the high priority workloads comprises a business critical database application. 6. The computer program product of claim 1 , wherein at least one of the low priority workloads comprises one of a test workload and a development workload. 7. An apparatus comprising: at least one physical processor; and a memory coupled to the at least one physical processor, wherein the memory comprises instructions which, when executed by the at least one physical processor, cause the at least one physical processor to: receive, by a virtual machine manager (VMM) executing in the apparatus, an indication of workload priority from each virtual machine (VM) of a plurality of virtual machines (VMs) executing in the apparatus, wherein the indication indicates a priority of a workload executing on the VM determined from a priority policy associated with the VM; monitor, by the VMM, physical resource usage across all VMs in the plurality of VMs to determine a load level in the apparatus; send, by the VMM in response to determining a high load level, a notification indicating the high load level to each VM in the plurality of VMs that is over-provisioned, wherein the notifications are sent in accordance with priorities of workloads executing on the VMs in the plurality of VMs such that notifications are sent to relatively low priority VMs prior to sending notifications to relatively high priority VMs in the plurality of VMs; and starting with relatively low priority VMs in the plurality of VM then by relatively higher priority VMs in the plurality of VMs, automatically adjust, by each VM in the plurality of VMs that is over-provisioned, assignment of corresponding software threads to hardware threads by performing one of folding or unfolding a number of virtual processors (VPs) allocated to the VM based on the indicated high load level and the priority of the workload executing on the VM, wherein performing one of folding or unfolding the number of VPs allocated to the adjusting VM comprises: determining whether the priority of the adjusting VM is relatively low or relatively high based on the priority policy associated with the adjusting VM; in response to the priority of the adjusting VM being relatively low, folding the number of VPs allocated to the VM down to a minimum number of VPs required for the workload executing on the adjusting VM and assigning software threads to all of the hardware threads represented by the allocated VPs of the adjusting VM to achieve complete utilization of allocated VPs of the adjusting VM; and in response to the priority of the adjusting VM being relatively high, folding or unfolding the number of VPs allocated to the adjusting VM covering a capacity above and beyond the entitlement of the adjusting VM to match the number of available processors from a set of shared resources available in the apparatus up to a maximum number of VPs associated with the adjusting VM, wherein software threads are assigned to only the primary hardware threads represented by the allocated VPs when allocated the maximum number of VPs. 8. The apparatus of claim 7 , wherein the VMM is a hypervisor executing in the apparatus. 9. The apparatus of claim 7 , wherein the instructions further cause the processor to: send, by the VMM in response to determining a low load level, a notification indicating the low load level to each VM in the plurality of VMs; and automatically adjust, by each relatively low priority VM in the plurality of VMs in response to receiving the notification indicating the low load level, assignment of corresponding software threads to hardware threads by unfolding VPs allocated to the VM up to a number of

Assignees

Inventors

Classifications

  • Cross-Sectional Technologies · mapped topic

  • Priority · CPC title

  • Resource capping · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

  • Techniques for rebalancing the load in a distributed system · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9727361B2 cover?
Mechanisms are provided for dynamically adjusting assignment of software threads to hardware threads in virtual machine (VM) environments. The mechanisms receive, by a virtual machine manager (VMM), an indication of workload priority from a plurality of VMs. The indication indicates a priority of a workload executing on each VM in the plurality of VMs. The mechanisms provide, by the VMM, an ind…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F9/45558. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 08 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).