クラウド時代のパートナー 株式会社 pnop

Azure Marketplace "Load Tester (multiple remote servers) Powered by Apache JMeter™" Users manual

Select a language: [English] [日本語]

Introduction

This is the simplified manual for "Load Tester (multiple remote servers) Powered by Apache JMeter™" from Azure Marketplace.

What's Load Tester (multiple remote servers) Powered by Apache JMeter™

"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™".

Main feature of Load Tester (multiple remote servers) Powered by Apache JMeter™

  • Apache JMeter 5.3
  • Can connect from Microsoft Remote Desktop client. (xrdp installed)
  • Can replicate a test across many low-end computers and thus simulate a larger load on the server.
  • Can distribute CSV Data files to all JMeter servers.
  • Added Japanese, Korean, Chinese fonts.
  • Ubuntu 20.04 LTS
  • Generally provided as a virtual machine, and several other PaaS are used.

System requirements

  • JMeter client(front end) virtual machine can connect through TCP/3389. (If you want to operate with GUI in Windows Remote Desktop)
  • JMeter client(front end) Virtual machine can connect through TCP/22. (If you want to operate with CLI in SSH)

How to build

Access to "Create Load Tester (multiple remote servers) Powered by Apache JMeter™" and Create.

The description of deployment parameters is as follows:

  • "Basic" tab

    • Subscription, Resoruce group, Region
      Enter or select the subscription, resource group and region
    • Username
      Specify the Username.
    • Authentication type
      • If you selected "Password"
        • Password, Confirm password
          Specify the password the SSH and Remote Desktop connection (same as JMeter client and servers).
      • If you selected "SSH Public Key"
        • SSH public key
          Specify the SSH public key you created (same as JMeter client and servers).
        • Password for Remote Desktop connection, Confirm password
          Specify the password used to authenticate the Remote Desktop connection.
  • "Networking" tab

    • Virtual network
      Specify the name and CIDR of the newly created or existing virtual network.
    • JMeter client Subnet
      Specify the subnet name and CIDR where the virtual machine of JMeter client is deploy.
    • JMeter servers Subnet
      Specify the subnet name and CIDR where the virtual machines of JMeter servers is deploy.

    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

    • JMeter client virtual machine name
      Specify the host name of JMeter client.
    • Size
      Select the instance size of JMeter client.
    • OS disk type
      Choose Azure managed disks types.
    • Public IP
      Specify the Public IP address for the JMeter client.
    • DNS name label(option)
      Specify the DNS Prefix for the JMeter client.
  • "JMeter servers" tab

    • Virtual machine scale set name
      Specify the virtual machine scale set name of JMeter servers.
    • Size
      Select instances size of JMeter servers.
    • OS disk type
      Choose Azure managed disks types.
    • Instance count
      Specify the number of JMeter servers.
    • Public IP address per instance
      If the servers to be tested by JMeter is on the Internet side, enable this option to give each JMeter servers a dedicated public IP address.

    Be aware of Azure subscription limits. (Number of vCPUs, number of instances, number of public IP addresses, etc.)

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:

  • Allow RDP(TCP/3389) from any connection source
  • Allow SSH(TCP/22) from any connection source

You should change this NSG settings to only allow connections from where you need it.

How to use

* "How to use Apache JMeter" is not included in this document.

Connect to JMeter client

Select your preferred type of operation, GUI with Remote Desktop or CLI with SSH.

Use for GUI

  1. Remote Desktop Connection

    1. Connect with Remote Desktop (RDP) from the client PC.

      • Computer : Input the Public IP Address found from the previous How to build Section. It can also be found on the Summary Blade.
    2. The Remote Desktop screen appears and a dialog box of "Login to (virtual machine name)" is displayed. Set the following information and click [OK]

      • Session : Xorg
      • username : The user name you specified when you deployed from Marketplace
      • password : The password you specified when you deployed from Marketplace
  2. Start JMeter application

    1. Double-click [JMeter] on the remote desktop screen.

    2. You can change the display language from [Choose Language] on the [Options] menu.

Use for CLI

Please connect to JMeter client virtual machine and operate with SSH.

JMeter Path: /usr/local/jmeter

Distribute CSV Data files

Make CSV files in /mnt/jmuserdata on JMeter client.
All JMeter servers can read these because /mnt/jmuserdata is shared area and mounted from all JMeter servers.

Change instance size of JMeter client and JMeter servers

You can change the instance size of JMeter client and servers using Azure portal and Azure CLI etc.

Change number of JMeter servers

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

Adjust JAVA arguments

If you want to adjast JAVA arguments (for example, -Xmx, -Xms), refer to the following.

JMeter client

Update "JVM_ARGS" environment variable in ~/.loadtester

After that, logout from the JMeter client and then login again.

JMeter servers

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.

Adjust "jmeter.properties" for JMeter servers

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.

Change JAVA version

By default JMeter works on JRE 8.

The following JRE has been installed on the virtual machine and can be changed to any version.

  • JRE 8 (default)
  • JRE 11
  • JRE 14

Add the JAVA_HOME setting to the end of "~/.loadtester" and "/mnt/systmp/jmeter-server-option.sh" on the JMeter client.

  • Using JRE 11: export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
  • Using JRE 14: export JAVA_HOME="/usr/lib/jvm/java-14-openjdk-amd64"

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.

Updates for softwares

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.

FAQ

  • Can't connect to virtual machine with Remote Desktop

    • You need to be able to connect to Virtual Machine via TCP/3389 port.
      Please check the following.
      • Is it set to allow TCP/3389 inbound rule with Azure NSG assigned to subnet or NIC?
      • In the case of via Azure LoadBalancer, is the LoadBalancer properly forwarding to TCP / 3389 of the virtual machine?
  • OS does not start normally / Can't login to Remote Desktop

    • 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.

  • Apache JMeter™ does not start due to lack of memory

    • 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.

  • Can't deploy Virtual machine or Virtual machine scale set

    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.

Supports

Support is available at a charge.

  • Supported inquiries example
    • The target solution can not be deployed.
    • Virtual machines does not work properly after deployment
  • The following are not supported

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.