All-in-One
Every calculator on one page. Type shorthand like "10m" or "1.5b".
Users & Traffic
Turn DAU into requests per second.
ƒ QPS_avg = DAU × req/user/day ÷ 86,400 QPS_peak = QPS_avg × peak_ratio
Inputs
users
Type "10m" or "1.5b"
req
×
Web: 2–3×. Spiky: 5–10×.
: 1
Social 100:1. Logging 1:100.
Results
Total requests / day
—
Average QPS
—
Peak QPS
—
Peak read QPS
—
Peak write QPS
—
Storage
Disk needed for records over a retention window.
ƒ total = records/day × size × 365 × years × (1 + index) × replicas
Inputs
rec
Tweet ≈ 300 B. Image ≈ 1 MB.
×
yr
frac
0.30 = +30%
Results
Per day
—
Per month
—
Per year
—
Raw over retention
—
Total provisioned
—with replication + overhead
Bandwidth
Network traffic in and out of your service.
ƒ bandwidth = QPS × payload_size (per direction)
Inputs
req/s
JSON API ~1 KB. Photo ~1 MB.
Webpage ~100 KB. Video chunk ~256 KB.
Results
Ingress (in)
——
Egress (out)
——
Total (in + out)
—
Per month
—
Per year
—
Throughput & Concurrency
How many in-flight requests does this load create?
ƒ Little's Law: L = λ × W (concurrency = QPS × latency)
Inputs
req/s
ms
srv
Results
Total in-flight requests
—across the whole fleet
Per-server QPS
—
Per-server concurrency
—threads/connections per box
CPU cores hint
—rough: concurrency/2 (I/O-bound)
Cache Sizing
Size a Redis / Memcached tier for the hot working set.
ƒ cache = items × hot_fraction × bytes_per_item × (1 + overhead)
Inputs
items
frac
0.20 = 80/20 rule
frac
0.20 = +20% for keys / metadata
Results
Hot items
——
Working set
—
Recommended cache size
—with overhead
RAM per Server
Memory for in-memory session / connection state.
ƒ per_server = users × bytes/user ÷ servers × (1 + headroom)
Inputs
users
srv
frac
0.30 = +30% safety
Results
Total session memory
—
Per server (steady)
—
Per server (with headroom)
—size boxes to at least this
Users & Traffic
Turn daily active users into requests per second.
ƒ QPS_avg = DAU × req/user/day ÷ 86,400 QPS_peak = QPS_avg × peak_ratio
Inputs
users
e.g. 10,000,000 = 10M DAU. Type "10m".
req
Avg API calls each active user makes daily
×
Typical web: 2–3×. Spiky workloads (events): 5–10×.
: 1
Typical social: 100:1. Logging: 1:100.
Results
Total requests / day
—
Average QPS
—
Peak QPS
—(avg × peak ratio)
Peak read QPS
—
Peak write QPS
—
Storage
Disk needed for records over a retention window.
ƒ total = records/day × size × 365 × years × (1 + index) × replicas
Inputs
rec
New rows/events per day
Tweet ≈ 300 B. Image metadata ≈ 1 KB. Image ≈ 1 MB.
×
Cassandra/HDFS: 3. S3: 3+ (internally).
yr
How long you keep the data
frac
0.30 = +30%. B-tree indexes typically add 10–40%.
Results
Per day
—
Per month
—
Per year
—
Raw over retention
—before replication & overhead
Total provisioned
—with replication + overhead
Bandwidth
Network traffic in and out of your service.
ƒ bandwidth = QPS × payload_size (per direction)
Inputs
req/s
Use the peak QPS from the Users tab
JSON API: ~1 KB. Photo upload: ~1 MB.
Webpage: ~100 KB. Video chunk: ~256 KB.
Results
Ingress (in)
——
Egress (out)
——
Total (in + out)
—
Per month
—
Per year
—
Throughput & Concurrency
How many in-flight requests does this load create?
ƒ Little's Law: L = λ × W (concurrency = QPS × latency)
Inputs
req/s
Peak load you want to serve
ms
Wall-clock time per request, including I/O waits
srv
Horizontal fleet behind the load balancer
Results
Total in-flight requests
—across the whole fleet
Per-server QPS
—
Per-server concurrency
—threads/connections needed per box
CPU cores hint
—rough: concurrency/2 (I/O-bound, async)
Cache Sizing
Size a Redis / Memcached tier for the hot working set.
ƒ cache = items × hot_fraction × bytes_per_item × (1 + overhead)
Inputs
items
All cacheable keys (users, posts, sessions…)
frac
0.20 = top 20% serves most traffic (80/20 rule)
Avg serialized value size (incl. JSON overhead)
frac
0.20 = +20% for keys, pointers, eviction metadata
Results
Hot items
——
Working set
—hot items × bytes/item
Recommended cache size
—with overhead
RAM per Server
Memory needed for in-memory session / connection state.
ƒ per_server = users × bytes/user ÷ servers × (1 + headroom)
Inputs
users
Active sessions held in memory at peak
Session token + user context + connection buffer
srv
Sessions spread evenly across the fleet
frac
0.30 = +30% safety. Aim for ~60–70% steady-state util.
Results
Total session memory
—
Per server (steady)
—
Per server (with headroom)
—size your boxes to at least this
Reference Cheatsheet
Numbers every engineer should know before the whiteboard.
Latency Numbers (Jeff Dean, updated for modern hardware)
| Operation | Time | Notes |
|---|---|---|
| L1 cache reference | 1 ns | |
| Branch mispredict | 3 ns | |
| L2 cache reference | 4 ns | ≈ 4× L1 |
| Mutex lock/unlock | 17 ns | |
| Main memory reference | 100 ns | ≈ 20× L2, 200× L1 |
| Compress 1 KB w/ Snappy | 2 µs | |
| Read 1 MB sequentially from memory | 3 µs | |
| Send 1 KB over 1 Gbps network | 10 µs | |
| Read 4 KB random from SSD | 16 µs | |
| Read 1 MB sequentially from SSD | 49 µs | |
| Round trip within same datacenter | 500 µs | 0.5 ms |
| Read 1 MB sequentially from disk | 825 µs | |
| Disk seek | 2 ms | |
| Packet CA → Netherlands → CA | 150 ms |
Powers of 2 — quick lookup
| Power | Value | Meaning |
|---|---|---|
| 210 | 1,024 | ≈ 1 thousand (Kilo) |
| 216 | 65,536 | max value of UInt16 |
| 220 | 1,048,576 | ≈ 1 million (Mega) |
| 230 | 1,073,741,824 | ≈ 1 billion (Giga) |
| 232 | 4,294,967,296 | max UInt32, ~4.3 B |
| 240 | 1,099,511,627,776 | ≈ 1 trillion (Tera) |
| 250 | 1.13 × 1015 | ≈ 1 quadrillion (Peta) |
| 263 | 9.22 × 1018 | max Int64 (signed) |
Common Assumptions
Day length86,400 sec ≈ 10⁵ — useful for QPS math
Month≈ 30 days for napkin math
Year≈ 3.15 × 10⁷ sec ≈ π × 10⁷
Replication factor3 (Cassandra, HDFS, Kafka default)
Read:Write ratioSocial 100:1, Read-heavy CMS 10:1, Logging 1:100
Peak-to-average2–3× typical; 5–10× for spiky / event-driven
Cache hit rate target80–95% (80/20 rule on hot keys)
Disk speed (SSD)500 MB/s sequential, 100k IOPS random
Network1 Gbps ≈ 125 MB/s; 10 Gbps ≈ 1.25 GB/s
CompressionText: 5–10× (gzip); binary: 1–3×
Throughput & Bandwidth Ballparks
Single MySQL/Postgres node~1k–10k QPS reads, ~1k QPS writes
Redis (single node)~100k QPS
Kafka broker~1 GB/s ingest, ~100k msg/s
Nginx (single box)~50k req/s static content
App server (single box)~1k–10k QPS depending on workload
S3 / object storeEffectively unlimited; ~100 ms p50 GET
DNS lookup~20–120 ms cold; ~1 ms cached
TCP handshake (RTT)~1 ms LAN, ~30–100 ms WAN
TLS handshake1–2 extra RTTs
Mobile 4G RTT~50–100 ms