Недостаточно памяти - веб-приложения - PullRequest
0 голосов
/ 02 апреля 2010

Я пытаюсь выяснить, почему Jetty 6.1.22 не хватает памяти на моем ноутбуке. У меня есть 2 веб-приложения под управлением JBoss Seam, Hibernate (с EHCache) и отдельные экземпляры планировщика Quartz.

При небольшой нагрузке сервер умирает, выбрасывая OutOfMemory.

Что я могу искать? Вы думаете, что я неправильно закрываю дескрипторы для входных потоков или файлов?

Я попытался профилировать свое приложение с Netbeans, но оно работает время от времени. Обычно он блокируется, хотя и не использует столько процессора или памяти.

Walter

Ответы [ 3 ]

2 голосов
/ 02 апреля 2010

add -XX: + HeapDumpOnOutOfMemoryError при вызове jvm и при возникновении ситуации OOM вы получите файл .hprof. Вы можете открыть его позже с помощью нескольких инструментов, и вы сможете увидеть, куда идет память ...

Инструмент, который я использую: Eclipse Memory Analyzer , он довольно хорош.

2 голосов
/ 02 апреля 2010

Какие у вас параметры выполнения JVM?

Попробуйте увеличить доступную память кучи, хотя флаги JVM -Xms (по умолчанию) -Xmx (max) и -Xmn (min).

Вы также можете контролировать работу сервера приложений с помощью JConsole . Обычно полезно узнать, где происходит утечка вашего приложения.

0 голосов
/ 02 апреля 2010

Я настоятельно рекомендую подключиться к проблемной программе с помощью jvisualvm в JDK.

Это позволяет вам исследовать использование памяти и процессора с течением времени и проверять, что происходит в целом.

...