2017-02-21 58 views
0

Приложение mybob AS5 страдает от странного поведения кучи во время загрузки «пикового часа». Он постоянно растет, пока у него так мало свободного места для работы, что он не обрабатывает новые запросы.Проанализируйте растущую кучу во время загрузки

Это было бы нормально, если бы мы говорили о типичной утечке, однако я решил это, просто опуская нагрузку прямо перед тем, как она перейдет порог, где он не может обрабатывать новые запросы, а затем - после прохладного -down period - перезапуск другого «пикового часа». Приложение (VM) затем может обрабатывать высокую нагрузку, как будто ничего не произошло.

Как подойти к этой проблеме? Я пробовал пробную версию и ошибки (размеры кучи, GC, проприетарный профилирование/журнал учета времени), и я попытался подключить jprofiler, но мне не были представлены данные о стоимости.

Есть ли хороший способ узнать, какие объекты (класс) постоянно растут с течением времени? Я говорю ~ 200 мб/час.

ответ

1

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

  1. утилиты, как JVisualVM, jstat (очень мало накладных)
  2. Профайлеры как JProfiler (значительные накладные)

Оба типа инструментов должны отображать объекты, которые занимают больше места кучи, и если вы постоянно контролируете рост кучи, вы также можете узнать, какие объекты растут с течением времени.

Если вы все еще думаете, что эти инструменты не показывают ценные данные, то идите по старомодному способу.

  1. Регулярно выгружайте кучи вашей кучи после некоторого промежутка времени. Интервал времени должен быть выбран таким образом, чтобы вы получили достаточное количество свалок кучи для анализа и должны быть минимальными.
  2. Загрузите эти свалки в инструменты анализа кучи и посмотрите тенденцию к возрастанию объектов за период.

Надеюсь, это поможет.

+0

Это очень помогло. Я действительно взял эту идею из другого источника вчера и использовал jmap dumps, чтобы выяснить, что растет и растет. Он оказался кешем jboss, связанным - теперь мне просто нужно выяснить, почему =). Все еще немного разочарован тем, что jprofiler действительно не помог построить и проанализировать гистограмму. –