OutOfMemoryException, большие частные данные

В предыдущей серии:

OutOfMemoryException, размер стека огромен, большое количество потоков

У меня есть служба Windows .net, которая потребляет много памяти. Куча сборщика мусора небольшая. Также размер стека небольшой. То, что большое, называется личными данными. Также я вижу в диспетчере задач, что мое приложение потребляет много того, что диспетчер задач вызывает дескриптор. Мое приложение потребляет 2326 дескрипторов. Я считаю, что эти дескрипторы представляют собой дескрипторы окон, которые занимают личные данные. Я вижу, что эти личные данные заняты блоками, отмеченными как Блок среды потока. Это что?

Снимок экрана, показывающий использование памяти моим приложением с помощью VMMap

Снимок экрана, показывающий использование памяти моим приложением диспетчером задач

ОБНОВЛЕНИЕ

Я запускаю ProcessExplorer. На данный момент у меня работает два экземпляра моей службы. Я вижу, что они потребляют много виртуальной памяти для Gen2 GC. Это подозрительно. Также общий размер, зарезервированный для GC Heap, одинаков для двух процессов.

альтернативный текст


person Captain Comic    schedule 31.03.2010    source источник
comment
Process Explorer может показать вам, что это за дескрипторы (и многие другие полезные вещи). Вы найдете его здесь: technet.microsoft.com/en-us/sysinternals/bb896653 .aspx. Выберите Вид - ›Вид нижней панели -› Ручки.   -  person Dirk Vollmar    schedule 31.03.2010
comment
Всем привет! Удалось ли вам решить эту проблему? У меня есть аналогичный (высокое использование частной памяти данных и OOM).   -  person Vinícius Oliveira    schedule 26.10.2016


Ответы (2)


Похоже, у вас классическая утечка памяти, когда вновь созданные объекты не могут быть собраны, потому что на них ссылаются корни сборки мусора.

Самый эффективный способ избавиться от такой проблемы - использовать WinDBG + SOS и команду! Gcroot. Пример расследования ошибки утечки памяти можно найти здесь: http://blogs.msdn.com/tess/archive/2008/04/03/net-debugging-demos-lab-7-memory-leak-review.aspx

Удачи!

person Yauheni Sivukha    schedule 31.03.2010
comment
Нет, он увидел бы большую кучу сборщика мусора. - person Hans Passant; 31.03.2010

Да, довольно ресурсоемкий. Я предполагаю, что переменные, которые вы отметили атрибутом [ThreadStatic]. У вас путь слишком много потоков.

person Hans Passant    schedule 31.03.2010