Providing service quality levels through CPU scheduling
First Claim
1. A method for allocating computing resources in a virtualized environment, the method comprising:
- by a computer system comprising one or more processors;
allocating resource credits to virtual machine instances on the computing system, wherein the resource credits associated with a particular virtual machine instance are consumed based on usage of the one or more processors;
identifying a first set of one or more virtual machine instances, wherein each virtual machine instance of the first set has a number of resource credits below a first threshold level;
limiting usage of the one or more processors by the first set of virtual machine instances to a first resource limit, wherein the first resource limit is used to determine a rate at which each virtual machine instance of the first set can utilize the one or more processors, wherein the first resource limit is associated with virtual machines having a number of resource credits below the first threshold level;
identifying a second set of virtual machine instances, wherein each virtual machine instance in the second set has a number of resource credits above the first threshold level, wherein a rate at which virtual machine instances having resource credits above the first threshold level can utilize the one or more processors is greater than the rate associated with the first resource limit; and
prioritizing usage of the one or more processors by the second set of virtual machine instances over the first set of virtual machine instanceswherein limiting usage of the one or more processors by the first set of virtual machine instances to the first resource limit creates a reserve of unallocated computing resources and wherein the reserve computing resources are allocated to the second set of virtual machine instances having resource credits above the first threshold level.
1 Assignment
0 Petitions
Accused Products
Abstract
In this disclosure, a resource scheduler is described that allows virtual machine instances to earn resource credits during the low activity levels. Virtual machine instances that spend a predominant amount of time operating at low activity levels are able to quickly gain resource credits. Once these virtual machine instances acquire enough resource credits to surpass a threshold level, the resource scheduler can assign a high priority level to the virtual machine instances that provide them with priority access to CPU resources. The next time that the virtual machine instances enter a high activity level, they have a high priority level that allows them to preempt other, lower priority virtual machine instances. Thus, these virtual machine instances are able to process operations and/or respond to user requests with low latency.
51 Citations
21 Claims
-
1. A method for allocating computing resources in a virtualized environment, the method comprising:
-
by a computer system comprising one or more processors; allocating resource credits to virtual machine instances on the computing system, wherein the resource credits associated with a particular virtual machine instance are consumed based on usage of the one or more processors; identifying a first set of one or more virtual machine instances, wherein each virtual machine instance of the first set has a number of resource credits below a first threshold level; limiting usage of the one or more processors by the first set of virtual machine instances to a first resource limit, wherein the first resource limit is used to determine a rate at which each virtual machine instance of the first set can utilize the one or more processors, wherein the first resource limit is associated with virtual machines having a number of resource credits below the first threshold level; identifying a second set of virtual machine instances, wherein each virtual machine instance in the second set has a number of resource credits above the first threshold level, wherein a rate at which virtual machine instances having resource credits above the first threshold level can utilize the one or more processors is greater than the rate associated with the first resource limit; and prioritizing usage of the one or more processors by the second set of virtual machine instances over the first set of virtual machine instances wherein limiting usage of the one or more processors by the first set of virtual machine instances to the first resource limit creates a reserve of unallocated computing resources and wherein the reserve computing resources are allocated to the second set of virtual machine instances having resource credits above the first threshold level. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for allocating resources in a virtualized environment, the system comprising:
-
one or more processors; and a scheduler configured to provide prioritized access to the one or more processors by virtual machines instances that utilize the one or more processors, the scheduler configured to prioritize processor access by; allocating resource credits to the virtual machine instances; assigning priority levels to the virtual machine instances based on the resource credits associated with each virtual machine instance; limiting processor usage of virtual machine instances with resource credits below a threshold level; identifying one or more priority virtual machine instances with resource credits above the threshold level; and providing the one or more priority virtual machine instances with priority access to the one or more processors, wherein the rate at which the priority virtual machines instances can utilize the one or more processors is greater than the rate at which the virtual machines with resource credits below the threshold level can utilize the one or more processors, wherein limiting processor usage of the virtual machine instances with resource credits below the threshold level creates a reserve of unallocated computing resources and wherein the reserve computing resources are allocated to the one or more priority virtual machine instances having resource credits above the threshold level. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, direct a computing system to perform a method of computing resource allocation, the method comprising:
-
allocating resource credits to virtual machine instances of a computing system, wherein the resource credits associated with a particular virtual machine instance are consumed based on usage of computing resources by that particular virtual machine instance; providing the computing resources to the virtual machine instances based on resource limits associated with each of the virtual machine instances, wherein the resource limit is used to prevent virtual machine instances from utilizing the computing resources at an amount higher than the resource limit, the resource limit is used to determine a rate at which each virtual machine instance can utilize the one or more processors; lowering the resource limits associated with virtual machine instances having resource credits below a threshold amount, and removing resource limits associated with the one or more virtual machine instances having resource credits above the threshold amount, wherein the rate at which virtual machine instances having resource credits above the threshold amount can utilize the one or more processors is greater than the rate associated with virtual machine instances having resource credits below the threshold amount; and prioritizing access to the computing resources to the one or more virtual machine instances having resource credits above the threshold amount over virtual machine instances having resource credits below the threshold amount on the computing system, wherein lowering the resource limit creates a reserve of unallocated computing resources and wherein the reserve computing resources are allocated to the one or more virtual machine instances having resource credits above the threshold amount. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification