How to avoid Java.net.ConnectException: Handshake did not complete within 10000ms

Hi,

We are trying to hit https application with 50 requests per sec configuration.
and we are seeing more that 40% of the requests are failing with
Java.net.ConnectException: Handshake did not complete within 10000ms

val httpConfiguration = http.baseURL(baseURL).userAgentHeader(supportedUserAgents).shareConnections

setUp(
personCreditReportScenario.inject(rampUsersPerSec(1) to (50) during (1 minutes), constantUsersPerSec(50) during (10 minutes)).protocols(httpConfiguration))
.assertions( global.responseTime.max.lessThan(responseTime))

what configuration needs to be done to avoid this issue.

I tried shareConnections with no luck.

When we ran the same scenario with 30 users I didnt notice the Handshake error.

why is increasing number of requests per sec is causing an issue.

Thanks
Indrani

You’re blaming the messenger.
The issue is not with Gatling but with your application SSL’s layer that can’t handle the load.

But we are able to achieve 50 requests per sec throughput using JMeter.

Also when i ran following configuration using gatling

val scn = scenario(“GET Reports”)
.during(10 minutes) {
feed(feeder)
.exec(session =>
session.set(“traceId”, generateUUID()))
.exec(http(“Report Request”)
.get(“facets/” + “${facetType}” + “/” + “${documentId}”)
.header(“X-TraceId”, “${traceId}”)
.queryParam(“docType”, “${documentType}”)
.check(status.is(200))
.extraInfoExtractor(extraInfo => List(“docId:” + extraInfo.session(“documentId”).as[String] +" docType:"+extraInfo.session(“documentType”).as[String] + " reponseTime:" + extraInfo.response.responseTimeInMillis))

)

}

setUp(
scn.inject(
atOnceUsers(200)
).protocols(httpConfiguration))
.assertions( global.responseTime.max.lessThan(responseTime))

where we saw requests per second is averaging around 50.
We did not see any Handshake exceptions.

Whats the difference in both approaches.

Also using Gatling if we have to achieve certain throughput say 100 reqs per second whats the best way.

Thanks
Indrani

constantUsersPerSec(50) during (10 minutes) = 30000 users in 10 minutes.

To setup throughput you can use reachRps (request per seconds)

setUp(scn.inject( reachRps(100) in (120 seconds),
       holdFor(5 minutes) ....

Did you ever find an answer to this?