/fcrepo_perf_analysis

Fcrepo Performance Analysis

Primary LanguageR

Fcrepo Performance

Fcrepo Jmeter Analysis

A collection of R scripts which use jmeter log output generated by the standard commmunity tests. These scripts perform analysis to answer specific questions about fedora-commons repository performance, and produce figures to illustrate the answers.

Requirements

  • R
  • R Packages: ggplot2, knitr, rmarkdown, svglite
  • Vendor Packages:
    • Cairo (libcairo2-dev on debian, cairo on OSX)
    • Pandoc (pandoc on debian)

Use

  1. Get your perf.log from running a fcrepo test or use a copy of the test data run by virginia tech as a demo.

    # Pre-existing data from test-4 that can be used as an example
    mkdir raw-data
    wget https://s3.amazonaws.com/f4-performance-results/test4.pu.postgres.tar.gz -O ./raw-data/test.tgz
    tar -C raw-data -xzf raw-data/test.tgz
    
  2. Run Analysis. Substitutue example/test4-perf.log with the perf.log from your own tests or the one obtained from S3.

    # Make directories.
    mkdir -p processed-data
    mkdir -p build
    mkdir -p reports
    
    # Run install script to make sure required packages are installed.
    Rscript 00-install-required-packages.r
    
    # Check that input data has expected headers
    #   The result should be the printed statement: `
    #   Header check:
    #   Expected: 12 encountered: 12
    Rscript 01-check-jmeter-log.r example/test4-perf.log
    
    # Run preprocessing and save result into processed-data directory.
    Rscript 10-jmeter-create-objects-preprocess.r example/test4-perf.log > processed-data/subset.csv
    
    # Run the analysis 
    Rscript 20-jmeter-create-objects-analysis.r processed-data/subset.csv
    
    # Produce figures
    Rscript 21-jmeter-create-objects-plots.r processed-data/subset.csv
    
    # Produce report
    Rscript 30-knit-report.r ./build report.md
    

Reports

Generated reports for test runs are in dist.