asp.net mvc, EF с высокой нагрузкой на кэш-память
У нас есть веб-сайт asp.net MVC (nopcommerce 3.6) (Сайт 1), использующий инфраструктуру Entity и внутреннюю кэш-память. Потребление памяти сайта очень велико. Доходит до ~14gb. Приложение находится на сервере Windows 2008 с 16 ГБ оперативной памяти.
Мне нужна помощь в понимании следующих сценариев / поведения:
Приложение, похоже, не освобождает память, если на сервере в данный момент не используется другое приложение. Использует максимум памяти.
Однако, если я запускаю другое приложение asp.net (Сайт 2) и подталкиваю его к потреблению некоторой памяти, сайт 1 освобождает свою память (резко падает), и оба эти приложения начинают совместно использовать ОЗУ.
Это приемлемое поведение, и что происходит, когда моя оперативная память достигает 100% и работает только один веб-сайт?
Когда мой сайт 1 автоматически освободит свою память? Сработает ли GC, только если моя память достигнет 100%?
У меня есть утечка памяти? Если так, как он освобождает память, когда сайт 2 нуждается в этом?
Примечание: мы кэшируем объекты EF (используя объектный кэш памяти) с включенным прокси и отслеживанием. И да, это моя следующая опция.