Java CPU 사용률 높음
Java에서 CPU가 높은 것은 핫 메서드, GC 동작, 락 경합, 스레드 스케줄링 오버헤드가 복합적으로 작용하는 경우가 많습니다.
Common symptoms
- JVM 프로세스가 부하 상태에서 계속 높은 CPU를 유지함
- 요청 전반에 걸쳐 지연 시간이 증가함
- 처리량에 비례하지 않고 CPU가 상승함
Likely causes
- 부하 상태에서의 핫 코드 경로
- 과도한 가비지 컬렉션
- 너무 많은 스레드 또는 락 경합
Evidence to look for
Java PID가 CPU를 지배함
CPU와 함께 스레드 수가 증가함
샘플링 결과가 소수의 메서드를 가리킴
What it usually means
해결 방법은 JVM이 유용한 연산, 가비지 컬렉션, 또는 동기화 오버헤드에 시간을 소비하고 있는지에 따라 달라집니다.
What to do next
- 1CPU와 함께 스레드 및 GC 동작을 점검하세요
- 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