On Mon, Sep 28, 2020 at 11:59 AM Mark Thomas <ma...@apache.org> wrote:

> 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.
>

Confirmed!
Now Tomcat does not complain about the late CANCEL!


>
> 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.
>

Thank you for the improvements !


>
> 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.
>

Yes, I also see only network IO operations in the profiler now.


>
> Mark
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>
>

Reply via email to