Table of Contents |
---|
Prerequisites
- Download and install jmeter: http://jmeter.apache.org
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)
Instance setup and documentation
- Fedora 4 Specs
AWS
OS Instance Type
vCPU Memory Storage
(EBS or SSD)Java Fedora 4 Java configuration options (e.g. -Xmx 2G) Binary Configuration
(local, network, S3)Java 8 4.7.3 On-premises
OS Processor Speed
Cores Memory Storage
- OS (type and version)
- Processor Speed
- Number of Cores
- Disk Type
(SSD or Hard Disk) - RAM
- IOPS (if applicable)
- any java
Java Fedora 4 Java configuration options (e.g. -Xmx 2G) - binary configuration: local, network, S3
- is virtual?
- is test runner on the same machine?
Binary Configuration
(local, network, S3)Java 8 4.7.3
- Database Specs (Using JDBC object store)Database Specs
- type (mysql, postgresql, aurora, etc)deployment: local or remote
- if using a remote database
- processor speed
- processor count
- RAM
- if RDS, RDS type (e.g. db1.small)
- JMeter client specs:
AWS:
OS Instance Type vCPU Memory Storage
(EBS or SSD)Java JMeter Ubuntu 16.04 LTS t2.small 1 2GB EBS Java 8 v3.1 On-premises
OS Processor Speed
Cores Memory Storage
(SSD or Hard Disk)Java JMeter
Fedora 4
- Installation:
- Fedora 4 Quick Start
- Deploying Fedora 4 Complete Guide
- Database: Configuring JDBC Object Store
- Fedora 4 Ansible script: https://github.com/VTUL/fcrepo4-ansible
- Fedora version (Start from 4.7.3)
- Using database? (local or remote)
Generate Test Data
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
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
Clone the Performance Analysis Project
Code Block git clone https://github.com/fcrepo4-labs/fcrepo_perf_analysis.git
Download and install the latest version of R https://www.r-project.org/
- Ubuntu 16.04 LTS: installr.sh
Start
R
shellCode Block R
Install R Packages: ggplot2, knitr, rmarkdown, svglite
Code Block language text install.packages("ggplot2") install.packages("knitr") install.packages("rmarkdown") install.packages("svglite")
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
Run all steps in one command using createreport.sh:
Code Block language bash ./createreport.sh perf.log report