Jmeter slave nodes - jmeter

In a load test, does using Jmeter slave nodes increases the maximum number or virtual users than can be set, or it just distribute them among the virtual slave servers?
Suppose that for a given load test and computer the maximun number of virtual users that can be set for one instance of Jmeter is 450. If I configure three virtual slave nodes by using Vagrant and Oracle´s Virtual Box shall I be able to set 1350 virtual users (450 X 3) or the maximun number of VU will still be 450 but distributed in three virtual slave machines?
Thanks

By default it will be 1350 virtual users (450 X 3) as JMeter remote (slave) engines are independently executing the same Test Plan
There is a trick you can play to have different remote engines to have different virtual users numbers by setting them using __P() function like:
Given above setup by default each remote engine will have 450 virtual users, but you can manipulate the value via user.properties file like:
users=100
or passing the property value via -J command-line argument like:
jmeter -Jusers=100 -s ....
References:
Remote Testing
JMeter Distributed Testing Step-by-step
JMeter Functions and Variables
JMeter Properties

Related

Jmeter remote testing heap size issue

How can I change the heap size of all slave machines while using NON-GUI mode in JMeter distributed test?
Eg: I want to trigger this from the master machine.
C:\jmeter\bin\jmeter.bat -n -t C:\test.jmx -Jusers=10000 -R192.168.0.19,192.168.0.29......
Is there some parameter that I can pass here so that the heap size of all the slave machines will be changed from the master machine?
Heap size is something you set on JVM startup, once it's defined it cannot be controlled
JMeter is being launched inside the JVM so first JVM is initialized then it loads JMeter classes
So if you need to control JMeter startup arguments dynamically depending on how you prepare the slaves and your technologies stack you might want to go for something like Chef, Puppet, Ansible, K8S, Docker Swarm, Terraform, etc.

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

Can I create Hadoop cluster with single VM?

I am an experienced person in Java and wanted to get my hands dirty with Hadoop. I have gone through the basics and now preparing for the practical things.
I have started with the tutorials given at https://developer.yahoo.com/hadoop/tutorial/ to setup and running hadoop on virtual machine.
So, to create a cluster I need multiple virtual machine running in parallel. right? And needs to add ip address of all in hadoop-site.xml. Or can I do it with single virtual machine?
No you cannot create a cluster with single VM. Cluster meaning is group of machines.
If you have a good configuration of Host machine, on top of that you can run 'n' number of guest OS. By doing like this only you can create Hadoop cluster (1 NN, 1 SNN, 1 DN)
If you want, you can install Pseudo mode (all services run in one machine) Hadoop, which runs like a testing machine
You can setup a multinode cluster using any virtual box like Oracle VM. Create 5 nodes(1-NN,1-SNN,3-DN). Assign each node its IP address and set up all the configuration files on all the nodes. There are 2 files - (Masters and slave). In the NN node give the IP address of SNN in Master file and all the 3 DN's IP address in the slave files. Also set up the ssh connectivity between all the nodes using the public keys.

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.

Resources