Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Table of Contents

Prerequisites

  1.  Download and install jmeter: http://jmeter.apache.org
    1. Ubuntu 16.04 LTS: installjmeter.sh

      Code Block
      #!/bin/bash
      
      
      # get source from an apache mirror
      wget http://supergsego.com/apache//jmeter/binaries/apache-jmeter-3.12.tgz
      # verify the md5
      
      
      local_md5=`md5`md5sum -q apache-jmeter-3.1.tgz`2.tgz | cut -f 1 -d ' '`
      remote_md5=`curl https://www.apache.org/dist/jmeter/binaries/apache-jmeter-3.12.tgz.md5 | cut -f 1 -d ' '`
      cat apache-jmeter-3.1.tgz.md5
      
      
      if [ "$local_md5" != "$remote_md5" ]
      then
        echo "md5's do not match"
        exit
      else
        echo "congratulations md5s match" 
      fi
      
      
      # untar it.
      tar xvfz apache-jmeter-3.12.tgz
      # move it 
      sudo mv apache-jmeter-3.12 /usr/local/apache-jmeter-3.12
      # link it
      sudo ln -s /usr/local/apache-jmeter-3.12/bin/jmeter /usr/bin/jmeter

Document Your Instance Setup

 

(Perhaps we might want to think about a yaml config file in case we want to build some tooling)

    1. 
      
      


Instance setup and documentation 

  1. Fedora 4 Specs
    1. AWS

      OS

      Instance Type

      vCPUMemoryStorage
      (EBS or SSD)
      JavaFedora 4Java configuration options (e.g. -Xmx 2G)Binary Configuration
      (local, network, S3)





      Java 84.7.3


    2. On-premises

      OS

      Processor Speed

      CoresMemoryStorage
    Instance Specs
    1. OS (type and version)
    2. Processor Speed
    3. Number of Cores
    4. Disk Type
      (SSD or Hard Disk)
    5. RAM
    6. IOPS (if applicable)
    7. JavaFedora 4Java
      any java
      configuration options (e.g. -Xmx 2G)
    8. binary configuration:  local,  network,  S3
    9. is virtual?
    10. is test runner on the same machine? 
    11. Binary Configuration
      (local, network, S3)





      Java 84.7.3


  2. Database Specs (Using JDBC object store)Database Specs
    1. type (mysql, postgresql, aurora, etc)deployment: local or remote
    2. if using a remote database
      1. processor speed
      2. processor count
      3. RAM
      4. if RDS,  RDS type (e.g. db1.small)
  3. JMeter client specs:
    1. AWS:

      OSInstance TypevCPUMemoryStorage
      (EBS or SSD)
      JavaJMeter
      Ubuntu 16.04 LTSt2.small12GBEBSJava 8v3.1


    2. On-premises

      OS

      Processor Speed

      CoresMemoryStorage
      (SSD or Hard Disk)
      JavaJMeter








Fedora 4 

  1. Installation: 
    1. Fedora 4 Quick Start
    2. Deploying Fedora 4 Complete Guide
    3. Database: Configuring JDBC Object Store 
    4. Fedora 4 Ansible script: https://github.com/VTUL/fcrepo4-ansible
    5. Fedora version (Start from 4.7.3)
    6. Using database? (local or remote) 

Generate Test Data 

  1. Download the test scripts and read the README (https://github.com/fcrepo4-labs/fcrepo4-jmeter)

    Code Block
    git clone https://github.com/fcrepo4-labs/fcrepo4-jmeter.git

     

  2. Run a test. See each test JMeter command in README.  For example, below code block is Test 4 JMeter command

    Code Block
    jmeter -Dfedora_4_server=localhostSERVERIP -Dfedora_4_contextport=restPORT -Dfilesize_min=0 -Dfilesize_max=4096 -DbinaryDfedora_4_context=fcrepo/rest -Dcontainer_threads=1 -n -t /path/to/fcrepo4-jmeter/fedora.jmx

    (dbernstein: I was not able to run this test without modifying the fedora.jmx file - namely I had to make jmeter continue on error.)

     


Generate Graphs Based  on Your Test Data

  1. Clone the Performance Analysis Project

    Code Block
    git clone https://github.com/fcrepo4-labs/fcrepo_perf_analysis.git


  2. Download and install the latest version of https://www.r-project.org/

    1. Ubuntu 16.04 LTS: installr.sh
    2. Start R shell

      Code Block
      R
    (3.4.0

    1. Install R Packages: ggplot2, knitr, rmarkdown, svglite

      Code Block
      languagetext
      install.packages("ggplot2")
      install.packages("knitr")
      install.packages("rmarkdown")
      install.packages("svglite")


  3. Follow steps outlined in https://github.com/fcrepo4-labs/fcrepo_perf_analysis

    dbernstein:  I was unable to get past the column checking step 

    Code Block
    Rscript 01-check-jmeter-log.r ~/code/performance-tests/2017-03-16/log/perf.log 
    Header check:
    Expected: 12 encountered: 10 
    [1] "Unexpected number of input fields!"

Share Your Results with the Community

    1. Run all steps in one command using createreport.sh:

      Code Block
      languagebash
      ./createreport.sh perf.log report


Share Your Results with the Community