.NET Memory Dump - Как сообщить о неуправляемой памяти?
У нас есть веб-сайт ASP.NET MVC, размещенный в Windows Azure.
Объем оперативной памяти увеличился до ~3 ГБ, поэтому я снял дамп памяти с помощью инструмента Диагностика как услуга Azure (DaaS).
При отладке управляемой памяти с помощью Visual Studio я обнаружил, что мой управляемый код занимал только 500 МБ из этих 3 ГБ, оставляя 2,5 ГБ памяти неучтенной.
Вот скриншот из отчета об анализе памяти DaaS:
И файл дампа, подтверждающий размер файла:
Как я могу узнать, какой код в w3wp жует мою оперативную память, учитывая, что это не мой управляемый код?
РЕДАКТИРОВАТЬ
Информация о виртуальной памяти из средства диагностики отладки:
1 ответ
Как я вижу, вы уже загрузили дамп памяти на свой компьютер, вы можете загрузить последнюю версию средства диагностики отладки и запустить как анализ управляемой памяти, так и "собственный анализ памяти" в файле дампа. Это даст некоторую информацию о том, где выделена собственная память, особенно собственные кучи или виртуальные ресурсы. Если вы поделитесь ссылкой на этот отчет или поделитесь информацией из этого отчета, мы сможем определить, где используется собственная память. Я не уверен, содержит ли отчет по умолчанию, сгенерированный в DAAS, эту информацию или нет.
В отчете содержится информация о некоторых обнаруженных проблемах (например, динамических сборках и т. Д.), Поэтому в верхней части отчета вы видите что-то, что вызывает известные проблемы как ошибки, предупреждения или информацию?