Increased latency when testing http/2 and 60,000 connections

Hey all,
I’m doing performance testing against Nginx with a fastCGI server behind it. Our scenario aims to open 60,000 concurrent connections (with a ramp up phase), followed by sending about 10,000 queries per second.
This environment is on physical hosts, in a lab environment with their own private network.

Using gatling 3 and jdk 12, we’re seeing a mean round trip time of 10ms per request for http/1.1. When we go to http/2, this round trip time increases to 50ms - for the same requests, environment, everything. The only thing changing is the http/2 flag in gatling.

Has anyone encountered this before? Is there any extra jvm tuning I should be doing for http/2 requests?

Cheers,
Shane

Hi,

Using gatling 3 and jdk 12, we’re seeing a mean round trip time of 10ms per request for http/1.1. When we go to http/2, this round trip time increases to 50ms - for the same requests, environment, everything. The only thing changing is the http/2 flag in gatling.

Impossible at this point to tell if Gatling is the culprit or the mere messenger and the overhead is on the server side.

Is there any extra jvm tuning I should be doing for http/2 requests?

No, all the more as by default we use BoringSSL and not the JVM’s SSLEngine.

Do you see a difference in CPU usage or allocations on the Gatling side that could help explain this difference?