락 경합으로 인한 CPU 높음
여러 스레드가 공유 자원을 두고 경쟁할 때, 시스템은 유용한 작업 대신 조율에 CPU를 소모합니다.
Common symptoms
- CPU는 높지만 처리량이 낮음
- 동시성을 높일수록 상황이 악화됨
- 지연 시간 급증이 예측 불가능함
Likely causes
- Mutex 또는 락 경합
- 높은 부하 하의 공유 데이터 구조
- 범위가 너무 넓은 임계 구역
Evidence to look for
perf에서 스핀 또는 대기 함수가 표시됨
컨텍스트 스위치가 지연 시간과 상관관계가 있음
스레드 수를 줄이면 처리량이 향상됨
What it usually means
시스템이 생산적인 작업 대신 락 경합에 바쁘게 소모되고 있습니다.
What to do next
- 1임계 구역 범위 축소
- 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