Как получить полный дамп памяти большого использования памяти - PullRequest
0 голосов
/ 05 мая 2011

Я размещаю приложения веб-служб на основе IIS в 64-разрядной системе Windows 2008, работающей на четырехъядерном компьютере 8G.Столкнулся с несколькими случаями, когда W3WP работал на 7,6 ГБ памяти.Больше ничего не отвечало в системе, включая RDP.Щелкните правой кнопкой мыши по процессу в диспетчере задач и, создав дампы, заморозите систему и все ее потоки на долгое время (около 30 минут).Когда замораживание происходило в нерабочее время, мы позволяли дампу работать некоторое время (около 1 часа), но все равно дамп не завершился.В целях запуска системы нам пришлось убить IIS

. Пробовал другие инструменты, такие как procxp, debug diag и т. Д., Чтобы создать полный дамп памяти, и у всех были одинаковые результаты

Итак, какой инструментсообщество использует для быстрого получения файлов дампа?Или не замораживая все темы?Я понимаю, что последний может быть риторическим вопросом.Но каковы варианты генерации такого большого файла дампа без длительной блокировки системы?

Ответы [ 2 ]

3 голосов
/ 05 мая 2011

WPA aka xperf (http://msdn.microsoft.com/en-us/performance/cc825801.aspx) - мощный инструмент для диагностики приложений. Вы получите стек вызовов для распределения виновников. Вам не нужно собирать дамп, он неинвазивен и не загружается много в производственном процессе.системы

Полная пошаговая информация доступна здесь. http://msdn.microsoft.com/en-us/library/ff190906(v=VS.85).aspx.

3 голосов
/ 05 мая 2011

IMO, вам не нужно ждать, пока объем памяти процесса увеличится до 8 ГБ.Я уверен, что с чем-то вроде 3-4 ГБ вы сможете обнаружить утечку памяти.

Procdump имеет опцию, основанную на пороге памяти

-m Пороговое значение для фиксации памяти в МБ, при котором создается дамп процесса.

Я бы предложил эту опцию для выгрузки памяти процесса.

А также SSD поможет впишу быстрее.

...