Наблюдавайте използването на Java heap

Предстои ми да наблюдавам използването на JVM памет за отделни възли. Инструментът (JON 3.3) има различни показатели като първоначална купчина/некупчина, ангажирана купчина/некупчина, използвана купчина/некупчина, максимално използване на купчина/некупчина. Реших да наблюдавам използваната купчина и ангажираното използване на купчина, за да наблюдавам производителността на паметта на JVM.

Достатъчно ли е да наблюдавате споменатите параметри, ако не, кои са другите параметри, които трябва да се наблюдават, освен използваното и ангажирано използване на купчина. Моля, дайте съвет относно това.

въведете описание на изображението тук


person karthik    schedule 30.03.2016    source източник


Отговори (1)


  • init

    представлява първоначалното количество памет (в байтове), което Java виртуалната машина изисква от операционната система за управление на паметта по време на стартиране. Виртуалната машина на Java може да поиска допълнителна памет от операционната система и може също да освободи памет към системата с течение на времето. Стойността на init може да е недефинирана.

  • used

    представлява количеството памет, използвано в момента (в байтове).

  • committed

    представлява количеството памет (в байтове), което е гарантирано достъпно за използване от виртуалната машина на Java. Количеството ангажирана памет може да се промени с течение на времето (да се увеличи или намали). Виртуалната машина на Java може да освободи памет към системата и ангажиментът може да бъде по-малък от init. ангажираните винаги ще бъдат по-големи или равни на използваните. max представлява максималното количество памет (в байтове), което може да се използва за управление на паметта. Стойността му може да е недефинирана. Максималното количество памет може да се променя с времето, ако е определено. Количеството използвана и ангажирана памет винаги ще бъде по-малко или равно на max, ако е дефинирано max. Разпределението на паметта може да е неуспешно, ако се опита да увеличи използваната памет така, че използвано > ангажирано, дори ако използвано ‹= максимално ще бъде вярно (например, когато системата няма виртуална памет). По-долу има снимка, показваща пример за пул памет:

    +----------------------------------------------+
    +////////////////           |                  +
    +////////////////           |                  +
    +----------------------------------------------+
    
    |--------|
       init
    |---------------|
           used
    |---------------------------|
              committed
    |----------------------------------------------|
    
  • Non-Heap памет (~Perm)

    Освен това JVM има памет, различна от купчината, наричана памет без купчина. Създава се при стартиране на JVM и съхранява структури за клас, като постоянен пул по време на изпълнение, данни за полета и методи и кода за методи и конструктори, както и интернирани низове.

person Jiri Kremser    schedule 03.04.2016