2. Back-of-Envelope Estimation
2.9 How do you estimate bandwidth?
At the wedding: Vans bring raw food in and take cooked food out to a second venue. You count van-loads per hour in each direction.
In the system: Bandwidth is data per second over the network, in each direction:
- Ingress = data coming in (uploads).
- Egress = data going out (downloads). Usually much bigger for read-heavy apps.
The trap: bits vs bytes. Storage is measured in bytes (B). Network speed is measured in bits per second (bps). 1 byte = 8 bits. Forget the 8 and your answer is 8 times too small.
PicShare (assumed): each photo shown in the feed is a compressed version of about 200 KB.
- Egress per day = 500 million views × 200 KB = 100 TB a day.
- Per second = 100 TB ÷ 86,400 ≈ 1.16 GB a second (bytes).
- In bits = 1.16 × 8 ≈ 9.3 Gbps on average, and about 3 times that at peak.
Ingress: 4 TB of uploads a day ÷ 86,400 ≈ 46 MB a second ≈ 370 Mbps.
That egress number is why photo and video apps serve media through a CDN (Chapter 26) instead of from their own servers.
Memory code: "Network speaks bits, storage speaks bytes. Times eight."