Open lvalladares opened 7 years ago
First doing benchmarks with Docker is a bad idea, I was also receiving unstable results with Docker. Remember that docker contains a seccomp and several other layers in between the userspace and kernel.
I never tested with such high thread and connection values. It's entirely possible that it behaves like that. Do you really have 40 cores on the machine you were testing? If you saturate your CPU before saturating I/O I wouldn't be surprised to see those values.
@squeaky-pl I started with some regular numbers of concurrency and after that i started doing wrong numbers, i do know that the environment where i run my tests was not optimal, but what seems weird to me is that sanic has some "linear" scalation of RPS and workers, i mean 1 worker 13k RPS, 4 workers 20k RPS, and japronto with 1 worker 39k RPS, with 4 workers 35k.
Anyway, i will repeat the test when i got some time with some less concurrency and come back here to report my results
Remember that Sanic has more Python code in it, so it won't saturate CPU as fast as Japronto does. Sanic spends more time waiting for things to happen so it gives more space for wrk to take CPU time share from the machine.
Hello!
I dont know if this in a real issue or im missing something, but i will leave it here just in case.
I've been doing some benchmarks between falcon, sanic and japronto just to see the differences and have a look of the actual micro frameworks speed scenario, and doing the benchmark i noticed a weird (at least weird to me) behaviour in japronto, here is the result of my tests
The wieird thing here is the stability of RPS in japronto, i mean, with 1 worker i get 39k RPS, and with 4 workers i get 35k RPS, instead in sanic with 1 worker i get 13k and with 4, 20k.
After that i do one more test with some silly numbers, here is the command
wrk -t40 -c40000 -d60s http://localhost:8400/
and i tested under the same code of japronto two times, one with 1 worker and the other with 4 workers. Here are the results:
4 Workers
1 Worker
I do all the tests under the same docker container (i was switching between apps inside the docker) so i dont think is related to some external factors.