More than 60k simultaneous connection

Hi!

I would like to run tests with 100k users connected at the same time, but I can’t find a way…
I already changed all the configuration concerning file descriptor limit, ephemeral port range (about 60k ports), etc.

I still have the “Cannot assign requested address” exception when I try to run more than 60k users at the same time, which is normal since I don’t have more ports available. Yet, I would like to increase this number to 100k users (or more), Is there a way to do so with gatling?

I’ve thought about using several IPs on the client side to be able to have more than 60k ports available (like suggested here), but I don’t how to do that with Gatling…

Anyway, thanks for your work, this is a great tool ! By far easier to use than JMeter :slight_smile:

L-M

This is a common issue when using a small set of machines for performance testing. In fact port reuse limitations is something that affects live system applications as well.

I would have expected something along the lines of an interface() definition under the setUP construct but it only allows protocols() and assertions(). If fact this does surprise me as you cannot define an IP address full stop, therefore have no control over which NIC Gatling uses on a multi addressed machine.

You may be able to pass the IP address as a Java opt binding that JVM to a specific interface and running multiple instances of gatling with different bound addresses. jBoss allows a similar principal using Djboss.bind.address, not sur eif one exists for JRE.

Failing that, use multiple machines, or run on multiple VMs, if available.

Thanks for your quick response Stuart ! :slight_smile:

I will try what you suggested but I guess you’re right, I should use multiple machines, and then regroup the results as explained here!

Cheers,

L-M

try also http://gatling.io/docs/2.1.7/http/http_protocol.html?highlight=localaddress#local-address

Play with localAdress if your limit is the connections on the server side.
Play with the baseUrls and virtualHost if the limit is the connections on the client side.
All can be configured in the protocol.

But then, except if your connections just sit idle, you’ll probably hit a limit for how fast Gatling can read and write on the sockets. It depends on your CPU, NIC and payload size. Then, you’ll have no choice but to scale out.

@Alex: Actually, I’m not sure playing with the localAddress would have any effect on the number of available connections. WDYT?

Hi everybody!

Thanks for your answers, I played with baseURLs (as my limit was on the client side) and it worked perfectly! :slight_smile:

Cheers,

L-M