Lesson 12 of 19
2. Back-of-Envelope Estimation

2.11 How many servers do you need?

3 min read+10 XP

At the wedding: If one cook makes 50 plates an hour and the lunch rush needs 500 an hour, you need 10 cooks. But you hire more than 10: nobody works at 100% for hours, and someone always falls sick.

In the system:

servers = peak requests per second ÷ (one server's capacity × target utilisation) + spares
  • One server's capacity depends entirely on the work per request. A simple cached lookup might handle thousands a second; a heavy request, far fewer. In an interview, assume a number and say it's an assumption ("say 1,000 requests a second per server"). In real life, measure it with a load test.
  • Target utilisation: don't plan to run at 100%. Running around 60 to 70% leaves room for spikes and slow moments.
  • Spares: at least one extra, so losing a server doesn't overload the rest.

PicShare (assumed 1,000 requests a second per server, 60% utilisation, 1 spare):

  • 17,400 ÷ (1,000 × 0.6) = 29 → 29 servers + 1 spare = 30.

Why this matters more than the exact count: 30 servers is "a normal fleet behind a load balancer". 3,000 would mean rethinking the work per request first.

Memory code: "Peak ÷ per-server, leave headroom, add a spare."