Patent ID: 8856797

Claim:
A system configured to manage execution of programs in a program execution service that provides a plurality of computing resources, individual computing resources configurable to execute one or more programs, the system comprising tangible computing hardware configured to execute a capacity manager comprising: a forecasting module configured to: receive at least one historical measurement of demand for a computing resource when the computing resource was associated with a program executed by the program execution service; predict a demand for the computing resource at a future time, wherein the prediction is based at least in part on the at least one historical measurement; and determine an upper and a lower quantity of the computing resource to be associated with the program at the future time, wherein the determination is based at least in part on the predicted demand; and a controller module configured to: receive a determination of a system metric associated with an operating parameter of the computing resource associated with the program; determine whether the system metric is within a desired operating range; and in response to a determination that the system metric is not within the desired operating range: determine how far the system metric is outside the desired operating range; determine an adjustment to a quantity of the computing resource associated with the program based at least partly on an adjustment rule, the adjustment proportional to how far outside the desired operating range the system metric is determined to be; adjust the quantity of the computing resource associated with the program based at least on the adjustment, wherein the adjusted quantity is between the upper and lower quantity determined by the forecasting module; and modify the adjustment rule based at least partly on a subsequent determination that the system metric is outside the desired operating range.