Мониторинг использования кучи Java

Я собираюсь контролировать использование памяти JVM для отдельных узлов. Инструмент (JON 3.3) имеет различные метрики, такие как начальная куча / не куча, зафиксированная куча / не куча, использованная куча / не куча, максимальная куча / не куча использования. Я решил отслеживать использованную кучу и зафиксировал использование кучи для наблюдения за производительностью памяти JVM.

Достаточно ли посмотреть упомянутые параметры, если нет, то какие другие параметры следует отслеживать, кроме использованного и зафиксированного использования кучи. Пожалуйста, советуйте по этому вопросу.

введите описание изображения здесь

1 ответ

Решение
  • init

    представляет начальный объем памяти (в байтах), который виртуальная машина Java запрашивает у операционной системы для управления памятью во время запуска. Виртуальная машина Java может запрашивать дополнительную память у операционной системы, а также может со временем освободить память для системы. Значение init может быть неопределенным.

  • used

    представляет объем используемой памяти (в байтах).

  • committed

    представляет объем памяти (в байтах), который гарантированно будет доступен для использования виртуальной машиной Java. Объем выделенной памяти может со временем меняться (увеличиваться или уменьшаться). Виртуальная машина Java может освободить память для системы, и зафиксированное значение может быть меньше, чем init. совершенное всегда будет больше или равно используемому. max представляет максимальный объем памяти (в байтах), который можно использовать для управления памятью. Его значение может быть неопределенным. Максимальный объем памяти может меняться со временем, если он определен. Количество используемой и выделенной памяти всегда будет меньше или равно максимальному, если задано максимальное значение. Выделение памяти может произойти сбой, если он попытается увеличить используемую память так, чтобы использовалось> зафиксировано, даже если используется<= max, все равно будет верно (например, когда в системе недостаточно виртуальной памяти). Ниже приведен рисунок, показывающий пример пула памяти:

    +----------------------------------------------+
    +////////////////           |                  +
    +////////////////           |                  +
    +----------------------------------------------+
    
    |--------|
       init
    |---------------|
           used
    |---------------------------|
              committed
    |----------------------------------------------|
    
  • Память без кучи (~ Пермь)

    Кроме того, у JVM есть память, отличная от кучи, называемая не-кучей памяти. Он создается при запуске JVM и хранит структуры для каждого класса, такие как пул констант времени выполнения, данные полей и методов, а также код для методов и конструкторов, а также внутренние строки.

Другие вопросы по тегам