메모리 지연이 CPU 병목인 이유
Key Point
CPU 100% 사용률도 메모리 레이턴시로 절반 이상 정체될 수 있으며, 캐시 친화 알고리즘으로 성능을 3배 이상 개선할 수 있다는 것을 구체적 성능 측정으로 입증한다.
핵심 요약
- CPU가 100% 사용 중이어도 메모리 접근 때문에 유휴 상태에 빠질 수 있다. 현대 CPU는 나노초당 4~8개 명령을 처리하지만 RAM 접근은 50~100ns 걸려서 한 번의 메모리 접근마다 400~800개 명령을 처리할 수 있는 시간이 소비된다.
- L1 캐시(1ns)는 RAM(50~100ns)보다 50~100배 빠르지만 용량이 약 64KB에 불과하고, L2·L3 캐시도 MB 단위로 제한되어 있다.
- 단순한 GROUP BY 구현에서 해시테이블이 매우 커지면 거의 모든 접근이 RAM 캐시 미스가 되어, 50.1%의 CPU 시간이 메모리 대기로 낭비되고 실제 연산은 16.1%에만 사용된다.