How to configure different loads on slave machines in Jmeter? - jmeter

Can someone please tell me the process to configure different load on slaves machines?
I would like to set different number of threads for different slaves.
Slave 1 - 60 threads
Slave 2- 100 threads
Slave 3- 200 threads
Also how does jmeter master manage load on slaves. If i have 1000 threads and 4 slave machines, would Jmeter run 250 threads on each slave machine?
Thanks

JMeter do not share its load between slaves.
The slaves will also get copy of your plan and execute them individually from respective slaves.
If you use 1 thread and 100 loops with 3 slaves, total number of hits would become 300 (100 from each slave).

Execute JMeter from command line, non-gui mode. Provide the slave, thread count etc..from command line. This way you can have control on the thread count per slave.

Related

jmeter distributed testing slave finishes before schedule

i have a jmeter distributed system with 1 master and 4 slaves.
the test is configured to run for 60 minutes.
somehow suddenly a random slave finish the test and the load is distributed between the other 3.
all the slaves configured the same way.
the instances are aws ec2 instances on the same subnet
is there any explanation for this behaviour?
It might be the case you configured JMeter to stop thread when the error occurs yourself:
if you have marked settings under Thread Group it might be the case the Threads (virtual users) are being stopped or the whole test gets stopped on error
If unexpected error occurs there should be a corresponding entry in jmeter.log file, make sure to execute JMeter slave process providing log file location via -j command-line argument like:
./jmeter -s -j jmeter-slave.log .....
It might be the case your JMeter instance runs out of memory and the whole JVM gets terminated so make sure to properly tune it for high loads
Check operating system log of your Amazon instance
There could be multiple reason for it:
Possibly load balancing was not happening properly, more sets of request are getting drived toward one instance. That can cause the VM to crash
OR It could be the crashed AWS instance. The disk space got full.
I suggest you check the disk usage of crashed vm.

Jmeter remote testing hangs and throughput drops significantly

I have set up Jmeter 4.0 in Google cloud where a master talks to 12 slaves for load generation. For really low number of threads, the test works like a charm with the report being generated at the end.
However, when I increase the # threads per slave host to over 200, the test seems to hang and I do not see many requests on the server side. After the ramp up period, I do not see the activity being sustained for over 5 min and it trickles there after. I can verify with the DB counts - the rate drops a lot after the ramp up ends. At the end of the 30 min test, only some hosts seem to shut down and end the test gracefully while there is no info about the others. The java proc on the master keeps running even after 2 hours but not doing anything, i.e. 0 activity.
Has anyone seen an issue with remote testing and report generation?
Jai,
I would suggest to troubleshoot this issue with below steps:
Check the CPU/Memory utilization in Master and Slave nodes when you run the test
Increase the heap size in JMeter.bat file in Master and Slave nodes
Run your test in non-gui mode using below command:
jmeter -n -t script.jmx -R server1,server2,... -l Path\To\scriptresults.jtl
n to start Jmeter in a non-gui mode
t to define the jmeter file
r to start the remote server as defined in the JMeter properties file
R to define the list of servers and start them

Need clarification on the Users execution for the Distributed Testing

It might be a silly question, but I need clarification before requesting for JMeter Infrastructure.
Here is what I understood for the below example scenario.
Master Machine --1; 2 Slave Machines; Total No.Of users 10;Test Duration :5 Mins
So what I have understood and noticed is, If I have executed the test with ONE slave Machine generates 30 Samples. If i have executed the test with 2 Slave machines it generates 60 Samples which i understand as per JMeter Distributed test design.But my only question is test executed for 20 Users?
Please clarify!
Thanks,
Rajani
Yes. If the test plan is configured to run with 10 users & if you run that in 2 slave machines, then it runs for 20 users in total (10 users / slave)
Note: The same test plan is run by all the servers. JMeter does not distribute the load between servers, each runs the full test plan. So if you set 1000 Threads and have 6 JMeter server, you end up injecting 6000 Threads.
[ http://jmeter.apache.org/usermanual/remote-test.html ]
You do NOT have to move the testplan (.jmx) to the slaves explicitly and It is done automatically which is good. But if the test is referring to any file for test data (say .csv for CSV dataset config) - you need to move those files to all the slaves yourself. JMeter will not do that and the test might fail in the slaves when the file is not present.

How to get the combined result summary in master slave architecture using Jmeter

I have configured two slaves and one master machine.
After executing the performance test in Jmeter using the master slave architecture on master machine, I am getting the result log in slaves machines but I need a consolidated log summary. Please suggest me how can I get it?
Also, I need to know that how the load is distributed over the slave machines.
First question:
If you are talking about the logs (as in jmeter-server.log) there's no automatic way to collect them all. You could write a bash script or something similar to collect them from the servers.
Second question:
Every slave machine executes the full test plan completely on their own. That means that if you configure your test plan to include 10 threads, every slave will run with 10 threads giving you a total of 20.

JMeter Summary report in distributed mode

I am running Jmeter performance test in distributed mode (2 slaves + master). In my test script I have configured Summary
Report which should save some data to csv file.
This file location is configured with fixed name "reports/summary.csv" value.
When I connect successfully from master to both slaves, tests finish on slaves, but no data is returned to master directory "reports/summary.csv". When I was running setup with one slave and master, master was collecting this data. What could be the problem when I have 2 slaves? Name conflict maybe?
Actually this problem was related to "jmeter-server" process not being able to connect to master using RMI. This network issue caused my jmeter-server to hang for decade on second node, and this stopped master node jmeter process from finnishing and finalizing results in mentioned summary file.
After I got it working, important thing to know is if you use SummaryReport or AggregateReport jMeter component in your testplan in distributed env., master will take care of collecting data from each slave.

Resources