Last updated:
Select a language: [English] [日本語]
This is the simplified manual for “Load Tester (multiple remote servers) Powered by Apache JMeter™” from Azure Marketplace.
“Load Tester (multiple remote servers) Powered by Apache JMeter™” performs stress tests from multiple JMeter servers.
* If single server are required for stress tests, please use “Load Tester (standalone) Powered by Apache JMeter™”.
Access to “Create Load Tester (multiple remote servers) Powered by Apache JMeter™” and Create.
The description of deployment parameters is as follows:
“Basic” tab
“Networking” tab
If you selected an existing virtual network and that subnets have an NSG assigned, you need to apply the following rules to those NSGs:
- JMeter client subnet
- Allow inbound TCP/1099,30000-65535 from JMeter servers subnet
- Allow inbound TCP/3389,22 from terminal connecting to JMeter client
- JMeter servers subnet
- Allow inbound TCP/1099,3000-65535 from JMeter client subnet
“Storage” tab
File shareing storage account
Specify the Azure storage account to share CSV Data files and various settings to JMeter servers.
You can change the storage account name etc. by clicking “Create New”, but “StorageV2” will be set no matter which Account kind is selected.
“JMeter client” tab
If you are deploying JMeter client on an existing virtual network with a NAT Gateway, the Public IP SKU must be “Standard”.
“JMeter servers” tab
If you are deploying the JMeter server on an existing virtual network with a NAT Gateway, this value must be disabled.
It is recommended to enable this value if the virtual network does not have a NAT Gateway and the target to be tested by JMeter is the Internet side.
Be aware of Azure subscription limits. (Number of vCPUs, number of instances, number of public IP addresses, etc.)
“Tags” tab
Tag the created resources.
Network Security Group (NSG) is applied to the virtual machine NIC.
The following rules have been added to the NSG inbound security rules for JMeter client NIC:
You should change this NSG settings to only allow connections from where you need it.
* “How to use Apache JMeter” is not included in this document.
Select your preferred type of operation, GUI with Remote Desktop or CLI with SSH.
Remote Desktop Connection
Connect with Remote Desktop (RDP) from the client PC.
The Remote Desktop screen appears and a dialog box of “Login to (virtual machine name)” is displayed. Set the following information and click [OK]
Start JMeter application
Double-click [JMeter] on the remote desktop screen.
You can change the display language from [Choose Language] on the [Options] menu.
Please connect to JMeter client virtual machine and operate with SSH.
JMeter Path: /usr/local/jmeter
JMeter client and all JMeter servers mounting shared storage on the /mnt/jmuserdata directory.
Therefore, store the file in the /mnt/jmuserdata directory in the JMeter client, the file will be available to the JMeter servers.
Also, by specifying the destination directory in the /mnt/jmuserdata/sync.to file from the JMeter client as follows, the files in the /mnt/jmuserdata directory will be synchronized to that directory on each JMeter servers.
[/mnt/jmuserdata/sync.to]
# Load Tester user files copy setting file
#
# The files in this directory will be synced to the directory listed in this file when the JMeter servers are started.
# If there are files in the destination directory that are not in this directory, they will be deleted.
#
/mnt/resources/jmuserdata
You can change the instance size of JMeter client and servers using Azure portal and Azure CLI etc.
You can change the number of JMeter servers using Azure portal and Azure CLI etc.
After changing the number of JMeter servers, execute the following command to update the servers list referenced from JMeter client.
It update /usr/local/jmeter/bin/jmeter.properties file.
$ ~/refresh-jmeter-servers.sh
If you want to adjast JAVA arguments (for example, -Xmx, -Xms), refer to the following.
Update “JVM_ARGS” environment variable in ~/.loadtester
After that, logout from the JMeter client and then login again.
Modify the following “/mnt/systmp/jmeter-server-option.sh” file on JMeter client and restarting the virtual machine scale set of JMeter servers from the Azure portal, etc.
Modify the following “/mnt/systmp/jmeter.properties” file on JMeter client and restarting the virtual machine scale set of JMeter servers from the Azure portal, etc.
If you change this files with incorrect contents, the JMeter servers may not start, so it is recommended to backup the files before changing.
By default JMeter works on JRE 8.
The following JRE has been installed on the virtual machine and can be changed to any version.
Add the JAVA_HOME setting to the end of “~/.loadtester” and “/mnt/systmp/jmeter-server-option.sh” on the JMeter client.
Example using for JRE 11.
export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
After that, logout from the virtual machine of JMeter client, then login again and restart the virtual machine scale set of JMeter servers on the Azure portal, etc.
For the software version of Ubuntu and JMeter, the latest version at the time of registration in Marketplace has already been applied.
Please update Ubuntu and software as necessary.
You need to be able to connect to Virtual Machine via TCP/3389 port.
Please check the following.
2GB or more of OS memory is required to operate the virtual machine normally.
Change the Azure Virtual machine or Virtual machine scale set to the appropriate size.
Adjust the heap memory size used by JMeter by specifying -Xms and -Xms in the JVM_ARGS environment variable.
See Adjast JAVA arguments in the “How to use” section.
If an error such as “QuotaExceeded” or “PublicIPCountLimitExceededByVMScaleSet” is output during deployment, the number of vCPUs or public IP addresses exceeds your subscription limit.
In that case, contact Azure support to increase the limit value, or reduce the size or number of virtual machines and then redeploy.
Error in rconfigure() method java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.io.InvalidClassException: org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase; local class incompatible: stream classdesc serialVersionUID = {???}, local class serialVersionUID = {???}
The JMeter versions of the client and server may be different.
To make the client and servers JMeter versions the same, specify the JMeter version by the select-jmeter-version.sh script, and then restart the JMeter servers virtual machine scale set from the Azure portal.
e.g.) How to set JMeter version to 5.3
Specify the version to use by the select-jmeter-version.sh script
$ ~/select-jmeter-version.sh 5.3
Success
Please restart JMeter servers virtual machine scale set.
Currently selectable JMeter versions
Restart the virtual machine scale set of JMeter servers by the Azure portal, etc.
If the ~/select-jmeter-version.sh script does not exist, you are using an older release of Load Tester and cannot select a JMeter version.
In this case, the client and servers versions can be aligned by creating a /mnt/systmp/jmeter-version file that describes the JMeter version using the following procedure.
Know the client’s JMeter version
$ /usr/local/jmeter/bin/jmeter.sh -v
If the output is the following, the JMeter version is 5.3.
Write the JMeter version to the /mnt/systmp/jmeter-version file
$ echo 5.3 > /mnt/systmp/jmeter-version
$ cat /mnt/systmp/jmeter-version
5.3
Reimage all instances of the virtual machine scale set of the JMeter servers by the Azure portal, etc.
This occurs when subject to policies such as Azure Policy “Inherit a tag from the subscription if missing”.
When deploying the Load Tester in Azure Portal, you can avoid this problem by setting the same tags in the “Tags” tab as those set in the inherited source.
Support is available at a charge.
If you wish to support, please contact below.
Apache®, Apache JMeter™, JMeter, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries. No endorsement by The Apache Software Foundation is implied by the use of these marks.