We have an asp.net MVC website(nopcommerce 3.6) (Site 1) using Entity framework and inmemorycache. The memory consumption of the site is very high. Reaches to ~14gb. The application sits in a windows 2008 server with 16gb of RAM.
I need help in understanding the following scenarios/behavior:
The application does not seem to release memory when no other application is currently in use in the server. It uses the maximum memory.
However, if i launch another asp.net application (Site 2)and push it to consume some memory, site 1 release its memory(drops drastically) and both these applications start sharing the RAM.
Is this an acceptable behavior and what happens when my RAM gets to 100% and only one website is running?
When will my site 1 release its memory automatically? Will GC kick in only if my RAM gets to 100%?
Do i have a memory leak? If so, how does it release memory when site 2 needs it?
Note: we cache the EF objects(using inmemory objectcache) with proxy and tracking enabled. And yes dotmemory is my next option.