Java 프로세스 CPU 100% 해결
Java 프로세스가 CPU를 최대로 사용하는 원인은 코드, GC, 또는 스레딩일 수 있습니다. 모두 동일한 문제로 취급하면 불필요한 노력이 낭비됩니다.
Common symptoms
- 하나의 JVM 프로세스가 CPU를 포화 상태로 만듦
- 처리량이 멈추는 동시에 지연 시간이 증가
- 재시작 시 문제가 일시적으로 줄어듦
Likely causes
- 핫 메서드
- 과도한 GC 사이클
- 스레드 경합
Evidence to look for
하나의 JVM에서 지속적으로 높은 CPU 사용률
메모리 할당이 많은 경로와의 상관관계
프로파일링 결과 특정 호출 스택에 집중된 패턴 확인
What it usually means
코드, GC, 동시성 중 무엇을 튜닝할지 결정하기 전에 증거를 먼저 확보해야 합니다.
What to do next
- 1CPU와 스레드 증거를 함께 수집
- 2반복되는 스택 핫스팟 탐색
- 3락 경합 및 메모리 할당 압력 감소
See what's causing your CPU
cpum.ai turns CPU, process, disk, and memory signals into plain-English explanations with evidence.
Open cpum.ai