Building Apache JMeter - linux-on-ibm-z/docs GitHub Wiki

Building Apache JMeter

Below versions of Apache JMeter are available in respective distributions at the time of creation of these instructions:

  • Ubuntu 20.04 has 2.13-4
  • Ubuntu (22.04, 23.10) has 2.13-5

General Notes:

  • When following the steps below please use a standard permission user unless otherwise specified.
  • A directory /<source_root>/ will be referred to in these instructions, this is a temporary writable directory anywhere you'd like to place it.

Apache Jmeter binaries are available and can be downloaded from here. To use these binaries, Java needs to be installed on mentioned distributions.

Note: Apache JMeter(v5.6.3) was verified at the time of creation of these instructions

1. Build libffi library (only needed for AdoptOpenJDK8 on Ubuntu, SLES and RHEL 9.x)

cd $SOURCE_ROOT/
wget ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz
tar xvfz libffi-3.2.1.tar.gz
cd libffi-3.2.1
./configure --prefix=/usr/local
make
sudo make install
sudo ldconfig
sudo ldconfig /usr/local/lib64

2. Install Java

  • RHEL (7.8, 7.9, 8.6, 8.8, 8.9, 9.0, 9.2, 9.3)

    • With IBM Semeru Runtime (previously known as AdoptOpenJDK openj9)

       sudo yum install -y tar wget curl fontconfig
      
      • Download and install IBM Semeru Runtime (Java 8, 11 or 17) from here.
    • With Eclipse Adoptium Temurin Runtime (previously known as AdoptOpenJDK hotspot)

       sudo yum install -y tar wget curl fontconfig
      
      • Download and install Eclipse Adoptium Temurin Runtime (Java 11 or 17) from here.

      • Download and install Eclipse Adoptium Temurin Runtime (Java 8) from here.

    • With OpenJDK8

       sudo yum install -y java-1.8.0-openjdk-devel tar wget curl
      
    • With OpenJDK11

       sudo yum install -y java-11-openjdk tar wget curl
      
    • With OpenJDK17 (Only for RHEL 8.x, 9.x)

       sudo yum install -y java-17-openjdk tar wget curl
      
  • SLES (12 SP5, 15 SP5)

    • With IBM Semeru Runtime (previously known as AdoptOpenJDK openj9)

       sudo zypper install -y curl tar wget dejavu-fonts gawk fontconfig gzip
      
      • Download and install IBM Semeru Runtime (Java 8, 11 or 17) from here.
    • With Eclipse Adoptium Temurin Runtime (previously known as AdoptOpenJDK hotspot)

       sudo zypper install -y curl tar wget dejavu-fonts gawk fontconfig gzip
      
      • Download and install Eclipse Adoptium Temurin Runtime (Java 11 or 17) from here.

      • Download and install Eclipse Adoptium Temurin Runtime (Java 8) from here.

    • With OpenJDK8

       sudo zypper install -y java-1_8_0-openjdk-devel tar wget gzip curl
      
    • With OpenJDK11

       sudo zypper install -y java-11-openjdk tar wget gzip curl
      
    • With OpenJDK17 (Only for SLES 15 SP4 and SLES 15 SP5)

       sudo zypper install -y java-17-openjdk tar wget gzip curl
      
  • Ubuntu (20.04, 22.04, 23.10)

    • With IBM Semeru Runtime (previously known as AdoptOpenJDK openj9)

        sudo apt-get update
        sudo apt-get install -y tar wget libfontconfig1
      
      • Download and install IBM Semeru Runtime (Java 8, 11 or 17) from here.
    • With Eclipse Adoptium Temurin Runtime (previously known as AdoptOpenJDK hotspot)

        sudo apt-get update
        sudo apt-get install -y tar wget libfontconfig1
      
      • Download and install Eclipse Adoptium Temurin Runtime (11 or 17) from here.

      • Download and install Eclipse Adoptium Temurin Runtime (Java 8) from here.

    • With OpenJDK8

       sudo apt-get install -y openjdk-8-jdk
      
    • With OpenJDK11

       sudo apt-get install -y openjdk-11-jdk openjdk-11-jdk-headless
      
    • With OpenJDK17

       sudo apt-get install -y openjdk-17-jdk openjdk-17-jdk-headless
      
      

Note: At the time of creation of these build instructions, versions (jdk8u372-b07_openj9-0.38.0) (build jdk11.0.19+7) (build jdk-17.0.7+7) of Semeru runtime and versions (jdk8u282-b08) (build jdk-11.0.19+7) (build jdk-17.0.7+7) of Temurin runtime were used.

3. Set environment variables

export JAVA_HOME=<path to java>
export PATH=$JAVA_HOME/bin:$PATH

4. Comment out G1GC algorithm as it is unimplemented in OpenJDK zero variant (only for Openjdk8 and Temurin8)

  • Edit /<source_root>/<apache-jmeter-directory>/bin/jmeter on line 185
     # Finally, some tracing to help in case things go astray:
     # You may want to add those settings:
     # -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem
     -: "${GC_ALGO:="-XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=20"}"
     +#: "${GC_ALGO:="-XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=20"}"
    
    
     # Always dump on OOM (does not cost anything unless triggered)
    

5. Check installed JMeter version

export PATH=$SOURCE_ROOT/<apache-jmeter-directory>/bin:$PATH
jmeter --version

References: