Automated profiling of resource usage
First Claim
1. A system for managing shared computing resources, the system comprising:
- one or more processors; and
a computer-readable memory storing executable instructions that, when executed by the one or more processors, configure the system to at least;
obtain a first resource profile associated with a first virtual machine, wherein a first instance of the first virtual machine is executed on a first computing device of a plurality of computing devices;
obtain a second resource profile associated with a second virtual machine, wherein a second instance of the second virtual machine is executed on the first computing device;
determine, based at least in part on the first resource profile, a first expected usage amount of a computing resource at a particular time;
determine, based at least in part on the second resource profile, a second expected usage amount of the computing resource at the particular time;
calculate a total expected usage amount, the total expected usage amount comprising a sum of the first expected usage amount and the second expected usage amount;
determine that the total expected usage amount is greater than an available amount of the computing resource on the first computing device at the particular time;
in response to determining that the total expected usage amount is greater than the available amount;
determine that an existing virtual machine instance executed on the second computing device is using or is expected to use less than all of a quantity of the computing resource reserved for the existing virtual machine instance on the second computing device;
select the second computing device from the plurality of computing devices based at least in part on determining that the existing virtual machine instance executed on the second computing device is using less than all of a quantity of the computing resource reserved for the existing virtual machine instance on the second computing device; and
continue execution of the first instance of the first virtual machine on the first computing device and transfer execution of the second instance to a second computing device of the plurality of computing devices.
0 Assignments
0 Petitions
Accused Products
Abstract
Operating profiles for consumers of computing resources may be automatically determined based on an analysis of actual resource usage measurements and other operating metrics. Measurements may be taken while a consumer, such as a virtual machine instance, uses computing resources, such as those provided by a host. A profile may be dynamically determined based on those measurements. Profiles may be generalized such that groups of consumers with similar usage profiles are associated with a single profile. Assignment decisions may be made based on the profiles, and computing resources may be reallocated or oversubscribed if the profiles indicate that the consumers are unlikely to fully utilize the resources reserved for them. Oversubscribed resources may be monitored, and consumers may be transferred to different resource providers if contention for resources is too high.
1514 Citations
16 Claims
-
1. A system for managing shared computing resources, the system comprising:
-
one or more processors; and a computer-readable memory storing executable instructions that, when executed by the one or more processors, configure the system to at least; obtain a first resource profile associated with a first virtual machine, wherein a first instance of the first virtual machine is executed on a first computing device of a plurality of computing devices; obtain a second resource profile associated with a second virtual machine, wherein a second instance of the second virtual machine is executed on the first computing device; determine, based at least in part on the first resource profile, a first expected usage amount of a computing resource at a particular time; determine, based at least in part on the second resource profile, a second expected usage amount of the computing resource at the particular time; calculate a total expected usage amount, the total expected usage amount comprising a sum of the first expected usage amount and the second expected usage amount; determine that the total expected usage amount is greater than an available amount of the computing resource on the first computing device at the particular time; in response to determining that the total expected usage amount is greater than the available amount; determine that an existing virtual machine instance executed on the second computing device is using or is expected to use less than all of a quantity of the computing resource reserved for the existing virtual machine instance on the second computing device; select the second computing device from the plurality of computing devices based at least in part on determining that the existing virtual machine instance executed on the second computing device is using less than all of a quantity of the computing resource reserved for the existing virtual machine instance on the second computing device; and continue execution of the first instance of the first virtual machine on the first computing device and transfer execution of the second instance to a second computing device of the plurality of computing devices. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A computer-implemented method for managing shared computing resources, the computer-implemented method comprising:
-
obtaining a first resource profile associated with a first virtual machine, wherein a first instance of the first virtual machine is executed on a first computing device of a plurality of computing devices; obtaining a second resource profile associated with a second virtual machine, wherein a second instance of the second virtual machine is executed on the first computing device; calculating a total expected usage amount, the total expected usage amount comprising a sum of a first expected usage amount based at least in part on the first resource profile and a second expected usage amount based at least in part on the second resource profile; determining that the total expected usage amount is greater than an available amount of a computing resource on the first computing device at a particular time; in response to determining that the total expected usage amount is greater than the available amount; determining that an existing virtual machine instance executed on the second computing device is using or is expected to use less than all of a quantity of the computing resource reserved for the existing virtual machine instance on the second computing device; selecting the second computing device based at least in part on determining that the existing virtual machine instance executed on the second computing device is using less than all of a quantity of the computing resource reserved for the existing virtual machine instance on the second computing device; and continuing execution of the first instance of the first virtual machine on the first computing device and transferring execution of the second instance to a second computing device of the plurality of computing devices. - View Dependent Claims (7, 8, 9, 10, 11, 12)
-
-
13. A non-transitory, computer-readable medium having stored thereon computer-executable software instructions configured to cause one or more processors associated with a system for managing shared computing resources to perform operations comprising:
-
calculating a total expected usage amount for a computing resource, the total expected usage amount comprising a sum of a first expected usage amount associated with a first virtual machine executed on a first computing device and a second expected usage amount associated with a second virtual machine executed on the first computing device; determining that the total expected usage amount is greater than an available amount of the computing resource on the first computing device at a particular time; in response to determining that the total expected usage amount is greater than the available amount; determining that an existing virtual machine instance executed on the second computing device is using or is expected to use less than all of a quantity of the computing resource reserved for the existing virtual machine instance on the second computing device; selecting the second computing device based at least in part on determining that the existing virtual machine instance executed on the second computing device is using less than all of a quantity of the computing resource reserved for the existing virtual machine instance on the second computing device; and continuing execution of the first virtual machine on the first computing device and transferring execution of the second, virtual machine to a second computing device. - View Dependent Claims (14, 15, 16)
-
Specification