1.2 USE 방법론
USE는 각 resource에 대해 utilization, saturation, errors를 확인하는 방식입니다. 빠르게 누락을 줄이는 checklist로 쓰되, 세 지표를 기계적으로 같은 의미로 해석하지 않습니다.
| Resource | Utilization | Saturation | Errors |
|---|---|---|---|
| CPU | non-idle 시간 | run queue, CPU PSI | machine check, throttling |
| Memory | working set | reclaim, swap, memory PSI | OOM kill |
| Storage | busy time, throughput | queue, latency, I/O PSI | device와 filesystem error |
| Network | bandwidth, packet rate | socket queue, drops | retransmit, interface error |
Utilization과 saturation 분리
CPU 100%는 계산 자원을 모두 쓰고 있다는 뜻이지만 반드시 장애는 아닙니다. 처리량이 목표를 충족하고 latency가 안정적이면 효율적인 상태일 수 있습니다. 반대로 CPU 사용률이 40%여도 container quota 때문에 workload가 throttling될 수 있습니다.
Memory는 “몇 퍼센트 사용”만으로 해석하기 더 어렵습니다. Linux는 남는 memory를 page cache로 사용합니다. MemAvailable, reclaim, swap in/out, PSI를 함께 봅니다.
60초 첫 진단
uptime
vmstat 1 5
mpstat -P ALL 1 5
iostat -xz 1 5
cat /proc/pressure/cpu
cat /proc/pressure/memory
cat /proc/pressure/io
ss -s
출력에서 먼저 비정상 자원 하나를 고른 뒤 process와 cgroup으로 내려갑니다. 모든 명령 결과를 동시에 설명하려고 하면 원인과 부수 효과가 섞입니다.
노트
Load average는 CPU 사용률이 아닙니다. 실행 가능 task뿐 아니라 일부 uninterruptible sleep도 포함하므로 CPU, storage 대기와 함께 해석합니다.