1
votes

I have been facing some issue and not sure whether I am missing something or issue is from developers side.

My Jmeter Plan is [I am using Ultimate thread group]:

Start Threads Count: 2000
Initial Delay : 0
Startup Time : 400 Seconds
Hold for Load : 600 Seconds
Shutdown Time : 60 Seconds

Based on above plan, There should be concurrent 2000 users on server for at least 600 seconds. I can see in jmeter that all users are active for 600 seconds and sending requests to server.

Problem :

Server Team says : They can see only 10 - 15 concurrent users at server side. Load Balance and Database team says same.

I have asked them about setting about concurrent users at their site and they have already allowed 10k.

Now that could be issue? Why Jmeter shows 2000 active users but at server they can see only 10-15?

Should I use any other plugin or control with my test plan for concurrent load?

3
how do you differentiate different users then? By username?Hoàng Long
@HoàngLong - It is just GET request for one page so I don't need username or something. I am assuming that thread count = 2000 means 2000 users.Helping Hands
oh, that's unfortunate. I was thinking you're using some kind of test plan with user log on.Hoàng Long
Can Synchronizing Timer help me here? I am not sure yet.Helping Hands
Along with other answers & comments, 2000 users from a single machine seems to be too much. If you are doing distributed testing, it is ok. If not, check the CPU %.vins

3 Answers

2
votes

I can see in jmeter that all users are active

where you can see it? Using green square in top right corner of JMeter GUI? Using a Listener? Using HTML Reporting Dashboard?


JMeter default configuration is suitable for tests development and debugging only, when it comes to running the load test you need to tweak some parameters in order to get the optimal performance. The main things you need to do are:

  1. Increase JVM Heap size in JMeter startup scripts
  2. Run your test in command-line non-GUI mode
  3. Disable all the listeners
1
votes

Concurrent users are NOT the same number of users that you are defined in your Ultimate Thread Group, but It is the outcome of the entire test and how you configured your Test Plan.

Following are some of the critical factors which decide concurrency:

  1. Total number of users: the more the number, the more the concurrent users. directly proportional
  2. Loop Count: It is the major factor to keep the threads active throughout the test. check the value that you specified. normally it will be set to Forever so that threads will be active throughout the test.
  3. User Think Times (Timer in the Test Plan): The more the time you specify as think time, the less the concurrency. Indirectly Proportional.
  4. Server Response Times: The more the server takes to respond a request, the less the concurrency. Indirectly Proportional.
  5. System Resources (both Client machines (JMeter) and Server machines): The more the resource utilization, the more the server response times which eventually results in less concurrency.
  6. Server Configuration: Server configuration definitely effects the system. Keeping lower number threads in high configured machine can result in low concurrency and vice versa. Focus on following properties of a server, maxThreads (can run on a server to support multiple clients), maxConnections, acceptCount etc. (the names I provided are as per tomcat server and naming can vary from server to server)

So, Please check how these factors are deciding concurrency of the test.

Use Listener jp@gc Active Threads Over Time to know the active threads.

0
votes

Not all the vuser keep connection established. I think you may check If real 2000 connections established. When you are running your test, just use "netstat" command in Linux to show the tcp connection number of the Jmeter process. The connection in "ESTABLISHED" state should be the same as the server.