진행 실패

멈춤, 헛바쁨, 밀림은 서로 다른 장애다

증상이 비슷해도 CPU 사용률, 진행 여부, 피해 범위를 나누면 데드락과 주변 상태를 빠르게 구분할 수 있다.

deadlock

완전히 멈춤

서로 보유한 자원을 기다리며 CPU 사용률이 낮고 스택은 lock 대기 지점에 머문다.

livelock

계속 움직이지만 진전 없음

양보와 재시도를 반복해 로그와 CPU는 바쁘지만 완료 상태에 도달하지 못한다.

starvation

일부 작업만 계속 밀림

시스템 전체는 진행하지만 특정 스레드나 요청이 자원을 오래 받지 못한다.

락 순서 점검

데드락은 대기 그래프와 스레드 덤프에서 순환 대기 여부를 먼저 확인한다.

랜덤 백오프

라이브락은 같은 타이밍의 양보가 반복되지 않도록 지연 시간을 흔든다.

공정성 정책

기아는 우선순위 노화, FIFO 큐, writer 우선 같은 스케줄링 규칙으로 줄인다.