JVM gc log анализирует - PullRequest
       3

JVM gc log анализирует

0 голосов
/ 02 апреля 2019

JVM params:

-server -Xmx2g -Xms2g -Xmn256m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+PrintGCTimeStamps

Java-версия

java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

Журнал GC: * ​​1007 *

4728.367: [GC (Allocation Failure) 4728.367: [ParNew: 210107K->314K(235968K), 0.0041113 secs] 650117K->440325K(2070976K), 0.0042571 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
4729.843: [GC (Allocation Failure) 4729.843: [ParNew: 210106K->4023K(235968K), 0.0061596 secs] 650117K->444034K(2070976K), 0.0063117 secs] [Times: user=0.04 sys=0.00, real=0.00 secs]
4730.447: [GC (Allocation Failure) 4730.447: [ParNew: 212630K->2166K(235968K), 0.0202457 secs] 652642K->442177K(2070976K), 0.0203974 secs] [Times: user=0.22 sys=0.01, real=0.02 secs]
4731.010: [GC (Allocation Failure) 4731.010: [ParNew: 211598K->1463K(235968K), 0.0256586 secs] 651610K->441475K(2070976K), 0.0258524 secs] [Times: user=0.04 sys=0.01, real=0.02 secs]
4731.583: [GC (Allocation Failure) 4731.583: [ParNew: 211255K->528K(235968K), 0.0200805 secs] 651267K->440572K(2070976K), 0.0202633 secs] [Times: user=0.10 sys=0.00, real=0.02 secs]
4732.153: [GC (Allocation Failure) 4732.153: [ParNew: 210320K->3971K(235968K), 0.0032271 secs] 650364K->444130K(2070976K), 0.0033627 secs] [Times: user=0.04 sys=0.00, real=0.00 secs]

Я использую GCViewer !проанализировать журнал GC.

часть результата показала следующее:

Total heap(usage / alloc.max)  625.9M(30.9%)/2,022.4M
Tenured heap(usage / alloc.max)  415M(23.2%)/1,792M
Young heap(usage / alloc.max)    212.5(92.2%)/230.4M

Утечка памяти?или как оптимизировать параметры JVM?

1 Ответ

0 голосов
/ 02 апреля 2019

Сложно, если не невозможно, определить, есть ли утечка памяти из этих журналов.

[GC (Allocation Failure) означает, что память не может быть выделена в порции молодого поколения, этот Allocation Failure вызывает сборщик мусора (GC).

Видно, что выделенной куче для молодого поколения не хватает места на 92%, программе требуется больше новой памяти, но новой памяти недостаточно, поэтому GC должен сделать очистку, чтобы освободить память.

Поскольку в других областях кучи по-прежнему много свободного места, я бы лучше посмотрел на то, что заставляет программу так быстро создавать новые объекты, а не настраивать параметры JVM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...