networknt / microservices-framework-benchmark

Raw benchmarks on throughput, latency and transfer of Hello World on popular microservices frameworks
MIT License
705 stars 127 forks source link

micronaut with reactor server #60

Closed paloliska closed 4 years ago

paloliska commented 4 years ago

micronaut framework with reactor

stevehu commented 4 years ago

I have a new computer and I didn't run all the tests. Just compare with the light-4j on my 8 core AMD 2700x CPU with 32GB memory.

Light-4j

steve@freedom:~/networknt/microservices-framework-benchmark$ wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   798.83us    1.59ms  36.27ms   91.76%
    Req/Sec   838.09k   102.81k    1.00M    93.50%
  Latency Distribution
     50%  316.00us
     75%  619.00us
     90%    1.89ms
     99%    8.96ms
  100059792 requests in 30.01s, 11.65GB read
Requests/sec: 3334292.99
Transfer/sec:    397.48MB

micronaut reactor

steve@freedom:~/networknt/microservices-framework-benchmark$ wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     8.58ms    9.24ms 114.31ms   85.70%
    Req/Sec    74.13k     8.88k  103.32k    69.06%
  Latency Distribution
     50%    5.22ms
     75%   12.12ms
     90%   21.42ms
     99%   49.62ms
  8862388 requests in 30.06s, 1.18GB read
Requests/sec: 294837.88
Transfer/sec:     40.21MB

micronaut rxjava

steve@freedom:~/networknt/microservices-framework-benchmark$ wrk -t4 -c128 -d30s http://localhost:8080 -s pipeline.lua --latency -- / 16
Running 30s test @ http://localhost:8080
  4 threads and 128 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     8.69ms    9.15ms 109.63ms   85.17%
    Req/Sec    71.88k     8.60k  100.95k    70.99%
  Latency Distribution
     50%    5.45ms
     75%   12.50ms
     90%   21.86ms
     99%   57.56ms
  8591836 requests in 30.05s, 1.14GB read
Requests/sec: 285888.77
Transfer/sec:     38.99MB

In reality, it is still something based on Java EE. I am wondering if you could enable the HTTPS for the test servers so that we can do a comparison with TLS enabled. Also, I am wondering if HTTP/2 can be enabled as well. Thanks a lot for your help.

paloliska commented 4 years ago

Hi I will try to enable TLS and HTTP/2. Once ready I will make pull requests.

stevehu commented 4 years ago

Cool. Thanks. I will create another report with HTTPS/HTTP2 only and gradually ask others to migrate to HTTPS/2 as it is more production like. There are two many benchmarks for pure HTTP text and a lot of so-called frameworks are not production-ready.