How to make more than 1000 requests per second through Gatling? - scala

I am using the following setup which generates more than 3000 rps. Requirement is to test with up to 4k rps.
The setup that I am using is:
setUp(scn.inject(constantUsersPerSec(8) during(10 minutes)).protocols(httpConf)).throttle(
reachRps(1000) in (20 seconds),
holdFor(5 minute),
jumpToRps(2000),
holdFor(5 minute)
)
The error that I am getting is the following:
17:18:15.603 [gatling-http-thread-1-1] WARN i.gatling.http.ahc.ResponseProcessor - Request 'Home' failed: j.n.ConnectException: handshake timed out
But Gatling seems to fail, above 1000 rps. Is there a way we can do that?

Related

K8s inter service communication timeout

We have a K8s Cluster (3 Master - 2 Worker) - v1.17
There are 2 Microservice in this cluster, a Microservices A call to Common.
Sometimes, I face the problem is: A call to Common has timeout after 60s - Although this request is processed very quickly in the Common and success ( < 10ms).
getErrorInfoFallback : feign.RetryableException: Read timed out executing GET http://common-service.dev.svc.cluster.local:8002/errormapping/v1.0?errorCode=abcxyz
I use FeignClient to call other Microservice with url like http://common-service.dev.svc.cluster.local:8002
Here is timeline:
- 16:37:42.362 A send request
- 16:37:42.368 Common logging the request
- 16:37:42.378 Common logging respone return
- 16:38:42.424 A: timeout exeption
Could anyone help me?

How can one configure retry for IOExceptions in Spring Cloud Gateway?

I see that Retry Filter supports retries based on http status codes. I would like to configure retries in case of io exceptions such as connection resets. Is that possible with Spring Cloud Gateway 2?
I was using 2.0.0.RC1. Looks like latest build snapshot has support for retry based on exceptions. Fingers crossed for the next release.
Here is an example that retries twice for 500 series errors or IOExceptions:
filters:
- name: Retry
args:
retries: 2
series:
- SERVER_ERROR
exceptions:
- java.io.IOException

Increase the wildfly server concurrent thread processing

I am using wildfly server. I have passed 14 requests to the server. The server processes my request 6 at a time. once the top 6 gets completed the next 6 request is processing. is there any other way to increase the count(6) of processing the request in wildfly so that all my request have to process at the same time.Processing 1st 6 requests 1
Once the 1st set of request got completed. next 6 requests started to process2

Request timeout in Gatling

I am using maven to run my Gatling (Scala) performance test.
It gives me request timeout issue when I increase user from 100 to 150.
If I set the number of user to 300, then I get following error in simulation log.
// Gatling scenario injection
val scn = scenario("UATEnvironmentTest")
.exec(http("AdminLoginRequest")
.post("/authorization_microservice/oauth/token")
.headers(headers_1).body(RawFileBody("Login.txt"))
.check(jsonPath("$.access_token")
.saveAs("auth_token")))
.pause(2)
setUp(scn.inject(nothingFor(5 seconds),atOnceUsers(50),rampUsers(250) over(10 seconds))).protocols(httpProtocol)
Error :- j.u.c.TimeoutException: Read timeout to /IP:80 after 120000
ms GROUP Failed to build request Request_1: No attribute named
'auth_token' is defined
Following is the configuration:
//Maven configuration-pom.xml
java.version 1.8
gatling.version 2.2.3
gatling-plugin.version 2.2.1
scala-maven-plugin.version 3.2.2
// Gatling.conf file
connectTimeout 120000
handshakeTimeout 120000
pooledConnectionIdleTimeout 120000
readTimeout 120000
requestTimeout 120000
For your particular case, the error is what already mentioned by #user666 in the comment section, but if you wanted to increase the request time out of Gatling Scripts, so that the connection stays:
Edit the Gatling.conf file
Uncomment the requestTimeout line
Provide the time in milliseconds you wanted your connection to be kept alive

SQL timeout on Azure website suddenly started when return large number (1500) rows

Azure Website with EF6 just started to get timeout on pages where I retrieve more than about 1000 rows. (unsure about the limit, works on 400 or less, fails on 1500 or more)
[Win32Exception (0x80004005): The wait operation timed out]
[SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. This failure occurred while attempting to connect to the routing destination. The duration spent while attempting to connect to the original server was - [Pre-Login] initialization=1; handshake=21; [Login] initialization=0; authentication=0; [Post-Login] complete=1; ]
The app has been running smoothly for several month I just noticed today. Any ideas?
(In case the error is still present: Page with err: http://fartslek.no/fartslek/15 Page without err: http://fartslek.no/fartslek/3 )