2016-10-25 12 views
0

Наше приложение в среде prod создает частые свалки кучи/потоков при работе с очень большими отчетами, что в итоге приводит к сбою JVM. WebSphere - это размер сервера и кучи, равный 1024/2048 (начальный/максимальный) для всех узлов.Websphere - частая генерация дампа/кучи

Каковы некоторые способы решения этой проблемы? Я мог бы подумать о следующих вариантах. Есть ли что-то еще, что мне не хватает?

  1. Установить минимальный/максимальный размер кучи до 2048 или даже выше?

  2. Включить многословную сборку мусора в WebSphere и проанализировать оптимальный размер кучи?

Анализ резьбы: Runnable: 123 (67%) Blocked: 16 (9%) Ожидание Условия: 43 (23%)

+0

Вы меченый это с webphere-квадратных метров, но я не вижу никакого упоминания о MQ в вопрос. Должны ли вы пометить что-то для экспертов App Server, чтобы увидеть этот вопрос? –

+0

Что делает запись дампа в качестве триггера для создания дампа? OutOfMemoryError? –

+0

@MoragHughson: Спасибо за указатель, он должен был быть websphere, а не websphere-mq. –

ответ

0

Так как кажется, вы испытываете OutOfMemory Проблемы есть три возможности рассмотреть следующие вопросы:

  • Ваши приложения постоянно нуждаются в дополнительной памяти для обработки текущей нагрузки.

Решение: Вы должны нагрузки тест вашего приложение с производством типа трафиком и настроить ваш Min/Max Heap Размера соответственно.

  • У вас проблема с утечкой памяти.

Решение: Анализ heapdumps/coredumps производится с использованием IBM Support Assistant tools. PMR для IBM поможет.

  • У Websphere есть утечка памяти.

Решение: Открыть PMR

Вот nice read об управлении памяти Java в WAS средах.

0

Попытайтесь захватить память, информацию о сборке мусора из производственной среды. Я не уверен, что GC-журнал имеет какое-либо влияние на производительность. Тем не менее, jstat является чрезвычайно легким инструментом и может использоваться в производственной среде без какого-либо влияния на производительность. Дамп выход jstat через регулярные промежутки времени с помощью следующей команды (Здесь я устанавливаю интервал до 1 часа):

jstat -gc <PID> 3600s