Automatic determination of resource sizing
First Claim
Patent Images
1. A computer-implemented method comprising:
- as implemented by one or more computing devices configured with specific executable instructions,maintaining a plurality of virtual machine instances on one or more physical computing devices;
determining, based on a request to execute a program code associated with a user on a virtual compute system, a user-specified amount of a first computing resource;
selecting one of the plurality of virtual machine instances to be used for executing the program code, the selected virtual machine instance having the first computing resource having a first maximum amount and a second computing resource having a second maximum amount, the second computing resource being different from the first computing resource;
determining a first ratio of the user-specified amount to the first maximum amount;
determining the corresponding amount of the second computing resource based on the determined first ratio and the second maximum amount, wherein a second ratio of the corresponding amount to the second maximum amount is identical to the first ratio;
selecting a first container having the user-specified amount of the first computing resource and the corresponding amount of the second computing resource for executing the program code;
causing the program code to be executed in the selected container;
recording actual amounts of the first and second computing resources used by the program code during the execution of the program code;
maintaining the user-specified amount in association with the program code associated with the user;
determining that the user-specified amount is to be overridden by an alternate amount specified in a subsequent request to execute the program code; and
selecting a second container having the alternate amount of the first or second computing resources for executing the program code.
1 Assignment
0 Petitions
Accused Products
Abstract
A system for providing automatic resource resizing is provided. The system may be configured to maintain a plurality of virtual machine instances. The system may be further configured to receive a request to execute a program code and allocate computing resources for executing the program code on one of the virtual machine instances. The amount of resources allocated for executing the program code may be specified by the request and adjusted as needed.
182 Citations
16 Claims
-
1. A computer-implemented method comprising:
as implemented by one or more computing devices configured with specific executable instructions, maintaining a plurality of virtual machine instances on one or more physical computing devices; determining, based on a request to execute a program code associated with a user on a virtual compute system, a user-specified amount of a first computing resource; selecting one of the plurality of virtual machine instances to be used for executing the program code, the selected virtual machine instance having the first computing resource having a first maximum amount and a second computing resource having a second maximum amount, the second computing resource being different from the first computing resource; determining a first ratio of the user-specified amount to the first maximum amount; determining the corresponding amount of the second computing resource based on the determined first ratio and the second maximum amount, wherein a second ratio of the corresponding amount to the second maximum amount is identical to the first ratio; selecting a first container having the user-specified amount of the first computing resource and the corresponding amount of the second computing resource for executing the program code; causing the program code to be executed in the selected container; recording actual amounts of the first and second computing resources used by the program code during the execution of the program code; maintaining the user-specified amount in association with the program code associated with the user; determining that the user-specified amount is to be overridden by an alternate amount specified in a subsequent request to execute the program code; and selecting a second container having the alternate amount of the first or second computing resources for executing the program code. - View Dependent Claims (2, 3, 4)
-
5. A system adapted to provide low-latency computational capacity from a virtual compute fleet, the system comprising:
-
an electronic data store configured to store at least a program code of a user; and a virtual compute system comprising one or more hardware computing devices adapted to execute specific computer-executable instructions, said virtual compute system in communication with the electronic data store, and configured to at least; maintain a plurality of virtual machine instances on one or more physical computing devices, wherein the plurality of virtual machine instances comprise a warming pool comprising virtual machine instances having one or more software components loaded thereon and waiting to be assigned to a user, and an active pool comprising virtual machine instances currently assigned to one or more users; receive a request to execute a program code associated with a user on the virtual compute system, the request including information indicating the program code and the user associated with the program code; select from the warming pool or the active pool a virtual machine instance to execute the program code, the selected virtual machine instance having a first computing resource and a second computing resource, wherein a first maximum amount specifies a maximum amount of the first computing resource available to be provided by the selected virtual machine instance, and a second maximum amount specifies a maximum amount of the second computing resource available to be provided by the selected virtual machine instance; determine, based on the received request, a user-specified amount of the first computing resource specified by the user; determine a first ratio of the user-specified amount to the first maximum amount of the first computing resource; determine a corresponding amount of the second computing resource based on the first ratio and the second maximum amount, wherein a second ratio of the corresponding amount to the second maximum amount is identical to the first ratio; create a container in the selected virtual machine instance based on the user-specified amount of the first computing resource and the corresponding amount of the second computing resource; and cause the program code associated with the user to be loaded from the electronic data store onto the container and executed in the container. - View Dependent Claims (6, 7)
-
-
8. A system, comprising:
a virtual compute system comprising one or more hardware computing devices executing specific computer-executable instructions and configured to at least; maintain a plurality of virtual machine instances on one or more physical computing devices; determine, based on a request to execute a program code associated with a user on the virtual compute system, a user-specified amount of a first computing resource; select one of the plurality of virtual machine instances to be used for executing the program code, the selected virtual machine instance having the first computing resource having a first maximum amount and a second computing resource having a second maximum amount, the second computing resource being different from the first computing resource; determine a first ratio of the user-specified amount to the first maximum amount; determine the corresponding amount of the second computing resource based on the determined first ratio and the second maximum amount, wherein a second ratio of the corresponding amount to the second maximum amount is identical to the first ratio; create a container in the selected virtual machine instance, the container having the user-specified amount of the first computing resource and the corresponding amount of the second computing resource; cause the program code to be executed in the container; record actual amounts of the first and second computing resources used by the program code during execution of the program code; maintain the user-specified amount in association with the program code associated with the user; determine that the user-specified amount is to be overridden by an alternate amount specified in a subsequent request to execute the program code; allocate the alternate amount of the first or second computing resources to the subsequent request for executing the program code. - View Dependent Claims (9, 10, 11, 12)
-
13. A computer-readable, non-transitory storage medium storing computer executable instructions that, when executed by one or more computing devices, configure the one or more computing devices to perform operations comprising:
-
maintaining a plurality of virtual machine instances on one or more physical computing devices; determining, based on a request to execute a program code associated with a user on a virtual compute system, a user-specified amount of a first computing resource; selecting one of the plurality of virtual machine instances to be used for executing the program code, the selected virtual machine instance having the first computing resource having a first maximum amount and the second computing resource having a second maximum amount, the second computing resource being different from the first computing resource; determining a first ratio of the user-specified amount to the first maximum amount; determining the corresponding amount of the second computing resource based on the determined first ratio and the second maximum amount, wherein a second ratio of the corresponding amount to the second maximum amount is identical to the first ratio; selecting a first container having the user-specified amount of the first computing resource and the corresponding amount of the second computing resource to the request for executing the program code; causing the program code to be executed in the selected container; recording actual amounts of the first and second computing resources used by the program code during the execution of the program code; maintaining the user-specified amount in association with the program code associated with the user; determining that the user-specified amount is to be overridden by an alternate amount specified in a subsequent request to execute the program code; and selecting a second container having the alternate amount of the first or second computing resources for executing the program code. - View Dependent Claims (14, 15, 16)
-
Specification