Reference · System Design · Angka dan estimasi

Angka dan estimasi

Ringkasan satu halaman untuk dibaca ulang menjelang interview. Dari Lesson 0003 (latency, percentile, angka yang perlu dihafal) dan 0004 (QPS, storage, bandwidth), ditambah tabel availability dari 0027.

Angka latency (urutan, bukan angka persis)

OperasiWaktuArtinya untuk desain
Main memory reference100 nsMemori jauh lebih murah dari apa pun lewat jaringan: dasar cache
Round trip di dalam datacenter0,5 msSepuluh panggilan berurutan ke service/database = 5 ms
Disk seek (hard disk berputar)10 msAkses acak mahal; index menghindari baca acak yang tidak perlu
Paket California → Belanda → California150 msJarak fisik tidak bisa dikalahkan kode: dekatkan data ke user (CDN)

Sumber: Jeff Dean, "Numbers Everyone Should Know" (2009). [1] Angka disk berasal dari 2009; yang dihafal adalah urutannya: memori ≪ jaringan datacenter ≪ disk acak ≪ antarbenua.

Latency, throughput, percentile

Dua angka bantu dan satuan

AngkaPakai untuk
1 hari = 86.400 detik ≈ 10⁵ detik10 juta request per hari = 10⁷ / 10⁵ = 100 QPS
2¹⁰ ≈ 10³ (KB) · 2²⁰ ≈ 10⁶ (MB) · 2³⁰ ≈ 10⁹ (GB) · 2⁴⁰ ≈ 10¹² (TB)Satu baris data kecil ±1 KB; satu foto ratusan KB sampai beberapa MB; memori server puluhan sampai ratusan GB
1 byte = 8 bitJaringan dalam bit per detik, storage dalam byte: 100 MB/s = 800 Mbps

Empat rumus

DAU × request/user/hari→ ÷ 10⁵ = QPS rata-rata→ × faktor puncak = QPS puncak→ × ukuran = bandwidth / storage

Contoh baku

SoalHitunganKesimpulan
1.000 DAU × 20 request20.000 / 10⁵ = 0,2 QPS; puncak ±2 QPS; 1 KB × 1.000/hari ≈ 365 MB/tahunSatu server + satu database. Tanpa LB, cache, queue
Kapasitas kasar satu server±10 ms per request, satu request sekaligus → 1.000 / 10 = 100 request/detikPatokan kapan beberapa server mulai masuk akal
Chat 10 juta DAU × 40 pesan4 × 10⁸ / 10⁵ = 4.000 QPS, puncak ±8.000; × 100 byte = 40 GB/hari ≈ 15 TB/tahunBeberapa server; pikirkan masa simpan dan pembagian data
Foto 1 juta DAU × 50 tampilan × 200 KB500 QPS × 200 KB = 100 MB/s = 800 MbpsSinyal CDN, bukan sinyal banyak server

Availability: jatah downtime

TargetDowntime per bulan (30 hari)
99%±7,2 jam
99,9%±43,2 menit
99,99%±4,32 menit

Sumber: Google SRE Book, Availability Table. [3]

Aturan di interview: bulatkan bebas, ucapkan asumsi dengan suara keras, maksimal ±5 menit. Estimasi punya satu fungsi: menentukan apakah komponen tambahan dibutuhkan.

[1] Jeff Dean, LADIS 2009 keynote ("Numbers Everyone Should Know") · [2] Google SRE Book, bab 4: Service Level Objectives · [3] Google SRE Book, Appendix A: Availability Table

Lesson: 0003 · 0004 · Cheat sheet lain: kerangka 5 langkah · trade-off komponen · Indeks