Skip to content
Estimation drills

Estimation drills

Before designing a system, size it: how many requests a second, how much data, how many machines. The aim is the right power of ten in a minute, with round numbers you can multiply in your head. The estimation lesson explains the method.

7 questions, one of each kind. Within 2× counts as spot on; within 10× is the right order of magnitude.

Estimate: Requests a second

Practice, not recorded

A chat app has 500 million daily users, who each send 2 messages a day. About how many requests a second does it serve, on average?

Daily users
500 million
Messages per user a day
2

Estimate: Peak traffic

Practice, not recorded

A photo-sharing app has 1 million daily users, who each view 20 photos a day. Its busiest hour runs at 5 times the daily average. About how many requests a second must it handle at the peak?

Daily users
1 million
Photos per user a day
20
Peak ÷ average
5×

Estimate: Storage a year

Practice, not recorded

50 million users each send 10 messages a day, 1 KB each. Everything is kept, and stored 3 times for safety. About how much storage does a year of them need?

Active users a day
50 million
Messages per user a day
10
Size of each
1 KB
Copies kept
3

Estimate: Latency budget

Practice, not recorded

A request must be answered within 200 ms. About how many main-memory references could it make one after another in that time, if it did nothing else?

Time budget
200 ms
One of them (main memory (ram) reference)
100 ns

Estimate: Cache memory

Practice, not recorded

A database holds 1 billion product records, 1 KB each. As often happens, about 80% of reads go to the most popular 20%. How much memory does a cache need to hold that hot 20%?

Items stored
1 billion
Size of each
1 KB
Hot share
20%

Estimate: Bandwidth

Practice, not recorded

A service sends 50,000 API responses a second, 2 KB each. About how much outgoing bandwidth does it need?

Responses a second
50,000
Size of each
2 KB

Estimate: How many servers

Practice, not recorded

At its peak a service gets 20,000 requests a second. One server can handle 1,000 a second flat out, but you want each to run at no more than 60% of that so latency stays low. About how many servers do you need?

Peak requests a second
20,000
One server, flat out
1,000
Target load per server
60%