0

Can anybody explain about how many concurrent users one Jmeter will handle?

I want to run 2000 concurrent users for my project.

fmw42
  • 46,825
  • 10
  • 62
  • 80
Easwar
  • 33
  • 2
  • 6
  • You can also check these threads: https://stackoverflow.com/questions/765101/what-is-the-highest-number-of-threads-that-is-reasonable-to-simultaneously-run-i, https://serverfault.com/questions/381936/how-to-know-how-many-concurrent-users-jmeter-can-start, https://sqa.stackexchange.com/questions/17732/maximum-number-of-threads-in-jmeter – Masud Jahan Jul 10 '17 at 09:56

2 Answers2

2

No one can "explain" this to you, you can only measure it.

The number of virtual users which can be simulated by JMeter depends on several factors:

  • machine hardware specifications (CPU, RAM, NIC, etc)
  • software specifications and versions (OS, JVM and JMeter version and architecture)
  • the nature of your test (number of requests, size of request/response, number of pre/post processors, assertions, etc)

So your actions should look like:

  1. Make sure you're following JMeter Best Practices
  2. Set up monitoring of baseline OS health metrics (CPU, RAM, disk and network usage). This can be done using i.e. JMeter PerfMon Plugin
  3. Start with 1 virtual user and gradually increase the load until resource consumption won't exceed some reasonable threshold (i.e. 90% of maximum capacity)
  4. Once you start running out of resources - mention the number of virtual users which were active at this moment - this will be the maximum you can simulate on particular this machine for particular this test. This can be done using i.e. Active Threads Over Time listener
  5. If the number is 2000 or more - you're good to go, if it's less - you will have to go for Distributed Testing

See What’s the Max Number of Users You Can Test on JMeter? article for more detailed explanation of the above points and few more hints.

Dmitri T
  • 159,985
  • 5
  • 83
  • 133
  • Limiting will be perhaps scheduler of your OS. You can try to run more than single JMeter instance on single machine and bind cpu sockets to single JMeter for example. Or to use other scheduler (deadline perhaps). To fight against many context switching, you can try https://gatling.io/ which does spawn single "thread" for single step of scenario, no mater how many users you simulate. – Lubo Apr 06 '20 at 06:57
0

Well, it is the same as with any other software: One CPU-Core can handle exactly one operation (-step) at the same time. What JMeter does is ramping up x threads and then starts them. No "magic" there. So in order to give you good coverage in respect to collision you will want to dedicate a machine with a decent number of CPU cores (Server, not your local machine. Your Machine will occasionally be distracted by other tasks) and make sure your processes takes a decent amount of runtime themselves. Additionally, run the same Test several times to fade out warm up times. How many concurrent users you will get (to answer the question) depends on your environment and "it all depends". Basically, it is not limited by JMeter but by the System you execute it on. You will need to "try it out" and "finetune" your test.

Nikolas
  • 2,066
  • 1
  • 19
  • 20