Result of changing settings

Hi,

So I am doing a test in which I am increasing the users per second every 30 seconds going from 10 to 6240 users per second. Each user makes just one request. Therefore I am using users to simulate open load generation of requests. I set the following settings

allowPoolingConnections = false
allowPoolingSslConnections = false
connectTimeout = 5000
pooledConnectionIdleTimeout = 10000
readTimeout = 5000
connectionTTL = 10000
requestTimeout = 5000

Now I know that the application is able to handle around 1800-2000 req per second. However, when running the test I get the following result

https://www.dropbox.com/s/tyjv6mzkltfh83i/Result.JPG?dl=0

What is the reason that the number of active users is going up exponentially even though I set the timeouts to be very small? Apart from that, in the start of the test, the activity looks as in the image below, I mean the application can surely handle the load at that point but the requests are still failing.

https://www.dropbox.com/s/vyegotn2k9vma9d/ResultFocused.JPG?dl=0

Please do you have any idea of what can I change to have better results?

I really appreciate the help because I am doing my dissertation and I am really tight on the deadline.

Thank you.

Jamie Tabone

Please let me know if this is a payable service?

At some point, it seems either the application under test has a very hard time, or the OS TCP stack gets saturated.
Either way, users keep on piling up and you reach 200.000 (~30 seconds of injection at 6.000 ups rate).

Do you think that creating a users session for one request and than close it right after is the right way to use Gatling?

I mean I am thinking that making 1000 req/sec with 1000 users/sec is not very feasible right?

Jamie

Do you think that creating a users session for one request and than close
it right after is the right way to use Gatling?

You're supposed to simulate the behavior you expect from your real clients.
Not use a different set up that would maybe give you better numbers.
You're the only one who can tell if you're using a proper load profile.

I mean I am thinking that making 1000 req/sec with 1000 users/sec is not
very feasible right?

It can. It depends on how your target can cope with such load profile, and
how powerful the Gatling host is. If the latter is the blocker, scale out
and use a second host.

My load generator is only 8 cores and 14 GB RAM. Maybe that is the problem I mean especially if we consider a load of 4000 users/sec for 30 sec for example.

We are comparing two technology stacks for there ability to scale with an increasing throughput. However, due to money resources we are only able to use one host machine for load generation. Therefore what I did is that each user is now making 10 requests and compare the stacks based on this load.

However, due to money resources we are only able to use one host machine
for load generation.

Come on, we're in 2015! AWS m3.xlarge and Google Compute Engine
n1-highcpu-8 are less than ~$0.3/hr!!!

I know but I am running on an Azure account with 3 servers one for the app, one for the database and one for the load generator.

I will limit the number of files in the load generator to 10000 and generate the load with 10 req/user instead of 1 req/user. I think that this would still lead to a valid comparison.