> I was sure that all servers from the techempower was at least a bit tested to 
> hold big amount of connections.

TechEmpower uses a large amount of connections I'm pretty sure, but it also 
uses HTTP 1.1 pipelining, which is a feature that's only useful in benchmarks, 
and almost never used in the real world for a variety of reasons. That ends up 
skewing benchmarks very heavily. I would read [this 
post](https://deavid.wordpress.com/2019/10/06/http-pipelining-is-useless/) on 
why it's useless in the real world and only benefits benchmark numbers.

> It would be good to have at least small description how to test it.

My main method for testing performance and stability was pounding servers using 
a tool called [Bombardier](https://github.com/codesenberg/bombardier) which is 
similar to wrk. I would first test using 100 connections, then 1,000, then 
10,000. The servers that can't handle file descriptor exhaustion would 
typically crash on the higher numbers. Then I would try the same tests using 
POST requests with and without a body. I try with body small bodies with simple 
form data and large bodies with files. This gives me a pretty good idea of what 
the server can handle under high load and under different circumstances. I've 
found that most servers tested leak memory when you send them large bodies, 
assuming you're reading the bodies (or even if you're not, in the case of 
httpbeast).

> Another question is about streaming: is there big difference with websocket? 
> The question is because I saw that mummy is fine with ws, and if sse/chunks 
> are pretty near - is it big problem?

With websocket, you're dealing with messages and rarely streams of actual data. 
Replies are also simple and not data-heavy, and you aren't expected to 
immediately reply to messages, or even reply at all in many cases. It's quite a 
bit different from the normal HTTP paradigm, and therefore I can't say much 
about it.

Reply via email to