Glassfish V2.1.1 Размер кучи никогда не уменьшается после пакетного задания сервера - PullRequest
0 голосов
/ 07 октября 2011

Я установил кластер Glassfish с 1 DAS и 2 агентами Node.

В системе есть объекты TimedObject, которые группируются один раз в день. Что касается архитектуры Glassfish, то только один экземпляр кластера может запускать событие тайм-аута для каждого таймера, созданного TimerService.

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

Допустимо сказать мне, что размер кучи максимальный, потому что пакетное задание огромно. Но единственный вопрос, который у меня есть, - почему он не уменьшается после того, как работа сделана ???

VisualVM показывает, что «Используемая память кучи» экземпляра, который запускает событие тайм-аута, уменьшается после пакетного задания. Но почему его «Размер кучи» не уменьшается соответственно?

Спасибо за ваш совет !!! ^^

Ответы [ 2 ]

0 голосов
/ 11 октября 2011

Это окончательный ответ (спасибо Престон ^^)

Из статьи:

http://www.ibm.com/developerworks/java/library/j-nativememory-linux/index.html

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

1:

"Среды выполнения (JVM) предоставляют возможности, управляемые некоторым неизвестным пользовательским кодом; это делает невозможным прогнозирование ресурсов, которые потребуются среде выполнения в каждой ситуации" *

2: Вот почему узел, который запускает пакетное задание, всегда потребляет память постоянно.

"Резервирование собственной памяти - это не то же самое, что выделение ее. Когда собственная память резервируется, для нее не создается резервная копия.физическая память или другое хранилище. Несмотря на то, что резервирование фрагментов адресного пространства не приводит к исчерпанию физических ресурсов, оно не позволяет использовать эту память для других целей "

3: и именно поэтому узел, который не запускает пакетзадание имеет масштабируемое поведение размера кучи.

"Некоторые сборщики мусора сводят к минимуму использование физической памяти путем декомпозиции (rосвобождение резервного хранилища для) частей кучи по мере того, как используемая область кучи сжимается. "

0 голосов
/ 08 октября 2011

Предположительно, у вас есть что-то, ссылающееся на память.Я предлагаю получить копию MAT и сделать дамп кучи.Оттуда вы можете увидеть, что было выделено и что на него ссылается.

...