A system comprising: a distributed network of one or more virtual machines, the one or more virtual machines comprising: a first portion of committed virtual machines dedicated to a user; and a second portion of on-demand virtual machines; and a workload scheduler configured to: receive one or more workloads associated with the user, each workload to be performed by the one or more virtual machines, wherein each workload indicates a priority level for performing the workload; determine, for a given workload, whether to schedule the given workload to be performed by a combination of virtual machines included in the first and second portions of virtual machines, or by virtual machines included in only the first portion of virtual machines: wherein the workload scheduler is configured to schedule the given workload to be performed by virtual machines included in only the first portion of virtual machines at a first time if a sum of (i) an anticipated resource consumption level of the given workload and (ii) a first consumption level of the first portion of virtual machines at the first time is less than or equals a total amount of resources included in the first portion of the virtual machines, wherein if the sum of the anticipated resource consumption level of the given workload and the first consumption level of the first portion of the virtual machines is greater than the total amount of resources included in the first portion of the virtual machines, the workload scheduler is further configured to: determine a workload priority level of the workload; if the determined workload priority level indicates a high priority of the workload, schedule the workload to be performed by the combination of virtual machines included in the first and second portions of virtual machines at the first time; and if the determined workload priority level indicates a low priority of the workload, schedule the workload to be performed only by the first portion of virtual machines at a second time that is later than the first time, wherein the workload scheduler selects the second time in the future having a lowest anticipated resource consumption level of the first portion; wherein after the workload has been scheduled, the workload scheduler updates a consumption level of the first portion to account for a consumption taken up by the scheduled workload; and at the second time, repeat the determination for the given workload. a distributed network of one or more virtual machines, the one or more virtual machines comprising: a first portion of committed virtual machines dedicated to a user; and a second portion of on-demand virtual machines; a first portion of committed virtual machines dedicated to a user; and a second portion of on-demand virtual machines; and a workload scheduler configured to: receive one or more workloads associated with the user, each workload to be performed by the one or more virtual machines, wherein each workload indicates a priority level for performing the workload; determine, for a given workload, whether to schedule the given workload to be performed by a combination of virtual machines included in the first and second portions of virtual machines, or by virtual machines included in only the first portion of virtual machines: receive one or more workloads associated with the user, each workload to be performed by the one or more virtual machines, wherein each workload indicates a priority level for performing the workload; determine, for a given workload, whether to schedule the given workload to be performed by a combination of virtual machines included in the first and second portions of virtual machines, or by virtual machines included in only the first portion of virtual machines: wherein the workload scheduler is configured to schedule the given workload to be performed by virtual machines included in only the first portion of virtual machines at a first time if a sum of (i) an anticipated resource consumption level of the given workload and (ii) a first consumption level of the first portion of virtual machines at the first time is less than or equals a total amount of resources included in the first portion of the virtual machines, wherein if the sum of the anticipated resource consumption level of the given workload and the first consumption level of the first portion of the virtual machines is greater than the total amount of resources included in the first portion of the virtual machines, the workload scheduler is further configured to: determine a workload priority level of the workload; if the determined workload priority level indicates a high priority of the workload, schedule the workload to be performed by the combination of virtual machines included in the first and second portions of virtual machines at the first time; and if the determined workload priority level indicates a low priority of the workload, schedule the workload to be performed only by the first portion of virtual machines at a determine a workload priority level of the workload; if the determined workload priority level indicates a high priority of the workload, schedule the workload to be performed by the combination of virtual machines included in the first and second portions of virtual machines at the first time; and if the determined workload priority level indicates a low priority of the workload, schedule the workload to be performed only by the first portion of virtual machines at a second time that is later than the first time, wherein the workload scheduler selects the second time in the future having a lowest anticipated resource consumption level of the first portion;