A method comprising: collecting data related to usage of a plurality of resources by a plurality of workloads over one or more time periods, the workloads including priority workloads associated with one or more guaranteed performance levels and best effort workloads not associated with guaranteed performance levels; analyzing the data to identify resource reallocations from one or more of the priority workloads to one or more of the best effort workloads in one or more subsequent time periods while still maintaining the guaranteed performance levels, wherein analyzing comprises: generating a first one or more reward values associated with resource allocations to the best effort workloads; generating a second one or more reward values and/or one or more penalty values responsive to detecting specified performance metrics associated with the priority workloads; adding the reward values and penalty values to generate a final reward value; and reallocating resources to attempt to maximize the final reward value; reallocating the resources from the priority workloads to the best effort workloads for the subsequent time periods; monitoring execution of the priority workloads with respect to the guaranteed performance levels during the subsequent time periods; and preemptively reallocating resources from the best effort workloads to the priority workloads during the subsequent time periods responsive to detecting that the guaranteed performance level is in danger of being breached. collecting data related to usage of a plurality of resources by a plurality of workloads over one or more time periods, the workloads including priority workloads associated with one or more guaranteed performance levels and best effort workloads not associated with guaranteed performance levels; analyzing the data to identify resource reallocations from one or more of the priority workloads to one or more of the best effort workloads in one or more subsequent time periods while still maintaining the guaranteed performance levels, wherein analyzing comprises: generating a first one or more reward values associated with resource allocations to the best effort workloads; generating a second one or more reward values and/or one or more penalty values responsive to detecting specified performance metrics associated with the priority workloads; adding the reward values and penalty values to generate a final reward value; and reallocating resources to attempt to maximize the final reward value; generating a first one or more reward values associated with resource allocations to the best effort workloads; generating a second one or more reward values and/or one or more penalty values responsive to detecting specified performance metrics associated with the priority workloads; adding the reward values and penalty values to generate a final reward value; and reallocating resources to attempt to maximize the final reward value; reallocating the resources from the priority workloads to the best effort workloads for the subsequent time periods; monitoring execution of the priority workloads with respect to the guaranteed performance levels during the subsequent time periods; and preemptively reallocating resources from the best effort workloads to the priority workloads during the subsequent time periods responsive to detecting that the guaranteed performance level is in danger of being breached.