C # утечка памяти? - PullRequest
       3

C # утечка памяти?

6 голосов
/ 01 декабря 2010

Я тестирую производительность кеша appfabric. Чтобы сделать это, с моей локальной машины я попадаю на хост кеша в локальной сети. Этот хост кеша работает под управлением Windows Server 2008, и на нем не установлено ничего, кроме базовых компонентов. Он имеет 8 гигабайт оперативной памяти. Это также виртуальный сервер VMware,

Как только я попал в хост кеша, я вижу, что используемая память увеличивается. Но что-то очень подозрительное происходит где-то. общее количество используемых первичных байтов данных составляет 1,5 гига. Размер объекта составляет 1744 байта (с использованием профилировщика ANTS). Общее количество объектов составляет 2 521 451. Я отключил выселение. Но это интересно, как только сервер переходит в состояние регулирования, я вижу, что ОЗУ сервера используется на 7,72 гигабайта, но кроме распределенного кеша с 1,8 гигабайта нет другого приложения, которое использует такое большое количество БАРАН.

Я использую Visual Studio 2010 и параллельно вставляю и читаю объекты

Вопрос, который я хотел задать:

Куда уходит моя память? Сервер в состоянии регулирования говорит, что я использую 7,72 гигабайта выделенной памяти, тогда как в диспетчере задач я вижу, что используется всего 3 гигабайта (если я добавлю всю память запущенного процесса)

Ответы [ 2 ]

3 голосов
/ 10 декабря 2010

Гаган, если у вас все еще есть эта проблема, вы можете загрузить Process Monitor SysInternals?Вы можете найти это здесь .Запустите его и добавьте столбцы для личных байтов памяти, рабочего набора и виртуального размера.Пиковые частные байты и рабочий набор также не повредят, и есть другие столбцы памяти, которые вы можете добавить для удовольствия:)

Диспетчер задач не дает вам виртуальный размер (Windows 7 позволяет вам добавлять размер для фиксации, не знаю, если Server 2008 также имеет это).Это должно дать вам более четкое представление о том, куда идет память.

Дайте нам знать, если это поможет, или вам нужна дополнительная помощь, чтобы определить, куда движется ваша память!

1 голос
/ 01 декабря 2010

Я не совсем уверен в этом, так как в вашем вопросе неясно, где вы видите различные объемы использования ОЗУ (гостевой или хост VMWare).

При запуске VMWare Server на Server 2008 использование памяти, сообщаемое диспетчером задач на хосте, не учитывает индивидуальное использование виртуальных машин. Я заметил это некоторое время назад, и не уверен, является ли это ошибкой / известной проблемой / из-за особенностей поведения.

Пример : у меня на компьютере с Server 2008 запущено 3 виртуальных машины, каждая из которых работает под управлением своего варианта Windows, с запущенными приложениями. На хосте ничего не работает, кроме виртуальных машин в данный момент. Диспетчер задач на хосте сообщает об использовании 2 ГБ ОЗУ, в то время как гости используют не менее 1 ГБ каждый.

Можете ли вы уточнить, откуда именно берутся данные об использовании вашей ОЗУ?

...