Freigeben über


How fast can your HTTP server go?

I have a burning question on my mind. How fast can an HTTP/HTTPS server go? When I say fast, I have some assumptions, which are based on removing all of the wishy-washy disclaimers. “That depends on what features of the framework you use.” “It depends on your database technology.” “It depends on your ORM" blah blah blah.

You see actually I really don’t want to care about stuff because I want to first, know the answer to my question: for maximal scalability, how should I build my technology stack from the bottom up? ( Not from the top down based on features.) Second, once I am really choosing a technology stack: I want to know how much scalability I gave up in exchange for the features I choose.

Without that kind of knowledge, how can I evaluate the scalability of my app as I develop it, and figure out when I made the wrong technology chocie?

So anyway, the assumptions are:

  • we’re running on a VM with modest specs, say anything up to 16GB ram and 4CPUs
  • you can choose your technology/OS stack from anything
  • the app is ‘hello world’ – no database, no backend of any kind, no session state, no auth
  • you can have as many clients/connections as you want to saturate the server
  • in the HTTPS scenario, you can reuse some connections

I care about both

  • throughput – request/sec
  • latency, but only in the case where the server isn’t overloaded, skewing the latency numbers

but throughput is probably more important…
So…
That was my burning question…
I spent quite a while researching this on the interwebs…
…and I eventually found one excellent page which takes a stab at answering my question for HTTP anyway, if not HTTPS

https://www.techempower.com/benchmarks/

But why did I have to search so long? Surely technology vendors realize this information is important in designing applications for scale, and people are going to find it out anyway. So why don’t they try to make it easy to find?

Wouldn’t it be great if I can go to your top page, see a link or section saying ‘performance/scale’, and see a simple line of text that says ‘100K HTTP RPS Hello World - this is how great we can scale! Put us at the bottom of your technology stack!’