При использовании стандартного JRE 1.6 GC использование кучи со временем может увеличиваться, а сборщик мусора работает реже и реже, в зависимости от характера вашего приложения и вашего максимального заданного размера кучи. Тем не менее, трудно сказать, что происходит, не имея больше информации.
Несколько методов для дальнейшего изучения:
Вы можете получить дамп кучи вашего приложения во время его работы с использованием jmap, а затем проверить кучу с помощью jhat, чтобы увидеть, какие объекты находятся в куче в любой момент времени.
Вы также можете запустить ваше приложение с -XX: + HeapDumpOnOutOfMemoryError, которое автоматически создаст дамп кучи при первом исключении из нехватки памяти, с которым сталкивается JVM.
Вы можете создать bean-компонент мониторинга, специфичный для вашего приложения, и создать методы доступа, которые можно использовать с удаленным клиентом JMX. Например, методы для возврата размеров очередей и других коллекций, которые, вероятно, являются местами использования памяти в вашей программе.
НТН