CPU, 메모리, SSD, 디스크, 네트워크 사이의 속도 차이를 수치로 이해하면 캐시 전략, 네트워크 최적화, 아키텍처 결정이 달라집니다.
최신 NVMe SSD는 RAM과 비교했을 때 약 200배 느립니다.
이 숫자 하나가 아키텍처 결정을 바꿉니다. 언제 캐싱이 가치 있는지, 네트워크 호출을 줄이면 얼마나 빨라지는지, 리전을 분리하면 응답이 얼마나 느려지는지 — 이 모든 질문의 답이 레이턴시 수치에 달려 있습니다.
“숫자를 모르면 트레이드오프를 판단할 수 없다.
컴퓨터 시스템은 속도·용량·비용의 균형을 맞추기 위해 저장소를 여러 계층으로 나눕니다. CPU와의 거리가 가까울수록 빠르고 비싸며, 멀수록 느리고 저렴합니다.
CPU 레지스터 ← 가장 빠름, 수십 바이트
↓
L1 캐시 ← 수십 KB, ~0.5 ns
↓
L2 캐시 ← 수백 KB, ~7 ns
↓
L3 캐시 ← 수 MB, ~30 ns
↓
메인 메모리 ← 수십 GB, ~100 ns
↓
SSD ← 수 TB, ~150,000 ns
↓
HDD ← 수 TB, ~10,000,000 ns ← 가장 느림
각 계층 사이의 격차는 수십 배에서 수백 배에 달합니다. 이 격차의 감각을 가지고 있는 것 자체가 실력입니다.
이 숫자들은 아래 질문에 답하기 위해 존재합니다.
가장 처음 이 수치를 정리한 사람은 Peter Norvig입니다. 단일 머신 관점에서 각 연산의 비용을 정의했습니다.
| 연산 | 시간 |
|---|---|
| 전형적인 명령 실행 | 1 ns |
| L1 캐시 참조 | 0.5 ns |
| 분기 예측 실패 | 5 ns |
| L2 캐시 참조 | 7 ns |
| Mutex lock/unlock | 25 ns |
| 메인 메모리 참조 | 100 ns |
| 1Gbps 네트워크로 2KB 전송 | 20,000 ns |
| 메모리에서 1MB 순차 읽기 | 250,000 ns |
| 디스크 탐색 (Seek) | 8,000,000 ns |
| 디스크에서 1MB 순차 읽기 | 20,000,000 ns |
| 패킷 미국 ↔ 유럽 왕복 | 150,000,000 ns |
이 표가 강조하는 것은 정확한 수치보다 차수(order of magnitude)의 감각입니다.
CPU ~1 ns
메모리 ~100 ns ← CPU보다 100배 느림
디스크 ~8,000,000 ns ← 메모리보다 80,000배 느림
네트워크 ~150,000,000 ns
메모리 접근 100번이 디스크 접근 1번보다 빠릅니다. 디스크 I/O를 1회 줄이는 것이 코드 최적화 수백 줄보다 효과적일 수 있습니다.
Jeff Dean은 Norvig의 수치를 Google의 MSA 시스템 운영 경험을 바탕으로 확장했습니다. 분산 시스템과 SSD의 등장을 반영한 버전입니다.
| 연산 | 시간 |
|---|---|
| L1 캐시 참조 | 0.5 ns |
| 분기 예측 실패 | 5 ns |
| L2 캐시 참조 | 7 ns |
| Mutex lock/unlock | 25 ns |
| 메인 메모리 참조 | 100 ns |
| 1KB Zippy 압축 | 3,000 ns |
| 1Gbps 네트워크로 1KB 전송 | 20,000 ns |
| SSD에서 4K 랜덤 읽기 | 150,000 ns |
| 메모리에서 1MB 순차 읽기 | 250,000 ns |
| 데이터 센터 내부 왕복 | 500,000 ns |
| SSD에서 1MB 순차 읽기 | 1,000,000 ns |
| 디스크 탐색 (Seek) | 10,000,000 ns |
| 디스크에서 1MB 순차 읽기 | 20,000,000 ns |
| 패킷 미국 ↔ 유럽 왕복 | 150,000,000 ns |
당시 Google의 BigTable, MapReduce 같은 시스템에서는 네트워크와 디스크 I/O가 성능 병목이었습니다.
데이터를 압축해서 전송하면 전송량은 줄지만 압축 비용이 발생합니다. 이 트레이드오프를 판단하려면 압축 비용과 네트워크 전송 비용을 같은 단위로 비교할 수 있어야 했습니다.
Zippy 압축 1KB = 3,000 ns
네트워크 전송 1KB = 20,000 ns
→ 압축이 전송보다 약 6배 빠르므로, 압축 후 전송이 유리
이 수치가 있어야 "압축해서 보내는 게 낫다"는 결정을 근거 있게 내릴 수 있습니다.
Norvig의 표는 단일 PC 내부에서 발생하는 비용을 다룹니다. Jeff Dean의 표는 여기에 인프라 관점 — 데이터 센터 왕복, SSD, 압축 비용 — 을 추가했습니다.
Colin Scott은 하드웨어 발전에 따른 비용 변화까지 고려한 인터랙티브 모델을 만들었습니다. 연도를 바꾸면 각 수치가 어떻게 변해왔는지 볼 수 있습니다.
Colin Scott의 핵심 기여는 상대적 격차의 시각화입니다. 절대 수치는 하드웨어가 발전하면서 계속 줄어들지만, 계층 간 서열은 바뀌지 않는다는 것을 직관적으로 보여줍니다.
2001년 2024년 (대략)
───────── ─────────
CPU: 1 ns → 0.3 ns
메모리: 100 ns → 60 ns
SSD: 없음 → ~100,000 ns
디스크: 8ms → 1ms (NVMe)
네트워크: 150ms → 50ms (일부 리전)
숫자는 계속 작아집니다. 하지만 CPU → 메모리 → SSD → 디스크 → 네트워크라는 속도 서열은 수십 년이 지나도 바뀌지 않습니다.
이 서열을 감각으로 체득하는 것이 이 숫자들을 외우는 것보다 훨씬 가치 있습니다.