# Maximum number of concurrent users per 1 Gatling client

**URL:** <https://community.gatling.io/t/maximum-number-of-concurrent-users-per-1-gatling-client/3109>\
**Category:** Gatling (Open-Source)\
**Created:** [June 28, 2016, 9:33am UTC](https://community.gatling.io/t/maximum-number-of-concurrent-users-per-1-gatling-client/3109 "2016-06-28T09:33:57Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Liran\_Cohen](https://avatars.discourse-cdn.com/v4/letter/l/d9b06d/32.png) [@Liran\_Cohen](https://community.gatling.io/u/Liran_Cohen)\
**Post date:** [June 28, 2016, 9:33am UTC](https://community.gatling.io/t/maximum-number-of-concurrent-users-per-1-gatling-client/3109/1 "2016-06-28T09:33:57Z")

</div>

Hi,  
I want to run a load/stress test via Gatling. What is the maximum number of concurrent users/requests that I can send via 1 Gatling client?

Thanks,

Liran Cohen

QA Platform Engineer, TMS

Thomson Reuters

---

<div class="post-metadata">

**Author:** ![aidylewis](https://avatars.discourse-cdn.com/v4/letter/a/e9a140/32.png) [@aidylewis](https://community.gatling.io/u/aidylewis)\
**Post date:** [June 28, 2016, 11:11am UTC](https://community.gatling.io/t/maximum-number-of-concurrent-users-per-1-gatling-client/3109/2 "2016-06-28T11:11:13Z")

</div>

Gatling version: 2.2.2  
Instance type: c3.2xlarge  
Server: [https://github.com/aidylewis/go-test-server/blob/master/server.go](https://github.com/aidylewis/go-test-server/blob/master/server.go)  
Sim: [https://gist.github.com/aidylewis/5aabb46e5bdecb1d2a6f9bcd9397ab25](https://gist.github.com/aidylewis/5aabb46e5bdecb1d2a6f9bcd9397ab25)  
Rate:  
...  
2016/06/28 11:10:03 Rate: 37296  
2016/06/28 11:10:04 Rate: 38069  
2016/06/28 11:10:05 Rate: 38640  
2016/06/28 11:10:06 Rate: 38249  
2016/06/28 11:10:07 Rate: 39355  
2016/06/28 11:10:08 Rate: 39355  
2016/06/28 11:10:09 Rate: 39641

Aidy

---

<div class="post-metadata">

**Author:** ![aidylewis](https://avatars.discourse-cdn.com/v4/letter/a/e9a140/32.png) [@aidylewis](https://community.gatling.io/u/aidylewis)\
**Post date:** [June 28, 2016, 2:35pm UTC](https://community.gatling.io/t/maximum-number-of-concurrent-users-per-1-gatling-client/3109/3 "2016-06-28T14:35:34Z")

</div>

Stephane suggested I “loop 1.000 users”. I ran this simulation ( [https://gist.github.com/aidylewis/24f96381ebf9ced0c3ecd6314e210d53](https://gist.github.com/aidylewis/24f96381ebf9ced0c3ecd6314e210d53) ) from a c3.4xlarge.

I got around **105,000** r/s (max)

2016/06/28 14:34:44 Rate: 105075  
2016/06/28 14:34:45 Rate: 105523

Aidy

---

<div class="post-metadata">

**Author:** ![slandelle](https://dub1.discourse-cdn.com/flex013/user_avatar/community.gatling.io/slandelle/32/4_2.png) [@slandelle](https://community.gatling.io/u/slandelle)\
**Post date:** [June 28, 2016, 2:37pm UTC](https://community.gatling.io/t/maximum-number-of-concurrent-users-per-1-gatling-client/3109/4 "2016-06-28T14:37:29Z")

</div>

c3.4x is 16 cores with Ivy Bridge. c4.4x should be better.

---

<div class="post-metadata">

**Author:** ![aidylewis](https://avatars.discourse-cdn.com/v4/letter/a/e9a140/32.png) [@aidylewis](https://community.gatling.io/u/aidylewis)\
**Post date:** [June 28, 2016, 2:58pm UTC](https://community.gatling.io/t/maximum-number-of-concurrent-users-per-1-gatling-client/3109/5 "2016-06-28T14:58:53Z")

</div>

The max I got from a c4.4xlarge was ~ 140,000 r/s

2016/06/28 14:55:00 Rate: 102922  
2016/06/28 14:55:01 Rate: 119307  
2016/06/28 14:55:02 Rate: 109420  
2016/06/28 14:55:03 Rate: 137811  
2016/06/28 14:55:04 Rate: 143170

---

<div class="post-metadata">

**Author:** ![Liran\_Cohen](https://avatars.discourse-cdn.com/v4/letter/l/d9b06d/32.png) [@Liran\_Cohen](https://community.gatling.io/u/Liran_Cohen)\
**Post date:** [June 28, 2016, 3:17pm UTC](https://community.gatling.io/t/maximum-number-of-concurrent-users-per-1-gatling-client/3109/6 "2016-06-28T15:17:47Z")

</div>

Thanks guys!

---

<div class="post-metadata">

**Author:** ![Liran\_Cohen](https://avatars.discourse-cdn.com/v4/letter/l/d9b06d/32.png) [@Liran\_Cohen](https://community.gatling.io/u/Liran_Cohen)\
**Post date:** [June 29, 2016, 8:58am UTC](https://community.gatling.io/t/maximum-number-of-concurrent-users-per-1-gatling-client/3109/7 "2016-06-29T08:58:41Z")

</div>

Now that’s impressive!  
Do you know if there is an OS limitation for the rate limit?  
I’m currently using OL-7.1.1 on a large VM server (16GB RAM, 4 VCPU). Thought of adding more VM’s with an haproxy but with the numbers that you got maybe it will be better for me to work on a single stronger physical server. Does it meter if i’m using a Win OS or should I stay with Linux?

---

<div class="post-metadata">

**Author:** ![slandelle](https://dub1.discourse-cdn.com/flex013/user_avatar/community.gatling.io/slandelle/32/4_2.png) [@slandelle](https://community.gatling.io/u/slandelle)\
**Post date:** [June 29, 2016, 9:32am UTC](https://community.gatling.io/t/maximum-number-of-concurrent-users-per-1-gatling-client/3109/8 "2016-06-29T09:32:51Z")

</div>

Don’t use Windows if you want to achieve very high throughput. Netty uses Java’s NIO1, which is broken on Windows.

---

<div class="post-metadata">

**Author:** ![aidylewis](https://avatars.discourse-cdn.com/v4/letter/a/e9a140/32.png) [@aidylewis](https://community.gatling.io/u/aidylewis)\
**Post date:** [June 29, 2016, 9:49am UTC](https://community.gatling.io/t/maximum-number-of-concurrent-users-per-1-gatling-client/3109/9 "2016-06-29T09:49:08Z")

</div>

> > Now that's impressive!

These figures are based on the Go server and Gatling running on the same machine. I've seen evidence of 260K requests per second when they are separated.

If you are not limiting TCP connections, you'll need to increase the max open file limit.  
[https://github.com/bbc/notes-on-perf-testing/blob/master/ch/tuning/open\_file\_limit.md](https://github.com/bbc/notes-on-perf-testing/blob/master/ch/tuning/open_file_limit.md)

There is some Gatling documentation here:  
[http://gatling.io/docs/2.2.2/general/operations.html](http://gatling.io/docs/2.2.2/general/operations.html)

You'll need to increase your ephemeral ports (max 64K). Unix will open a file descriptor and an ephemeral port before making a TCP connection.

Enter the tuning at the bottom of the Gatling operations page in sysctl.conf and reboot.

I'd like to update the Gatling page with explanations of tuning (but I currently have a PR open (not sure if I can make \> 1 PRs off the same fork).

Aidy
