1. A computer-implemented method, comprising: receiving a first input/output (I/O) trace including storage addresses that were subject to a plurality of I/O requests from a first workload during a first period of time; using the first I/O trace as an input to a cache simulation using a plurality of simulated cache sizes; storing a first state of the cache simulation upon completing a simulation of the first I/O trace wherein the first state is a result of the cache simulation; deleting the first I/O trace in response to storing the first state of the cache simulation; receiving a second I/O trace including storage addresses that were subject to a plurality of I/O requests from the first workload during a second period of time; generating a cumulative miss ratio curve (MRC) for the first workload by loading the stored first state as a starting point for simulating the second I/O trace and running the second I/O trace through the cache simulation from the starting point; receiving a plurality of I/O traces including storage addresses that were subject to a plurality of I/O requests from a second workload; determining an cumulative MRC for the second workload by running the plurality of I/O traces from the second workload through the cache simulation; receiving user selection of a first target miss rate for the first workload and a second target miss rate for the second workload; generating a recommended cache size that corresponds to the first and second target miss rates based upon the target miss rates and corresponding MRCs; and allocating an amount of a cache of a virtual storage area network (VSAN) based on the recommended cache size.