YGCT/YGC = Minor GC 처리시간
FGCT/FGC = Full GC 처리시간
--> 아래의 기준이면 적당함... 절대치는 아님.
Minor GC의 처리 시간이 빠르다(50ms내외).
Minor GC 주기가 빈번하지 않다(10초 내외).
Full GC의 처리 시간이 빠르다(보통 1초 ~ 2초 이내).
Full GC 주기가 빈번하지 않다(10분에 1회).
Survivor 영역 중 하나는 반드시 비어 있는 상태로 남아 있어야 한다. 만약 두 Survivor 영역에 모두 데이터가 존재하거나, 두 영역 모두 사용량이 0이라면 여러분의 시스템은 정상적인 상황이 아니라고 생각하면 된다.
--> 특정 스레드에서 비즈니스 로직이 blocking 되어 GC에 문제가 발생한다. 해당 로직을 Async 로 리팩토링해야 한다.
--> 아래와 같이 FGC 일때 old 영역이 제대로 비워져야함. Full GC 또한 5/0.509 도 1초로 적당, Minor GC 도 0.01 로 적당.
@Async
요청이 긴 경우
로그 처리
푸시 처리
Timestamp S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
1700.4 71.05 0.00 81.15 99.63 95.42 93.09 1000 15.750 4 0.414 16.164
1701.4 0.00 81.20 32.15 99.72 95.42 93.09 1001 15.764 4 0.414 16.178
1702.4 0.00 81.20 96.06 99.72 95.42 93.09 1001 15.764 4 0.414 16.178
1703.4 0.00 0.00 51.00 6.76 95.42 93.09 1002 15.777 5 0.509 16.286
java-gc-overhead-limit-exceeded 에러 : https://www.baeldung.com/java-gc-overhead-limit-exceeded
'백엔드 > Java' 카테고리의 다른 글
다른 바이트 순서를 가진 시스템과의 통신 (0) | 2024.03.20 |
---|---|
JVM 튜닝 5 (0) | 2024.03.20 |
JVM 튜닝 4 (0) | 2024.03.20 |
JVM 튜닝 3 (0) | 2024.03.20 |
JVM 튜닝 1 (0) | 2024.03.20 |
Java Time과 System Time 의 문제해결 (0) | 2024.03.20 |
serialVersionUID 이란? Warning 해결하기 (0) | 2024.03.20 |
자바 UTF-8 바이트 (0) | 2024.03.19 |
댓글