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.
Related
Im running Jmeter test with one master machine and slave system. The issue is Im not getting the results from the slave system, even though I could see the test has started and finished in slave system.
I tried running another Jmeter test with a different script & same configuration and fortunately Im able to get the results from the slave system.
Im not able to understand why the first scenario is not working and where exactly is the issue. Kindly help me out.
From your screenshots I can only state that the test didn't produce a single SampleResult because it didn't execute any Sampler, the most common reasons are:
Your test is using CSV Data Set Config and you forgot to copy the CSV file on slave machines. JMeter master only transfers the .jmx test plan to slaves, everything else needs to be copied manually
Basically a subset of point 1: your test plan relies on a JMeter Plugin which is not present on the slaves. If this is the case - install the missing plugin(s) using the JMeter Plugins Manager
The exact failure reason can be found in jmeter.log file on master machine and jmeter-server.log files on slave machines.
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
I am performing distributed testing using JMeter and getting collective result of all slaves on Master JMeter GUI.
Please let me know if it is possible to capture separate reports for each slave?
For example, I have configured 2 Slaves + 1 Master JMeter. On executing the test, I would like capture separate report of each slave.
Thanks!!
You can get per-slave results as follows:
Add a Listener or your choice to Test Plan
Specify Filename in "Write results to file" section and choose what you need to store via "Configure" button
Once test finishes you'll have to collect result files from slave machines
Be aware that:
By default not everything can be stored, i.e. response data is being removed form successful samples
Listeners have their cost. See Greedy Listeners - Memory Leeches of Performance Testing to get an idea regarding impact and why it is better to have them off during load test.
For your case, don't use distributed testing, just launch 1 separate JMeter per slave machine.
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.
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.