Git Product home page Git Product logo

rain-workload-toolkit's Introduction

Rain is a statistics-based workload generation toolkit that uses parameterized and empirical distributions to model the different classes of workload variations.

Features

  • Highly flexible and customizable workload characterization
    • Supports variations in the amount of load, the mix of operations and variations in data popularity (data hotspots)
    • Application-specific request Generators can easily use parameterized or empirical probability distributions to characterize different variations in load
    • Benchmarks configured by simple JSON configuration files
  • Modular design of the harness
    • Simple Generator API allowing easy integration of application-specific request Generators that target new systems/applications. Example request generator for the Olio Web 2.0 application used in the Cloudstone Benchmark described and evaluated in our tech report (see Related Documents below for more details)
  • Supports closed, open, and partly open loop workload generation
    • Use of the Command pattern (GoF) to implement parameterizable Operations. This design choice allows any thread to execute an Operation opening up the possibility of open loop or partly open-loop workload generation
    • Two thread pools, one containing dedicated load threads based on the maximum number of clients/users to emulate during an experiment and a (possibly smaller) shared thread pool for simulating asynchronous Operation-execution
  • Separation of request generation from request execution
    • This design choice allows Rain to produce traces that can be consumed by a suitable third-party high performance load-delivery client e.g., httperf, if desired or feasible
  • Multi-track load generation
    • Generate a workload that targets multiple applications/tenants in a shared cluster in a single experiment. This feature is specifically to enable evaluating resource allocation strategies for multi-application/multi-tenant scenarios

Benchmarking with Rain

Requirements

  • A “workload server” with Ant.

Instructions

  1. SSH into the “workload server”.
  2. Checkout Rain: git clone git://github.com/yungsters/rain-workload-toolkit.git
  3. Change into the Rain directory: cd rain-workload-toolkit
  4. Compile the source code into rain.jar: ant package
  5. Bundle the workload you want to use into a JAR.
    • To compile the Olio package, use ant package-olio to create workloads/olio.jar.
    • You will have to modify the ant build file for any custom workloads.
  6. Modify configuration files to describe a run (see Anatomy of a Configuration File).
  7. Run the benchmark using: java -Xmx1g -Xms256m -cp "rain.jar:<path to workload JAR>" radlab.rain.Benchmark <path to Rain JSON configuration file>

rain-workload-toolkit's People

Contributors

aaronbee avatar marmbrus avatar rean avatar sguazt avatar yed1 avatar yungsters avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.