On 28/09/2020 09:13, Martin Grigorov wrote: <snip/>
> Good news: there are no regressions! So far, so good. > Neutral news: there are no performance improvements according to my tests. > I use > https://github.com/martin-g/http2-server-perf-tests/blob/128f24e27ef96ee31740db4130855bea2c021793/java/tomcat/src/main/java/info/mgsolutions/tomcat/Main.java > to test HTTP2, h2c, HTTP and HTTPS > HTTP: 28K reqs/s > H2C: 14K reqs/s > HTTP2: 11K req/s > > I still use Vegeta as a test client + my patch to ignore CANCEL errors You might want to try without that CANCEL error patch. The Tomcat code should be more robust against that sort of error now as it retains state for at least 5x max concurrent streams now. I see slightly different figures when testing locally with Vegeta: HTTP: 30.5k req/s HTTPS: 18.0k req/s h2c: 20.7k req/s h2: 17.2k req/s There are a couple of unexpected things there: - large drop from HTTP to HTTPS - similar HTTP figures for your test and mine but very different h2/h2c figures Given how unrepresentative local testing is I'm not entirely surprised. I'm not planning on spending any time digging into these differences. Running load tests with a profiler shows the biggest bottleneck is around I/O. There might be some small gains to be made with better buffering to reduce the number of network writes but implementing that change is more complex for the async HTTP/2 implementation. Mark --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org