Hi, I am trying to move to HTTP2 based APR connector from my HTTP1 based connector because of some customer requirements.
I am trying to form some sort of throughput benchmark for HTTP2 in comparison to HTTP1. I have a simple Jersey service that accepts a JSON request and sends 200 with some headers. I have observed that HTTP2 is somehow stuck at 6K as compared to 15K in HTTP1.1 with the same amount of CPU and memory consumed. My client with HTTP1.1 is based on HTTP components and opens up to 100 connections with Tomcat. On HTTP2, I have a Jetty client that opens 2 connections with multiplexing of 1024. I tried increasing the connections to 20 as well, but that only has adverse affects. I am running Tomcat on a K8 pod with 3Gi CPU and 2Gi memory. With both HTTP2 and HTTP1.1 Tomcat consumes all 3 cores and approximately 800m memory. In the thread dumps with HTTP2, I see a lot of BLOCKED threads: [image: image.png] Most of the threads are blocked in *writeHeaders. * Am I missing something here? Any help is much appreciated. Thank you Chirag