Итак, мы запускаем веб-службу ASP.NET на производственном сервере Windows 2008 R2 с IIS 7 с последними обновлениями. В последнее время мы заметили, что было высокое потребление памяти.
После реализации методов удаления мусора память, кажется, находится под большим контролем. Однако когда пул приложений (w3wp.exe) перезагружается по истечении указанного времени, память, которую он занимал до этого момента, не высвобождается обратно в систему. Если мы перезапускаем вручную, то наблюдаются те же явления, и память, израсходованная до этого момента, кажется потерянной.
Новый экземпляр w3wp.exe виден в диспетчере задач с низким использованием памяти на несколько сотен МБ, но системная память продолжает расти до необоснованных уровней.
У нас есть сервер на 32 гигабайта, и в течение нескольких дней он достигает 20-25 ГБ используемой памяти, и машина становится вялой. Кажется, работает только полная перезагрузка Windows.
Было бы полезно узнать, почему память не освобождается даже после завершения пула приложений. Где мы можем посмотреть?
DebugDiag не сообщает ничего ненормального даже после больших сканирований. Также не удалось получить дампы стека из DebugDiag.
Заранее спасибо за ваше время.