2013-02-12 2 views
0

Я получаю «OutOfMemoryError: превышение верхнего предела GC» с моим сервером Tomcat в Linux Machine. Пожалуйста, дайте мне знать, есть ли какие-либо инструменты, которые помогут мне проанализировать, какая программа в моем приложении Java потребляет много памяти. Есть ли у нас какие-либо инструменты для отладки, которые дают некоторую информацию, чтобы узнать, где сбой этой проблемы произошел с tomcat sever?Получение OutOfMemoryError: превышение верхнего предела GC на сервере Tomcat на машине Linux

Заранее спасибо.

+1

JDK поставляется с таким инструментом из коробки: 'jvisualvm'. –

+0

Проверьте, полезно ли это http://stackoverflow.com/questions/14762/please-recommend-a-java-profiler – sundar

+0

Я получаю cmmand не найдена ошибка при запуске команды в Linux: '-bash-3.2 $ jvisualvm -bash: jvisualvm: команда не найдена – Chaitanya

ответ

2

Убедитесь, что вы задали параметр командной строки: -XX: + HeapDumpOnOutOfMemoryError, чтобы сделать heapdump в OOM. Также может быть полезно: -XX: HeapDumpPath = < папка для сброса кучи>.

Когда OOM произошел, вы можете проанализировать кучу кучи с MAT. Это очень полезный инструмент для анализа heapdumps.

Также вы можете использовать jmap для создания свалок кучи вручную. Пример: jmap -dump:file=<output-filename> <java process id>

+0

Спасибо за ваш ответ. Когда я запускал команду jmap, передавая processid в качестве ввода, я получаю ошибку. Пожалуйста, помогите решить эту проблему: '-bash-3.2 $ jmap 10865 Присоединение к ID процесса 10865, пожалуйста, подождите ... Исключение в теме" main "java.lang.reflect.InvocationTargetException Вызывается: sun.jvm.hotspot .runtime.VMVersionMismatchException: Поддерживаемые версии - 20.0-b11. Целевая ВМ - 14.3-b01 ' – Chaitanya

+0

@ user2065083 здесь http://java-monitor.com/forum/showthread.php?t=974 несколько рецептов, как решить вашу проблему. Убедитесь, что вы запускаете jmap так же, как и ваша Java-версия, которую вы берете с помощью heapdump. – Taky

Смежные вопросы