Patent ID: 9262190
Filing Date: 2016-02-16
CPC Classification: G06F

Claim Text:
1. A method for managing virtual machines in a distributed computing environment, the method comprising: determining, by one or more processors, an estimated execution time for each type of job in one or more first jobs received from users; subscribing, by the one or more processors, one or more virtual machines from a pool of virtual machines of the distributed computing environment to execute the each type of job in the one or more received first jobs, wherein the one or more virtual machines are subscribed based on service level agreement (SLA) terms, quality of service (QoS) metrics, and the estimated execution time associated with the each type of job in the one or more received first jobs; monitoring, by the one or more processors, an actual job execution time for each job from the one or more received first jobs executed on an associated subscribed virtual machine; identifying, by the one or more processors, one or more under-performing virtual machines from the one or more subscribed virtual machines based on the actual job execution time, the estimated execution time, and a tolerance value for the each type of job in the one or more received first jobs, wherein the tolerance value corresponds to an allowable deviation of the actual job execution time from the estimated execution time for the each type of job in the one or more received first jobs; executing, by the one or more processors, one or more second jobs, with known execution times, on the identified one or more under-performing virtual machines, when the actual job execution time of the each job from the one or more received first jobs on the identified one or more under-performing virtual machines has exceeded the estimated execution time and the tolerance value associated with each of the one or more received first jobs; releasing, by the one or more processors, the one or more under-performing virtual machines to the distributed computing environment when the actual job execution time of the one or more second jobs exceeds the known execution time of the one or more second jobs; and re-subscribing, by the one or more processors, a new set of virtual machines from the pool of virtual machines of the distributed computing environment, such that the SLA terms and the QoS metrics are met.