Closed JindrichPilar closed 4 years ago
@JindrichPilar Thanks a lot for your contribution. We recently switched from HTTP to HTTPS (Optional HTTP/2) for all the tests. It is more suitable for production than a dummy test and can easily eliminate frameworks that are not production ready. Would you be able to enable the HTTPS/HTTP2 for the Javalin?
@stevehu HTTP(S)/2 support added. Ports 8080
and 8443
.
@JindrichPilar for some reason, the https doesn't work.
steve@freedom:~/networknt/microservices-framework-benchmark$ wrk -t4 -c128 -d30s https://localhost:8443 -s pipeline.lua --latency -- / 16
Running 30s test @ https://localhost:8443
4 threads and 128 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 0.00us 0.00us 0.00us -nan%
Req/Sec 0.00 0.00 0.00 -nan%
Latency Distribution
50% 0.00us
75% 0.00us
90% 0.00us
99% 0.00us
0 requests in 30.01s, 0.00B read
Socket errors: connect 0, read 210183, write 0, timeout 0
Requests/sec: 0.00
Transfer/sec: 0.00B
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 38.98ms 52.73ms 564.62ms 86.07%
Req/Sec 111.61k 55.02k 222.63k 63.22%
Latency Distribution
50% 16.47ms
75% 54.36ms
90% 114.21ms
99% 227.66ms
13047542 requests in 30.06s, 1.59GB read
Requests/sec: 434065.06
Transfer/sec: 54.23MB
@JindrichPilar There is an issue with HTTPS under high load. I am wondering if you could take a look at it. I also record a video here
I will take a look, I think I have time tomorrow.
On Tue, 17 Mar 2020, 22:18 Steve Hu, notifications@github.com wrote:
@JindrichPilar https://github.com/JindrichPilar There is an issue with HTTPS under high load. I am wondering if you could take a look at it. I also record a video here https://www.youtube.com/watch?v=VGMuoWfn4jc&list=PL6icvRU_5ZOVKD9slJTArx74O_CVQf8La
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/networknt/microservices-framework-benchmark/pull/65#issuecomment-600306182, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAWYTT3ARWISANULL5BAU2LRH7SKFANCNFSM4LMG5JMQ .
It seems there was a problem with protocol negotiation in my Jetty configuration. Wrk wasn't able to automatically fallback to HTTP 1.1 + TLS. Curl with explicit --http1.1
or --http2
was able to switch protocols.
While it seems wrk doesn't support HTTP/2, I was able to measure noticeable difference in throughput between 8443
and 9443
ports.
I updated the configuration and added another port, so now:
8080
- plain HTTP
8443
- HTTP1.1 + TLS
9443
- HTTP/2 with fallback to HTTP1.1 + TLS
Hello world application for the Javalin framework (solves https://github.com/networknt/microservices-framework-benchmark/issues/58).
Uses maven shade plugin to create executable fat jar.