On Mon, Sep 28, 2020 at 9:28 AM Martin Grigorov <mgrigo...@apache.org> wrote:
> Hi, > > On Fri, Sep 25, 2020 at 4:40 PM Mark Thomas <ma...@apache.org> wrote: > >> On 25/09/2020 14:34, ma...@apache.org wrote: >> > This is an automated email from the ASF dual-hosted git repository. >> > >> > markt pushed a change to branch master >> > in repository https://gitbox.apache.org/repos/asf/tomcat.git. >> > >> > >> > from 519f6f8 Fix a typo in changelog >> > new ee25710 Reduce memory footprint of closed http/2 streams >> > new f6e656e Reduce memory footprint of closed http/2 streams >> > new 0f66705 Reduce memory footprint of closed http/2 streams >> > new fa6df26 Reduce memory footprint of closed http/2 streams >> > new 9ee7d6a Reduce memory footprint of closed http/2 streams >> > new 30df6a0 Reduce memory footprint of closed http/2 streams >> > new 0a78ae9 Fully replace Stream with RecycledStream >> > new 954cbff Refactor the pruning so more stream info is retained >> for longer >> > new 18e0e3f Update changelog >> >> All, >> >> This set of changes provided multiple improvements to the HTTP/2 >> implementation: >> >> 1. The memory used by closed streams is significantly reduced (hopefully >> without the NPEs triggered by my previous attempt). >> 2. We retain information on more streams in the priority tree. This >> enables greater latitude for clients that send frames for streams >> that have been closed (while not increasing memory). >> 3. We no longer aggressively prune the priority tree to just active >> streams (this was causing problems in some usage patterns). >> >> My plan is to let this run on the CI for a few days and then - assuming >> no issues - back-port it early next week. >> > > I will cherry-pick these commits to a branch [1] that I use for testing > and profiling. > I'll report back with the results! > Good news: there are no regressions! 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 because I haven't found a better load client. I've reported a bug against Golang net package: https://github.com/golang/go/issues/41570 > > 1. > https://github.com/martin-g/tomcat/tree/http2/use-navigateable-map-for-http2-streams > > > >> >> Mark >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: dev-h...@tomcat.apache.org >> >>