[GC] 3. Logging

rin·2021년 10월 3일
0

https://docs.oracle.com/en/java/javase/11/jrockit-hotspot/logging.html#GUID-33074D03-B4F3-4D16-B9B6-8B0076661AAF

java -xlog:help

$ java -Xlog:help
-Xlog Usage: -Xlog[:[selections][:[output][:[decorators][:output-options]]]]
	 where 'selections' are combinations of tags and levels of the form tag1[+tag2...][*][=level][,...]
	 NOTE: Unless wildcard (*) is specified, only log messages tagged with exactly the tags specified will be matched.

Hotspot logging option

logging option

hotspot logging optiondescription
-Xloggc:<filename>자세한 GC 이벤트 정보를 리디렉션하는 파일을 설정한다.
-verbose:gc 출력과 유사하며, 각 이벤트 이전의 첫 GC 이벤트로부터 경과된 시간을 함께 기록한다.
-XX:+PrintGC모든 GC에서 메시지 출력을 활성화한다.
❗️이 옵션은 JDK9에서 더 이상 사용되지 않는다.
-XX:+PrintGCDetails모든 GC에서 보다 상세한 메시지 출력을 활성화한다.
❗️이 옵션은 JDK9에서 더 이상 사용되지 않는다.

GC logging option

-Xlog:gc

모든 GC에서 메시지 출력을 활성화 한다.
gc는 모든 GC의 관련 정보를 기록하기 위한 주요 태그이다. gc태그는 특정 정보를 기록할 다른 태그와 결합된다.

CG logging optiondescription
-Xlog:gc+region=traceG1 GC가 할당 및 회수하는 region에 대한 정보를 출력 할 수 있다.
-Xlog:gc+ergo*=traceadaptive generation 크기 조정에 대한 정보를 출력 할 수 있다.
-Xlog:safepoint마지막 일시 중지에서 보낸 시간에 대한 정보를 출력 할 수 있다.
-Xlog:gc+task=trace각 GC worker thread의 작업에 대한 타임스탬프를 출력 할 수 있다.
-Xlog:gc::uptime,tid데코레이터 uptime, tid를 사용해 모든 GC에서 타임스탬프를 출력 할 수 있다.
-Xlog:gc+stringdedup중복이 제거된 자세한 통계값을 출력 할 수 있다.
-Xlog:gc+age=traceEnables printing of tenuring age information.
-Xlog:gc*모든 GC에서 상세한 메시지를 인쇄할 수 있다.
-Xlog:gc:file=<filename>지정된 파일명에 gc 태그가 포함된 메시지를 기록한다.
예를 들어 -Xlog:gc:file=gc.txt는 메시지를 gc.txt파일에 기록한다.

각 옵션은 분리해서 각각 작성해야하나, 새미콜론으로 이어서 작성 가능한 경우도 있다.
$ java -Xlog:gc*:file=gc.log:time [프로그램명]

  • -Xlog:gc* : 상세 메시지 출력
  • file=gc.log : gc.log 파일에 로그 저장
  • time : 로그 찍힌 시간 표시

Example

$ /usr/libexec/java_home -v 11.0.10 --exec java -Xmx50m -Xms50m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xlog:gc:file=/Users/kakao/Documents/workspace/g1gc/cglog/211002.log -Xlog:gc* -Xlog:gc+ergo+cset=trace -jar target/g1gc-0.0.1-SNAPSHOT.jar

-- 
[0.930s][trace][gc,ergo,cset ] GC(3) Start choosing CSet. pending cards: 1057 predicted base time: 4.82ms remaining time: 195.18ms target pause time: 200.00ms
[0.931s][trace][gc,ergo,cset ] GC(3) Add young regions to CSet. eden: 5 regions, survivors: 3 regions, predicted young region time: 22.65ms, target pause time: 200.00ms
[0.931s][debug][gc,ergo,cset ] GC(3) Finish choosing CSet. old: 0 regions, predicted old region time: 0.00ms, time remaining: 172.53
profile
🌱 😈💻 🌱

0개의 댓글