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

Reply via email to