There is some additional information that you should be aware of regarding cache configuration.
* If the worker process private bytes limit is not set, the cache will use one of the following limits:
o x86 2GB: 800MB or 60% of physical RAM, whichever is less
o x86 3GB: 1800MB or 60% of physical RAM, whichever is less
o x64: 1 terabyte or 60% of physical RAM, whichever is less
* If both the worker process private bytes limit and <cache privateBytesLimit/> are set, the cache will use the minimum of the two.
* Just like in 1.x, we drop cache entries and call GC.Collect for two reasons:
o We are very close to the private bytes limit
o The available memory is near or less than 10%
* You can effectively disable trim and cache for low available memory conditions by setting <cache percentagePhysicalMemoryUseLimit/> to 100.
* Unlike 1.x, 2.0 will suspend the trim and collect calls if the last GC.Collect did not reduce private bytes or the size of the managed heaps by more than 1% of the (cache) memory limit.