USRE48714EActiveUtility

Managing application performance in virtualization systems

92
Assignee: TURBONOMIC INCPriority: Jun 26, 2009Filed: Jul 28, 2020Granted: Aug 31, 2021
Est. expiryJun 26, 2029(~3 yrs left)· nominal 20-yr term from priority
H04L 41/40G06F 2009/45591G06F 9/45558G06F 9/5077G06F 2009/4557H04L 41/5006H04L 41/5025H04L 41/5009G06Q 10/06315H04L 67/1023G06Q 30/0601G06F 2009/45579H04L 41/5003G06F 9/5011H04L 41/5054H04L 41/5029
92
PatentIndex Score
8
Cited by
128
References
23
Claims

Abstract

Methods, systems, and apparatus, including computer program products, for assuring application performance by matching the supply of resources (e.g., application resources, VM resources, or physical resources) with the fluctuating demand placed on the application. For example, the systems and methods disclosed herein can be used to ensure that the application is allocated sufficient resources when it is initially deployed to handle anticipated demand; dynamically alter the resources allocated to the application during operation by matching the resource requirements to the actual measured application demand; and predict future resource requirements based on planning assumptions related to future application demand.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A computer-implemented method for dynamic allocation of abstracted computer resources in a virtualization system, comprising:
 determining, by an application manager running on a data processor in the virtualization system, a computer resource bundle to be purchased for a computer application running on a virtual machine in the virtualization system, using the computer application's available budget of virtual currency units; 
 automatically allocating the computer resource bundle from a computer server in the virtualization system for usage by the application; 
 determining, following an increase in the purchase price for the allocated computer resource bundle based at least in part on increased utilization of at least part of the bundle, that there is not sufficient budget of remaining virtual currency units available to pay for the application's continued usage of the entire bundle; 
 initiating a credit check process by the application manager, wherein the credit check process results in an increase in the application's budget of available virtual currency units; and 
 using the increased budget of available virtual currency units to purchase, for the application, continued usage of a determined amount of the bundle able to be purchased using the increased budget, 
 wherein the virtual machine is a software implementation of a computer that runs at least one guest operating system and executes one or more applications on the guest operating system. 
 
     
     
       2. The computer-implemented method of  claim 1 , further comprising:
 receiving, from a proxy manager of a second virtualization system offering the computer resource bundle, a purchase price for the determined computer resource bundle in virtual currency units, wherein the second virtualization system also runs at least one guest operating system; 
 determining, following initiation of the credit check process, whether the determined computer resource bundle is to be purchased from a second computer server in the second virtualization system based at least in part on the purchase price received from the proxy manager of the second virtualization system; and 
 allocating the computer resource bundle from the second computer server in the second virtualization system to the application. 
 
     
     
       3. The computer-implemented method of  claim 1 , further comprising:
 maintaining a budget, in virtual currency units, for the application; 
 determining whether the budget of virtual currency units for the application is sufficient to pay the purchase price for the computer resource bundle; 
 allocating the computer resource bundle to the application only if the budget of the application has been determined to be sufficient to pay the purchase price for the computer resource bundle; and 
 transferring virtual currency units from the budget for the application to a budget for the computer server based on the purchase price for the computer resource bundle determined for the computer server. 
 
     
     
       4. The computer-implemented method of  claim 1 , wherein the computer resource bundle includes one or more computer resources, the method further comprising:
 determining a performance metric level of the application; and 
 adjusting the allocation of at least one of the one or more computer resources to the application based on a comparison of the determined performance metric level to a predetermined threshold performance metric level. 
 
     
     
       5. The computer-implemented method of  claim 4 , wherein the performance metric level of the application is correlated to at least one of the transaction rate for the application, the number of transactions performed by the application, and the completion time or delay for the application. 
     
     
       6. The computer-implemented method of  claim 1 , wherein the computer resource bundle includes one or more computer resources, the method further comprising:
 determining a performance metric level of the application; and 
 adjusting a budget of virtual currency units for the application based on a comparison of the determined performance metric level to a predetermined threshold performance metric level. 
 
     
     
       7. The computer-implemented method of  claim 1 , wherein the computer resource bundle includes at least one of an allotment of computer memory, an allotment of program execution scheduling for one or more central processing units, an allotment of storage interface bandwidth, an allotment of network interface bandwidth, and an allotment of a storage array. 
     
     
       8. The computer-implemented method of  claim 2 , wherein the allocating the computer resource bundle from the second computer server to the application comprises moving the application to the second computer server. 
     
     
       9. The computer-implemented method of  claim 1 , wherein the allocated computer resource bundle includes at least a first computer resource and a second computer resource, the method further comprising de-allocating the first computer resource based at least in part on a comparison of a determined usage of the first computer resource to a determined usage of the second computer resource. 
     
     
       10. The computer-implemented method of  claim 1 , wherein the computer resource bundle includes multiple computer resources, and wherein the determining a computer resource bundle to be purchased is based at least in part on a computed utilization of one of the multiple computer resources. 
     
     
       11. The computer-implemented method of  claim 10 , further comprising increasing the amount of the computer resource bundle to be purchased if it is determined that the computed utilization of the one of the multiple computer resources is below a predetermined threshold. 
     
     
       12. The computer-implemented method of  claim 10 , further comprising decreasing the amount of the computer resource bundle to be purchased if is determined that the computed utilization of the one of the multiple computer resources is above a predetermined threshold. 
     
     
       13. The computer-implemented method of  claim 1 , wherein the determining a purchase price for the computer resource bundle includes receiving one or more auction bids for purchase of the computer resource bundle. 
     
     
       14. The computer-implemented method of  claim 1 , further comprising converting virtual currency units to government issued monetary currency based on a predetermined exchange rate. 
     
     
       15. The method of  claim 1 , wherein the step of using the increased budget comprises purchasing, for the application, continued usage of a reduced amount of the bundle. 
     
     
       16. The method of  claim 1 , wherein the step of using the increased budget comprises purchasing, for the application, continued usage of less than the full amount of the bundle able to be purchased based on the application's increased budget. 
     
     
       17. A system for regulating dynamic allocation of abstracted computer resources, comprising:
 a computer-based virtualization system that runs at least one guest operating system; and 
 instructions stored on a non-transitory computer readable medium in the virtualization system and executable by a data processing apparatus to cause the data processing apparatus to perform operations comprising:
 determining, by an application manager running on a data processor in the virtualization system, a computer resource bundle to be purchased for a computer application running on a virtual machine in the virtualization system, using the computer application's available budget of virtual currency units; 
 automatically allocating the computer resource bundle from a computer server in the virtualization system for usage by the application; 
 determining, following an increase in the purchase price for the allocated computer resource bundle based at least in part on increased utilization of at least part of the bundle, that there is not sufficient budget of remaining virtual currency units available to pay for the application's continued usage of the entire allocated bundle; 
 initiating a credit check process by the application manager, wherein the credit check process results in an increase in the application's budget of available virtual currency units; and 
 using the increased budget of available virtual currency units to purchase, for the application, continued usage of a determined amount of the bundle able to be purchased using the increased budget, 
 wherein the virtual machine is a software implementation of a computer that runs at least one guest operating system and executes one or more programs or applications on the guest operating system. 
 
 
     
     
       18. The system of  claim 17 , the operations further comprising:
 receiving, from a proxy manager of a second virtualization system offering the computer resource bundle, a purchase price for the determined computer resource bundle in virtual currency units, wherein the second virtualization system also runs at least one guest operating system; 
 determining, following initiation of the credit check process, whether the determined computer resource bundle is to be purchased from a second computer server in the second virtualization system based at least in part on the purchase price received from the proxy manager of the second virtualization system; and 
 allocating the computer resource bundle from the second computer server in the second virtualization system to the application. 
 
     
     
       19. The system of  claim 17 , the operations further comprising:
 maintaining a budget, in virtual currency units, for the application; 
 determining whether the budget of virtual currency units for the application is sufficient to pay the purchase price for the computer resource bundle; 
 allocating the computer resource bundle to the application only if the budget of the application has been determined to be sufficient to pay the purchase price for the computer resource bundle; and 
 transferring virtual currency units from the budget for the application to a budget for the computer server based on the purchase price for the computer resource bundle determined for the computer server. 
 
     
     
       20. The system of  claim 17 , the operations further comprising:
 determining a performance metric level of the application; and 
 adjusting a budget of virtual currency units for the application based on a comparison of the determined performance metric level to a predetermined threshold performance metric level. 
 
     
     
       21. The system of  claim 17 , wherein the computer resource bundle includes at least one of an allotment of computer memory, an allotment of program execution scheduling for one or more central processing units, an allotment of storage interface bandwidth, an allotment of network interface bandwidth, and an allotment of a storage array. 
     
     
       22. The system of  claim 18 , wherein the allocating the computer resource bundle from the second computer server to the application comprises moving the application to the second computer server. 
     
     
       23. The system of  claim 17 , wherein the allocated computer resource bundle includes at least a first computer resource and a second computer resource, the instructions further causing the data processing apparatus to de-allocate the first computer resource based at least in part on a comparison of a determined usage of the first computer resource to a determined usage of the second computer resource.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.