анализ проблемы с памятью - PullRequest
2 голосов
/ 12 января 2011

РЕДАКТИРОВАТЬ - так посмотрел на Cache # 15 и MemoryStore # 9 в JVisualVM. Оказывается, это кеш запросов. Надеемся, что удаление конфигурации кеша в conf, которая ограничивает кеш запросов менее чем 10k элементов (по умолчанию), решит эту проблему ...


У нас есть приложение Grails (v1.2.0), развернутое на tomcat 6x. Опытный сбой OOM. Получил дамп кучи и начал анализировать его в JVisualVM. Это то, что я вижу alt text

и это alt text

так много вещей из ehcache, и определенно много байтов и массивов символов. Я попытался погуглить вокруг «утечки памяти Grails ehcache», но ничего определенного не происходит. Кто-нибудь видел какие-либо проблемы, как это или есть какое-либо понимание, что может быть причиной этого? Это может быть неправильно настроенный ehcache?

Мы используем различные плагины (acegi, quartz, mail, background-thread), все последние версии FOR grails версия 1.2.0.

РЕДАКТИРОВАТЬ - дополнительная информация

запуск кота со следующим

-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xms1024m -Xmx2048m -XX:MaxPermSize=256m -d64 -server -XX:+HeapDumpOnOutOfMemoryError -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+UseConcMarkSweepGC

и ошибка

java.lang.OutOfMemoryError: Java heap space

Интересно, что раньше мы получали ошибки, связанные с пространством perm gen, но когда я обновил конфигурацию Java, показанную выше, ошибки permgen space исчезли.

Ответы [ 3 ]

2 голосов
/ 12 января 2011

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

РЕДАКТИРОВАТЬ: PermGen исчезает из-за -XX:MaxPermSize=256m, что довольно много.

1 голос
/ 12 января 2011

Возможно, у вас заканчивается свободное пространство, а не куча.

Зарегистрируйте свой GC в файле и ссылке и отправьте обратно свои аргументы JVM.

0 голосов
/ 12 января 2011

Используете ли вы Grails 1.2.0 или 1.2.5 (последняя версия 1.2.x)?Последней стабильной версией является 1.3.6. Я полагаю, проблема заключается в неправильной настройке ehcache

...