1. A method for caching allocation performed on a storage system, the method comprising: determining a working-set size for a first workload, wherein the working-set size is determined based on a number of unique blocks accessed over a monitoring interval comprising a number of Input/Output (IO) accesses; adjusting the working-set size by, in response to detecting a change in the first workload, increasing the number of IO accesses in the monitoring interval; and determining the working-set size based on a number of unique blocks accessed over the increased number of IO accesses in the monitoring interval; estimating an amount of data suitable to be stored in cache for the first workload based on the adjusted working-set size; determining a workload cache size based on the amount of data suitable to be stored in cache for the first workload; allocating a cache within the storage system in accordance with the workload cache size; evaluating an impact of the workload cache size on a service level objective of a second workload with a higher priority; and reducing the workload cache size when a negative impact on the second workload is identified.