numbers-to-know.js·6 scenarios
Latency hierarchy, capacity defaults, storage sizes, peak factors. The cheat sheet for back-of-envelope estimation.
Шпаргалка по числам, которые нужно держать в голове при system-design прикидках. Не запоминайте все цифры, запоминайте порядки — какие операции на 3-6 порядков медленнее остальных.
| Где | Latency | Запомни как |
|---|---|---|
| L1 cache | 0.5 ns | базовая единица |
| RAM | 100 ns | 200× медленнее L1 |
| SSD random read | 100 µs | 1000× медленнее RAM |
| HDD seek | 10 ms | 100× медленнее SSD |
| Intra-DC round-trip | 0.5–5 ms | условно — как SSD |
| Cross-region (US→EU) | 50–150 ms | 10–100× медленнее intra-DC |
Порядок: nanoseconds (CPU) → microseconds (disk) → milliseconds (network) → seconds (cross-globe). Каждый шаг — 1000×.
| Компонент | RPS cap | Как масштабировать |
|---|---|---|
| Load Balancer / API GW | 50K rps | DNS round-robin, anycast |
| Cache (Redis, Memcached) | 100K rps | Cluster mode, consistent hash |
| Database (Postgres OLTP) | 10K rps | Read replicas + sharding |
| Message Queue (Kafka topic) | 50K rps | Partitions |
| Application Service | 5K rps | Replicas behind LB |
Это отправные точки, не теоретические лимиты. В продакшене номер зависит от железа, payload, query complexity.
| Что | Размер |
|---|---|
| Tweet, log line | ~1 KB |
| Avatar (small) | ~10 KB |
| Image (medium quality) | ~100 KB |
| Document, blog post | ~1 MB |
| HD photo, audio track | ~5 MB |
| Video minute (720p) | ~50 MB |
Storage/year ≈ DAU × writes/day × 365 × payload. Twitter-scale (200M DAU × 5 writes × 1KB) → ~365 TB/year.
| Тип системы | Read : Write |
|---|---|
| Twitter / Instagram (feed) | 100 : 1 |
| Reddit / Hacker News | 10 : 1 |
| Uber / DoorDash | 1 : 1 |
| Banking / write-heavy ETL | 1 : 5+ |