How much server does my web app need?
You cannot read the answer off a pricing page. You find it by running your app on a known server, sending it the traffic you expect, and watching what runs out first. Here is how to do that, with or without Stresix.
1. Estimate your peak, not your average
Size for the busiest hour you expect, such as a launch, a newsletter or a post that takes off, not the daily average. A useful starting point is peak concurrent users: people actively making requests at the same moment. Real visitors pause to read, so a few thousand active simulated users already represents a large real crowd.
2. Test on the hardware you plan to pay for
Results only transfer to the same kind of server. Test your app on a known CPU and memory size, with the same container and settings you deploy, and point it at a test database that can take the load.
3. Ramp the load and watch three numbers
Increase users gradually and watch p95 latency (the time 95% of requests beat), the error rate, and the server’s CPU and memory. The point where p95 climbs sharply or errors appear is your ceiling on that server.
4. Find what ran out
If CPU is pinned, a bigger or faster CPU helps. If one core is pinned while others idle, your app is single-threaded and more workers help more than a bigger server. If memory runs out, you need more memory or a fix for a leak. If none of them ran out, the limit is probably your database or another dependency, and a bigger app server will not help.
5. Size up only when the numbers say so
If your app held your expected peak with room to spare, keep the server you have. Most apps run on more than they need, and that headroom is paid for every month.
Doing it with Stresix
Stresix runs steps 2 to 5 for you. It starts your repository or Docker image on a dedicated 4 vCPU / 8 GB server (or 8 vCPU / 16 GB for Massive), ramps up to 2,500 or 10,000 simulated users, measures latency, errors, CPU per core and memory every second, and ends with a verdict on whether that hardware is enough. A run takes 10 to 15 minutes and costs from $1.60.
Frequently asked questions
How many users can a 4 vCPU / 8 GB server handle?
It depends entirely on the app: a cached static page and a heavy database query differ by orders of magnitude. Load testing your own app on that hardware is the only reliable way to know.
What is a good p95 latency?
For read endpoints, under 200 ms is a common goal, and under 500 ms is usually acceptable for heavier pages. Watch how it changes as load rises, not just its value at low load.
Should I load test production?
Prefer a copy of production running on the same hardware with a test database. Load testing a live system can affect real users.
Why not just buy a bigger server to be safe?
Because you pay for unused headroom every month, and if the real bottleneck is your database or a single-threaded process, a bigger server does not help at all.
Related guides
Stop guessing your specs. Start knowing them.
Point Stresix at a repo or Docker image and get a number you can deploy on, in one run.
Start a load test