cd ../
Systems·2026-04-25·4 min read·# entry/037

모든 개발자가 알아야 할 레이턴시 숫자들

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   ← 가장 느림
계층 구조의 핵심

각 계층 사이의 격차는 수십 배에서 수백 배에 달합니다. 이 격차의 감각을 가지고 있는 것 자체가 실력입니다.


Latency Numbers Every Programmer Should Know

이 숫자들은 아래 질문에 답하기 위해 존재합니다.

  • 캐시: 캐시를 도입할 가치가 있을까?
  • 네트워크: 네트워크 호출 한 번을 줄이면 얼마나 빨라질까?
  • 메모리: 데이터를 메모리에 두는 게 정말 그렇게 큰 차이일까?
  • 리전: 리전을 분리하면 응답이 얼마나 느려질까?
  • 스토리지: SSD가 RAM의 대안이 될 수 있을까?

Norvig의 최초 정의 (2001)

가장 처음 이 수치를 정리한 사람은 Peter Norvig입니다. 단일 머신 관점에서 각 연산의 비용을 정의했습니다.

연산시간
전형적인 명령 실행1 ns
L1 캐시 참조0.5 ns
분기 예측 실패5 ns
L2 캐시 참조7 ns
Mutex lock/unlock25 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의 확장 (Google, 2004)

Jeff Dean은 Norvig의 수치를 Google의 MSA 시스템 운영 경험을 바탕으로 확장했습니다. 분산 시스템과 SSD의 등장을 반영한 버전입니다.

연산시간
L1 캐시 참조0.5 ns
분기 예측 실패5 ns
L2 캐시 참조7 ns
Mutex lock/unlock25 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 vs Jeff Dean 표의 차이

Norvig의 표는 단일 PC 내부에서 발생하는 비용을 다룹니다. Jeff Dean의 표는 여기에 인프라 관점 — 데이터 센터 왕복, SSD, 압축 비용 — 을 추가했습니다.


Colin Scott의 시각화 (2012~)

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 → 디스크 → 네트워크라는 속도 서열은 수십 년이 지나도 바뀌지 않습니다.

이 서열을 감각으로 체득하는 것이 이 숫자들을 외우는 것보다 훨씬 가치 있습니다.