Wariant 1:
Execute
jstat -gc PID
(z PID zastąpiony przez PID JVM do monitorowania), który powróci sth. jak:
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
103936.0 107008.0 0.0 41618.3 820736.0 401794.3 444928.0 183545.7 181888.0 137262.8 28544.0 20386.6 313 16.024 8 3.706 19.729
Według this zainteresowania to:
MC: Metaspace capacity (kB)
MU: Metaspace utilization (kB)
Więc w tym przypadku około 181mb z Metaspace zostały popełnione podczas 137mb są wykorzystywane obecnie.
Opcja 2:
Jeśli masz włączone logi zbierania śmieci można również znaleźć to stamtąd, np po awarii aplikacji lub zgłoszeniu problemu. Szukaj linii jak
2016-04-06T01:50:04.842+0200: 7.795: [Full GC (Metadata GC Threshold)
[PSYoungGen: 7139K->0K(177152K)]
[ParOldGen: 18396K->22213K(101888K)] 25535K->22213K(279040K),
[Metaspace: 34904K->34904K(1081344K)], 0.1408610 secs]
[Times: user=0.45 sys=0.00, real=0.14 secs]
Stanowi to zmianę rozmiaru na Metaspace Jako że zostało osiągnięte poprzedni próg.
[Metaspace: 34904K->34904K(1081344K)], 0.1408610 secs]
zawiera odpowiednie informacje: 34,9 miliona był używany przed, jak również po GC. Najnowsze znalezione wpisy dziennika pokaże aktualny rozmiar (po GC).
Należy pamiętać, że pełne GC jest uruchamiane po zmianie rozmiaru Metaspace. Dobrym pomysłem jest więc skonfigurowanie dobrej wartości początkowej, gdy już wiesz, że domyślna wartość ~ 21mb (w zależności od konfiguracji hosta) nie jest wystarczająca.
Aby uzyskać więcej informacji na temat dostrajania rozmiaru Metaspace, patrz this.
'man jstat' daje poprawne interpretacje„MC : Pojemność metaprzestrzeni (kB) "i" MU: Wykorzystanie metaprzestrzeni (kB) ", a nie" zatwierdzone "i" użyte ". – moxn