Устранение неполадок ASP.net возможной утечки памяти
Похоже, что с одним из наших веб-приложений возможна утечка памяти. w3wp.exe занимает около 1,5 ГБ ОЗУ, и наши веб-службы возвращают сообщение об ошибке, говорящее о том, что ему не хватает памяти. Есть ли способ определить, какое приложение вызывает чрезмерную память или профилировать активно работающие веб-сайты, чтобы увидеть причину проблемы с памятью?
Я хотел бы опубликовать это на Server Fault, но меня больше интересует способ отладки приложения, чтобы определить причину ошибки. Я могу запускать сайты локально, и w3wp.exe не занимает слишком много оперативной памяти. Это активные веб-сайты / веб-сервисы, которые постоянно используются, поэтому я предполагаю, что проблема будет проявляться только при чрезмерной нагрузке.
3 ответа
Debug Diagnostics Toolkit разработан именно для этой цели.
Есть несколько статей о том, как использовать инструментарий:
Вы могли бы попробовать копию Профилировщика Памяти Красных Ворот.
Попытка угадать утечку памяти в вашем приложении будет длиться вечно. Инструмент профилирования покажет вам, где именно проблема, без всяких досадных проб и ошибок.
Посмотрите этот эпизод dnrTV с Тесс Феррандез, чтобы узнать, как использовать WinDBG и другие инструменты для анализа дампа памяти - она выглядит очень просто!