Fragment

Napkin math

These are numbers that are useful to have around when doing software engineering. Source is Eskildsen (2026). The goal is easily estimating things, not precision (thus numbers are rounded).

Before we get into them, some useful advice:

  • As in Big O, constants are less important than what comes after. So pay attention to the exponents
  • These are extremely handy Fermi-like estimates. The GitHub source says "Fermi Decomposition"
  • Try to not overcomplicate. If you are making more than 6 assumptions, you can probably simplify the problem further

Also, a nice thought is that these numbers usually expose the fastest possible performance. Whatever you do, it'll be ON TOP of these.

Time

  • 1 day ≈ 86,400 s ≈ 10⁵ s
  • 1 year ≈ 3 × 10⁷ s
  • 1 million requests per day ≈ 12 requests per second
  • Downtime budgets per number of 9's: Site reliability and 9's

Latency

OperationLatency
Sequential memory read (64 B)0.5 ns
Random memory read (64 B)20 ns
System call300 ns
Context switch10 μs
Random SSD read (8 KiB)100 μs
Network, same region250 μs
Database or cache query (MySQL, Redis)500 μs
Random HDD read (8 KiB)10 ms
Blob storage GET (S3, GCS)80 ms
Network, EU West ↔ NA East80 ms

Throughput

OperationThroughput1 GiB takes
Sequential memory read, single thread20 GiB/s50 ms
Network, same zone10 GiB/s100 ms
Sequential SSD read8 GiB/s100 ms
Decompression1 GiB/s1 s
Compression500 MiB/s2 s
Serialization (e.g. JSON)100 MiB/s10 s
Blob storage, single connection100 MiB/s10 s
Network between regions25 MiB/s40 s

Cost

WhatCost
1 vCPU$15 per month
1 GB memory$2 per month
1 GB blob storage (S3, GCS)$0.02 per month
1 GB zonal SSD$0.20 per month
1 GB internet egress$0.10
1 GB logs or traces ingested$0.50