IBM JVM

akanana·2021년 9월 29일
0

JavaPerformance

목록 보기
7/9
post-thumbnail

🔥동향


1.4 이전 IBM 은 기본적으로 Generation Heap 을 사용하지 않았다.
하지만 1.5 버전부터는 IBM 또한 Generation Heap 을 사용하기 시작하였습니다.

개요


IBM 은 기본적으로 Mark abd Sweep(Compaction) 기반으로 GC 를 진행한다.
Mark and Sweep 이 Minor, Compcation 이 Major 에 해당하며, 결국 Major 를 줄이는 방식의 GC 이다.

❗Process


🏀Mark


모든 Live Object 에 대한 Mark
Mark Bit Vector 에 주소를 저장시킨다.

🏀Sweep


Live Object 의 주소인 Mark Bit Vector,
Allocation Object 의 주소인 Alloc Bit Vector
둘을 비교하여 Garbage 를 삭제한다
Parallel Bit Sweep 가능

🏀Compaction


재정렬, Free Memory 확보가 가능해짐. 단편화를 방지.

언제?

  • Heap 이 5% 이하 (IBM 커맨드 확인 필요)
  • 128kb 이하일때
  • sweep 후 free space 가 적을 때
  • System.gc() 실행시

🏀GC 종류


🥎optthrupt GC


-Xgcpolicy:optthrupt
처리량 최적화 정책
Mark Sweep Compact 단계를 수행
ibm 6 까지 default 였다.
처리량은 높은 편이나, 긴 STW 가 발생한다.

🥎optavgpause GC


-Xgcpolicy:optavgpause
일시정지 최적화 정책
Concurrent Mark 를 통해 STW 최소화

🥎gencon GC


-Xgcpolicy:gencon
response time, throughput 동시 향상
CPU 부하 증가.

⚾Scavenge Copy

매우 짧은 작업으로, concurrent 한 작업중 도중에 발생하기도 한다.
Live Object 를 찾아 Survivor 로 Object 를 옮긴다.
-Xgc:scvTenureAge age가 되면 Promotion 된다. default는 10 이며 범위는 1~14 이다.

⚾Global GC

Mark Sweep Compaction 작업 진행. Sweep 위주로 작업, Compaction 은 가끔씩 수행한다

🥎subpool GC


-Xgcpolicy:subpool
java heap 을 여러 개의 Sub Pool 로 나누어 관리.
CPU가 16프로세스 (IBM 기준 9프로세스 참고) 이상에서 권장된다.
7 버전 이후에는 삭제되고, 실행시 자동으로 optthrupt 가 실행된다.

🥎balanced GC


0개의 댓글