A process for supporting computing infrastructure, said process comprising providing at least one support service for at least one of creating, integrating, hosting, maintaining, and deploying computer-readable code in a computer system, wherein the code in combination with the computer system is capable of performing a method of throttling a plurality of operations of a plurality of applications that share a plurality of resources, said method comprising:
- said computer system receiving an observed workload that is observed on a data storage system and a predicted workload that is predicted to be on said data storage system;
- said computer system computing a difference between said observed workload and said predicted workload;
- said computer system determining whether or not said difference exceeds a predefined threshold for distinguishing between a first mode (normal mode) of a multi-strategy finder and a second mode (unexpected mode) of said multi-strategy finder;
- said computer system determining a final schedule of one or more actions that improve a utility of said data storage system,
- wherein, in response to a result of said determining whether or not said difference exceeds said predefined threshold being said difference does not exceed said predefined threshold, said determining said final schedule includes applying a recursive greedy pruning-lookback-lookforward process to construct and prune each tree of a plurality of trees, wherein a result of said recursive greedy pruning-lookback-lookforward process applied to a tree of said plurality of trees is a first set of one or more actions occurring in a sub-window of a window of time for improving said utility, and wherein said first set of one or more actions is included in said final schedule,
- wherein, in response to said result of said determining whether or not said difference exceeds said predefined threshold being said difference exceeds said predefined threshold, said determining said final schedule includes applying a defensive action selection process that includes selecting and invoking a first action based on said first action being a least costly action of a plurality of candidate actions until a cumulative utility loss for continuing said first action exceeds a cost of invoking a next action, wherein said next action is a next least costly action of said plurality of candidate actions, and wherein said first action is included in said final schedule;
- and
- said computer system performing said plurality of actions according to said final schedule by employing first, second and third single action tools, wherein said plurality of actions includes a combination of said first single action tool throttling a server, said second single action tool throttling a network, and said third single action tool throttling a data storage device.