We are running EhCache in production, and the cache has been configured with Cache size in memory and on the disk.
However, upon analysis of heap dump using Eclipse Memory Analysis Tool (MAT), we noticed the EhCache was using almost 80% of the memory.

Further research of EhCache , and reading forums, we noticed that the open source version of EhCache was a crippleware, with a serious limitation.
Here is what I read from EhCache forums:

*As you have noticed the open-source disk stores do not store the entire cache on disk. Instead the values are stored on the disk, and the keys are stored in memory mapped to value objects which reference where on disk the associated value object can be found. This means each on-disk mapping has an associated in-memory overhead equal to it’s key-size plus a fixed overhead per mapping. *