Load Testing: how many HTTP requests/second can a Single Machine handle?

https://binaryigor.com/how-many-http-requests-can-a-single-machine-handle.html

Load Testing: how many HTTP requests/second can a Single Machine handle?

This article presents a load testing experiment to determine the HTTP request handling capacity of a single machine running a Java 21-based REST API with Spring Boot 3 and PostgreSQL, deployed via Docker on DigitalOcean. The tests involve read and write requests against a database with over a million rows across various machine configurations (1 CPU/2GB, 2 CPUs/4GB, 4 CPUs/8GB). The results demonstrate that a single machine can handle significant sustained loads, ranging from 200-300 RPS for small configurations up to 2000-3000 RPS for larger setups, with specific performance metrics detailed for different load profiles. The author concludes that a single machine is often sufficient for systems not requiring complex microservices architectures, even for higher request volumes than commonly assumed.

Note

definitely some hand waving given the reality of a more complicated app brings more to the table. but in general, the take way still stands, complicated architectures tend to represent the needs of very large services that do get millions of visitors a day.

beefing up your machines costs more, but keeps the architecture simplers and that buys you a lot of time.

with that said, the real take away is to spend time investing in load testing your service. not only will it give you some limits to target, but if you do take on a new architecture, you now can compare it on more equal footing.

Published

2025

Summary

This article presents a load testing experiment to determine the HTTP request handling capacity of a single machine running a Java 21-based REST API with Spring Boot 3 and PostgreSQL, deployed via Docker on DigitalOcean. The tests involve read and write requests against a database with over a million rows across various machine configurations (1 CPU/2GB, 2 CPUs/4GB, 4 CPUs/8GB). The results demonstrate that a single machine can handle significant sustained loads, ranging from 200-300 RPS for small configurations up to 2000-3000 RPS for larger setups, with specific performance metrics detailed for different load profiles. The author concludes that a single machine is often sufficient for systems not requiring complex microservices architectures, even for higher request volumes than commonly assumed.