IP Library › Granted Patent US 9,858,107
Granted Patent B2
US 9,858,107 · App. 14/995,264 · Granted Jan 2, 2018

Method and apparatus for resolving contention at the hypervisor level

Inventors: Karla K. Arndt (Rochester, MN); Joseph W. Gentile (New Paltz, NY); Nicholas R. Jones (Poughkeepsie, NY); Nicholas C. Matsakis (Poughkeepsie, NY); David H. Surman (Marlboro, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F9/45558G06F9/5038G06F9/5077G06F2009/4557G06F2009/45595
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,858,107
App. No.
14/995,264
Granted
Jan 2, 2018
Kind
B2
Abstract

Aspects relate to a computer system and a computer implemented method for resolving abnormal contention on the computer system. The method includes detecting, using a processor and at a hypervisor level of the computer system, abnormal contention of a serially reusable resource caused by a first virtual machine. The abnormal contention includes the first virtual machine experiencing resource starvation of computer system resources used for processing the first virtual machine, causing the first virtual machine to block the serially reusable resource from a second virtual machine that is waiting to use the serially reusable resource. The method also includes adjusting resource allocation at the hypervisor level of the computer system resources for the first virtual machine, processing the first virtual machine based on the resource allocation, and releasing the serially reusable resource by the first virtual machine in response to the first virtual machine processing.

Claims (80)

1. A computer implemented method comprising:

operations to resolve abnormal contention on a computer system, the operations comprising:

detecting, using a processor and at a hypervisor level of the computer system, abnormal contention of a serially reusable resource caused by a first virtual machine, wherein the abnormal contention includes the first virtual machine experiencing resource starvation of computer system resources used for processing the first virtual machine, causing the first virtual machine to block the serially reusable resource from a second virtual machine that is waiting to use the serially reusable resource;

in response to the detecting, using the processor and at the hypervisor level of the computer system, the abnormal contention of the serially reusable resource caused by the first virtual machine, collecting resource data in a serialized resource history database and analyzing the resource data associated with the serially reusable resource;

in response to the collecting the resource data and the analyzing the resource data associated with the serially reusable resource, adjusting resource allocation at the hypervisor level of the computer system resources for the first virtual machine;

in response to the adjusting the resource allocation at the hypervisor level of the computer system resources for the first virtual machine, processing the first virtual machine based on the adjusted resource allocation; and

in response to the processing the first virtual machine based on the adjusted resource allocation, releasing the serially reusable resource by the first virtual machine.

2. The computer implemented method of claim 1 , wherein adjusting resource allocation at the hypervisor level of the computer system resources for the first virtual machine comprises:

collecting contention data from the serially reusable resource and processes from the first virtual machine and the second virtual machine that request and wait for the serially reusable resource;

selecting a resource allocation scheme based on the contention data; and executing the resource allocation scheme.

3. The computer implemented method of claim 2 , wherein the resource allocation scheme is at least one selected from a group consisting of:

adjusting resource priority values of the first virtual machine and the second virtual machine;

readjusting resource priority values of the first virtual machine and the second virtual machine;

adjusting priorities of all virtual machines in the computer system; and terminating and removing the first virtual machine, allowing the second virtual machine to begin processing.

4. The computer implemented method of claim 3 , wherein adjusting priorities of all virtual machines in the computer system comprises:

lowering the priorities of all the virtual machines in the computer system.

5. The computer implemented method of claim 2 , wherein selecting a resource allocation scheme based on the contention data comprises:

selecting the resource allocation scheme based on the resource allocation scheme that is least destructive to the processes of the first virtual machine.

6. The computer implemented method of claim 5 , wherein selecting a resource allocation scheme based on the contention data further comprises:

detecting abnormal contention events of the first virtual machine which are duplicates of events that have already been processed and counting how many times such events are detected;

determining whether the abnormal contention is resolved based on the detecting abnormal contention events and the counting how many times such events are detected;

selecting the resource allocation scheme based on whether the abnormal contention persisted after using another resource allocation scheme to try to remedy the abnormal contention; and

escalating to the selected resource allocation scheme in response to the another resource allocation scheme failing to remedy the abnormal contention.

7. The computer implemented method of claim 1 , wherein resource starvation is caused from one or more selected from a group consisting of processor resource starvation, memory resource starvation, and data bandwidth limitation.

8. The computer implemented method of claim 1 , wherein adjusting resource allocation at the hypervisor level of the computer system resources for the first virtual machine affects all processor resources assigned to the first virtual machine and the second virtual machine.

9. The computer implemented method of claim 1 , wherein adjusting resource allocation at the hypervisor level of the computer system resources for the first virtual machine comprises:

granting access to processor resources of at least one of the second virtual machine and spare processor resources available on the computer system.

10. The computer implemented method of claim 1 , wherein adjusting resource allocation at the hypervisor level of the computer system resources for the first virtual machine comprises:

granting access to at least one of available memory resources and network bandwidth.

11. A computer system comprising:

a memory having computer readable instructions to resolve abnormal contention; and

one or more processors for executing the computer readable instructions, the computer readable instructions comprising:

detecting, using a processor and at a hypervisor level of the computer system, abnormal contention of a serially reusable resource caused by a first virtual machine,

wherein the abnormal contention includes the first virtual machine experiencing resource starvation of computer system resources used for processing the first virtual machine, causing the first virtual machine to block the serially reusable resource from a second virtual machine that is waiting to use the serially reusable resource;

in response to the detecting, using the processor and at the hypervisor level of the computer system, the abnormal contention of the serially reusable resource caused by the first virtual machine, collecting resource data in a serialized resource history database and analyzing the resource data associated with the serially reusable resource;

in response to the collecting the resource data and the analyzing the resource data associated with the serially reusable resource, adjusting resource allocation at the hypervisor level of the computer system resources for the first virtual machine;

in response to the adjusting the resource allocation at the hypervisor level of the computer system resources for the first virtual machine, processing the first virtual machine based on the adjusted resource allocation; and

in response to the processing the first virtual machine based on the adjusted resource allocation, releasing the serially reusable resource by the first virtual machine.

12. The computer system of claim 11 , wherein adjusting resource allocation at the hypervisor level of the computer system resources for the first virtual machine comprises:

collecting contention data from the serially reusable resource and processes from the first virtual machine and the second virtual machine that request and wait for the serially reusable resource;

selecting a resource allocation scheme based on the contention data; and executing the resource allocation scheme.

13. The computer system of claim 12 ,

wherein the resource allocation scheme is at least one selected from a group consisting of:

adjusting resource priority values of the first virtual machine and the second virtual machine;

readjusting resource priority values of the first virtual machine and the second virtual machine;

adjusting priorities of all virtual machines in the computer system; and

terminating and removing the first virtual machine, allowing the second virtual machine to begin processing.

14. The computer system of claim 13 , wherein adjusting priorities of all virtual machines in the computer system comprises:

lowering the priorities of all the virtual machines in the computer system.

15. The computer system of claim 12 , wherein selecting a resource allocation scheme based on the contention data comprises:

selecting the resource allocation scheme based on the resource allocation scheme that is least destructive to the processes of the first virtual machine; and

selecting the resource allocation scheme that is least destructive based on how many attempts are made to fix the abnormal contention.

16. The computer system of claim 15 , wherein selecting a resource allocation scheme based on the contention data further comprises:

detecting abnormal contention events of the first virtual machine which are duplicates of events that have already been processed and counting how many times such events are detected;

determining whether the abnormal contention is resolved based on the detecting abnormal contention events and the counting how many times such events are detected;

selecting the resource allocation scheme based on whether the abnormal contention persisted after using another resource allocation scheme to try to remedy the abnormal contention; and

escalating to the selected resource allocation scheme in response to the another resource allocation scheme failing to remedy the abnormal contention.

17. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to:

detect, at a hypervisor level of a computer system, abnormal contention of a serially reusable resource caused by a first virtual machine,

wherein the abnormal contention includes the first virtual machine experiencing resource starvation of computer system resources used for processing the first virtual machine, causing the first virtual machine to block the serially reusable resource from a second virtual machine that is waiting to use the serially reusable resource;

in response to the detecting, using the processor and at the hypervisor level of the computer system, the abnormal contention of the serially reusable resource caused by the first virtual machine, collecting resource data in a serialized resource history database and analyzing the resource data associated with the serially reusable resource;

in response to the collecting the resource data and the analyzing the resource data associated with the serially reusable resource, adjust resource allocation at the hypervisor level of the computer system resources for the first virtual machine;

in response to the adjusting the resource allocation at the hypervisor level of the computer system resources for the first virtual machine, process the first virtual machine based on the adjusted resource allocation; and

in response to the processing the first virtual machine based on the adjusted resource allocation, release the serially reusable resource by the first virtual machine.

18. The computer program product for resolving abnormal contention of claim 17 , where adjusting resource allocation at the hypervisor level of the computer system resources for the first virtual machine comprises program instructions executable by the processor to cause the processor to:

collecting contention data from the serially reusable resource and processes from the first virtual machine and the second virtual machine that request and wait for the serially reusable resource;

select a resource allocation scheme based on the contention data; and

execute the resource allocation scheme, wherein the resource allocation scheme is at least one selected from a group consisting of:

adjusting resource priority values of the first virtual machine and the second virtual machine;

readjusting resource priority values of the first virtual machine and the second virtual machine;

adjusting priorities of all virtual machines in the computer system; and terminating and removing the first virtual machine, allowing the second virtual machine to begin processing.

19. The computer program product for resolving abnormal contention of claim 18 , wherein adjusting priorities of all virtual machines in the computer system comprises:

lowering the priorities of all the virtual machines in the computer system.

20. The computer program product for resolving abnormal contention of claim 18 , wherein selecting a resource allocation scheme based on the contention data comprises:

selecting the resource allocation scheme based on the resource allocation scheme that is least destructive to the processes of the first virtual machine;

selecting the resource allocation scheme that is least destructive based on how many attempts are made to fix the abnormal contention;

detecting abnormal contention events of the first virtual machine which are duplicates of events that have already been processed and counting how many times such events are detected;

determining whether the abnormal contention is resolved based on the detecting abnormal contention events and the counting how many times such events are detected;

selecting the resource allocation scheme based on whether the abnormal contention persisted after using another resource allocation scheme to try to remedy the abnormal contention; and

escalating to the selected resource allocation scheme in response to the another resource allocation scheme failing to remedy the abnormal contention.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2016
From: ARNDT, KARLA K.; GENTILE, JOSEPH W.; JONES, NICHOLAS R.; MATSAKIS, NICHOLAS C.; SURMAN, DAVID H.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037487/0544 →
Continuity (1)
Related Publication 20170206103A1 · Jul 20, 2017