JSTAT: разница между OGC и OC, PGC и ПК

Я узнаю о jstat и о том, что он может рассказать мне о разных поколениях JVM. Из документов jstat я понимаю, что новый ген состоит из eden, s0 и s1. Например, если вы выполните математику для следующего, вы увидите, что NGC = EC + S0C + S1C. Качественный товар.

$ jstat -gccapacity -t 21830 5000
Timestamp        NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX           OGC         OC      PGCMN    PGCMX     PGC       PC     YGC    FGC 
       248767.4   2624.0  87360.0   6656.0  640.0  640.0   5376.0     5376.0   174784.0    12840.0    12840.0  21248.0 131072.0  34304.0  34304.0    457    73
       248772.4   2624.0  87360.0   6656.0  640.0  640.0   5376.0     5376.0   174784.0    12840.0    12840.0  21248.0 131072.0  34304.0  34304.0    457    73
       248777.3   2624.0  87360.0   6656.0  640.0  640.0   5376.0     5376.0   174784.0    12840.0    12840.0  21248.0 131072.0  34304.0  34304.0    457    73

Мне интересно, в чем разница между:

  • OGC (Текущая мощность старой генерации (КБ)) и
  • OC (текущая емкость старого пространства (КБ)).

И аналогично для:

  • PGC (Текущая постоянная мощность генерации (КБ)) и
  • ПК (текущая постоянная емкость (КБ)).

Каждая пара имеет одинаковое значение, по крайней мере для меня, прямо сейчас. Есть ли что-нибудь в старом поколении, кроме старого пространства?


Редактировать: я не думаю, что есть разница, но я оставлю этот вопрос на всякий случай.

1 ответ

Решение

Я просто ищу из источника JDK

короче:OGC = sum(all OC)

В гене может быть больше одного пробела.

Однако у старого поколения Hotspot есть только 1 пробел (у молодого поколения 3: eden, s0 и s1), jstat показывает для них одинаковое значение.

ЧТО ТАКОЕ OC и OGC

от jdk/src/share/classes/sun/tools/jstat/resources/jstat_options

я получил

OGC = sun.gc.generation.1.capacity

OC = sun.gc.generation.1.space.0.capacity

  column {
    header "^OGC^"  /* Old Generation Capacity - Current */
    data sun.gc.generation.1.capacity
    scale K
    align right
    width 11
    format "0.0"
  }
  column {
    header "^OC^"   /* Old Space Capacity - Current */
    data sun.gc.generation.1.space.0.capacity
    scale K
    align right
    width 11
    format "0.0"
  }

СКОЛЬКО ПРОСТРАНСТВ В GEN.1

запустите отличный код ниже, чтобы изучить

import java.lang.management.ManagementFactory
import sun.jvmstat.monitor.*;

name = ManagementFactory.runtimeMXBean.name
pid  = name[0..<name.indexOf('@')]
vmId = new VmIdentifier(pid)
vm   = MonitoredHost.getMonitoredHost(vmId).getMonitoredVm(vmId, 0)

println 'Y count :' + vm.findByName('sun.gc.generation.0.spaces').longValue()
println 'O count :' + vm.findByName('sun.gc.generation.1.spaces').longValue()

вывод:

Y count :3
O count :1

Вы можете сделать то же самое для GEN.2 (PERM GEN)

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