CUBRID JAVA Stored Procedure 또한 JVM을 사용하기 때문에 GC가 발생할 수 있다.
JAVA Stored Procedure를 많이 사용하는 환경이라면 FULL GC 혹은 GC가 발생하여 요청처리가 늦어 지거나 일시적인 hang현상이 발생할 수 있기 때문에 아래와 같이 GC로그를 발생시켜 로그분석이 필요하다.
1. JAVA의 글로벌 옵션을 이용하여 GC로그 옵션을 부여한다.
Ex) export _JAVA_OPTIONS=”-Xloggc:gc.out -XX:+PrintGCDetails”
2. DB를 구동시킨다.
EX) cubrid server demodb > echo.log
위의 –Xloggc 옵션을 부여하여 GC로그를 gc.out파일에 기록하도록 하였지만, 쉽게 육안확인이 어렵다.
PrintGCDetails 옵션을 이용하여 GC로그를 저장할 경우 2번의 파이프를 이용한 echo.log파일에 기록할 수 있다.
0.000: [GC 0.000: [DefNew: 511K->64K(576K), 0.0182344 secs]
511K->153K(1984K), 0.0185255 secs]
1.387: [GC 1.387: [DefNew: 417K->64K(576K), 0.0192086 secs]
1.407: [Tenured: 217K->281K(1408K), 0.0725645 secs]
506K->281K(1984K), 0.0923346 secs]
1.559: [GC 1.559: [DefNew: 10K->3K(576K), 0.0044098 secs]
1.564: [Tenured: 937K->941K(1408K), 0.0741569 secs]
948K->941K(1984K), 0.0790573 secs]
1.703: [GC 1.703: [DefNew: 510K->0K(576K), 0.0011627 secs]
2107K->1597K(2808K), 0.0013820 secs]