Недавно мы переместили наши веб-сайты с IIS 7.5 на IIS 8.5.
На нашем старом сервере проблем с памятью не возникало.
Новый сервер стартовал с 6 гигабайт оперативной памяти и выходил за пределы памяти. Мы продолжали наращивать его, пока сервер не стал более стабильным.
На нашем старом сервере мы обычно видим использование ОЗУ 70-75%.
На новом сервере мы обычно видим использование ОЗУ 98-99%, независимо от ОЗУ на сервере.
Пулы приложений в целом используют в 2-3 раза больше памяти, чем на нашем предыдущем сервере.
Например, у нас есть один пул приложений, который постоянно работал с объемом оперативной памяти 350-400 мегабайт на старом сервере. На новом сервере тот же пул работает на 800 мегабайт - 1,2 гига.
Мы просмотрели google, serverfault и stackoverflow, чтобы узнать, не сталкивался ли кто-нибудь еще с подобной ситуацией безрезультатно, и мы будем очень благодарны за помощь.
У нас были те же симптомы при переходе с Server 2008 R2 и IIS 7.5 на Server 2012 R2 и IIS 8.5. Оказывается, в нашей ситуации это была пропущенная настройка новой конфигурации в конфигурации .NET Framework. Требуется для сценария производительности HighDensityWebHosting (http://www.asp.net/aspnet/overview/aspnet-and-visual-studio-2012/whats-new#_Toc_perf_5)
Мы установили это, но в спешке случайно сделали это в 32-битной среде (Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet.config) вместо 64-битных настроек (Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet .config). Тьфу.
После получения правильных настроек мы фактически видим, что пулы приложений для нашего приложения используют примерно на 1/3 меньше оперативной памяти в IIS 8.5 по сравнению с 7.5.