티스토리 뷰
GC의 종류에 대해서 알아보겠습니다.
SerialGC
- 싱글 스레드로 Young 영역, Old 영역을 처리
- 하나의 스레드를 이용해서 동작하기 때문에 멀티 스레드 환경의 서버 프로그램에서는 부적합
- 일시 중지에 관대한 클라이언트 프로그램이나 테스트용 프로그램에 적합
java -XX:+UseSerialGC
- Mark-Sweep-Compact 알고리즘을 이용
- Mark: 살아 있는 객체를 선택
- Sweep: 선택되지 않은 객체를 정리
- Compact: 메모리 공간을 압축
ParallelGC
- Minor GC를 여러개의 스레드를 이용하여 동시에 처리
- Major GC는 싱글 스레드로 처리
- SerialGC보다 빠르지만 더 많은 자원을 소모
- Mark-Sweep-Compact 알고리즘을 이용
java -XX:+UseParallelGC
Parallel Old GC
- Minor GC, Major GC를 모두 여러개의 스레드를 이용하여 동시에 처리
- Mark-Summary-Compaction 알고리즘을 이용
- Mark-Summary-Compaction 단계를 수행
- Summary 단계에서 메모리를 인덱싱하는 작업을 수행
- Sweep은 싱글 스레드로 처리되고, Summary는 멀티 스레드로 처리하면서 이전 컴팩션정보를 함께 이용
java -XX:+UseParallelOldGC
CMS(Concurrent Mark & Sweep) GC
- SerialGC, ParallelGC와 다른 알고리즘을 이용하여 작업이 멈추는 시간을 줄임
- Stop-The-World 시간이 짧지만, 다른 GC에 비해 많은 메모리와 CPU를 사용
- Compaction 단계가 기본적으로 제공되지 않아서 메모리 파편화가 발생할 수 있음
java -XX:+UseConcMarkSweepGC
- 동작 방식
- Root Set에 의해 직접 참조되는 객체들을 선택(initial mark)
- Root Set: 현재 참조중인 객체를 판단하기 위한 메모리 주소 모음
- 애플리케이션 동작 중 살아있는 객체 식별 (concurrent mark)
- 2번에서 새로 추가로 참조가 끊긴 객체를 확인 (remark)
- 참조가 끊긴 모든 객체를 정리 (concurrent sweep)
- Root Set에 의해 직접 참조되는 객체들을 선택(initial mark)
G1GC
- 메모리를 블록단위의 region으로 나누어서 데이터를 할당
- Young, Old 영역이 없음
- 블록을 사용 목적으로 구분하여 데이터를 할당하고, 해당 블록만 GC를 실행
-XX:UseG1GC
공통
- GC로그를 출력하기 위해서는 다음의 옵션을 입력
java -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps
참고
반응형
'java' 카테고리의 다른 글
[log4j] 레이아웃 패턴 기본 설정 (0) | 2019.11.04 |
---|---|
[openjdk] open jdk 1.8 다운로드 및 설치 (0) | 2019.10.25 |
[java] JVM이란? (0) | 2019.07.08 |
[java] 메모리 누수와 힙 덤프 분석 (0) | 2019.06.05 |
[java] 자바의 가비지 콜렉션(GC: Garbage Collection)과 jstat을 이용한 모니터링 (0) | 2019.06.04 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Linux
- hbase
- SPARK
- 다이나믹
- 정올
- error
- emr
- oozie
- airflow
- ubuntu
- 파이썬
- build
- HDFS
- Hadoop
- 하둡
- java
- 백준
- yarn
- 오류
- mysql
- HIVE
- nodejs
- bash
- 알고리즘
- S3
- SQL
- 하이브
- Python
- AWS
- Tez
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함