1. A method for caching allocation performed on a storage system, the method comprising: estimating cacheability of a workload from a first working-set size estimate generated from the workload over a first monitoring interval; determining, using a processor, a workload cache size based on the cacheability of the workload; and dynamically allocating a cache within the storage system in accordance with the workload cache size.