Coder Social home page Coder Social logo

acalhounrh / benchmark-operator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cloud-bulldozer/benchmark-operator

0.0 1.0 0.0 8.98 MB

The Chuck Norris of cloud benchmarks

License: Apache License 2.0

Dockerfile 0.55% Shell 29.75% Python 3.86% HTML 64.76% Smarty 1.08%

benchmark-operator's Introduction

Benchmark Operator

The intent of this Operator is to deploy common workloads to establish a performance baseline of Kubernetes cluster on your provider.

Installation

Installing the benchmark-operator is easiest by using the helm chart and can be done with the following commands. This requires your machine to have Helm installed. Install Helm

Note: If running on openshift you'll need to run this command before installing the chart. oc adm policy -n my-ripsaw add-scc-to-user privileged -z benchmark-operator

git clone https://github.com/cloud-bulldozer/benchmark-operator
cd benchmark-operator/charts/benchmark-operator
helm install benchmark-operator . -n my-ripsaw --create-namespace

To delete this release, you can do so with the following command:

helm delete benchmark-operator -n my-ripsaw --purge

Workloads status

Workload Use ElasticSearch indexing Reconciliation usage VM support (kubevirt) Kata Containers
UPerf Network Performance Yes Used, default : 3second Working Working
Iperf3 Network Performance No Used, default : 3second Not Supported Preview
fio Storage IO Yes Used, default : 3second Working Working
Sysbench System Performance No Used, default : 3second Not Supported Preview
YCSB Database Performance Yes Used, default : 3second Not Supported Preview
Byowl User defined workload Yes Used, default : 3second Not Supported Preview
Pgbench Postgres Performance Yes Used, default : 3second Not Supported Preview
Smallfile Storage IO Performance Yes Used, default : 3second Not Supported Preview
fs-drift Storage IO Longevity Yes Not used Not Supported Preview
hammerdb Database Performance Yes Used, default : 3second Not Supported Preview
Service Mesh Microservices No Used, default : 3second Not Supported Preview
Vegeta HTTP Performance Yes Used, default : 3second Not Supported Preview
Scale Openshift Scale Openshift Cluster Yes Used, default : 3second Not Supported Preview
stressng Stress system resources Yes Used, default: 3second Not Supported Preview
kube-burner k8s Performance Yes Used, default : 3second Not Supported Preview
cyclictest Real-Time Performance Yes Used, default : 3second Not Supported Preview
oslat Real-Time Latency Yes Used, default : 3second Not Supported Preview

Reconciliation

Previously the Benchmark Operator didn't properly take advantage of the reconciliation period. Going forward we will make every attempt to utilize the reconciliation period.

Why did we decide to switch to this? Our operator would implement long running tasks, due to the nature of benchmarks. However, long running tasks blocks the Operator, causing us to delete the Operator and re-create the operator to un-block it. The benchmarks mentioned above that state Used for Reconciliation, no longer have this issue.

Optional workload images

Optional locations for workload images can now be added easily without the need to rebuild the operator. To do so in the workload args section of the CR add image: [location]

NOTE: This is not a required arguement. If omitted it will default to the currently verified workload image. Additionally, this is NOT enabled for YCSB

For Example:

apiVersion: ripsaw.cloudbulldozer.io/v1alpha1
kind: Benchmark
metadata:
  name: example-benchmark
  namespace: my-ripsaw
spec:
  elasticsearch:
    url: "http://my-es.foo.bar:80"
  metadata_collection: true
  cleanup: false
  workload:
    name: "foo"
    args:
      image: my.location/foo:latest

User Provided UUID

All benchmarks in the benchmark-operator utilize a UUID for tracking and indexing purposes. This UUID is, by default, generated when the workload is first started. However, if desired, a user provided UUID can be added to the workload cr.

NOTE: The provided UUID must be in format XXXXX-XXXXX-XXXXX

For Example:

apiVersion: ripsaw.cloudbulldozer.io/v1alpha1
kind: Benchmark
metadata:
  name: example-benchmark
  namespace: my-ripsaw
spec:
  uuid: 6060004a-7515-424e-93bb-c49844600dde
  elasticsearch:
    url: "http://my-es.foo.bar:80"
  metadata_collection: true
  cleanup: false
  workload:
    name: "foo"
    args:
      image: my.location/foo:latest

Installation

Installation

Contributing

Contributing

Metadata Collection

Metadata Collection

Cerberus Integration

Cerberus Integration

Indexing to Elasticsearch

Indexing to Elasticsearch

Capturing Prometheus Data

Capturing Prometheus Data

Cache dropping

Cache dropping

Community

Key Members(slack_usernames): ravi, mohit, dry923, rsevilla or rook

benchmark-operator's People

Contributors

aakarshg avatar acalhounrh avatar akrzos avatar amitsagtani97 avatar bengland2 avatar chaitanyaenr avatar chawlanikhil24 avatar chinthagovardhan avatar dry923 avatar dustinblack avatar ekuric avatar jeniferh avatar jtaleric avatar keesturam avatar kpouget avatar martineg avatar mffiedler avatar mike10010100 avatar mkarg75 avatar mohit-sheth avatar mulbc avatar netzzer avatar robertkrawitz avatar rsevilla87 avatar rvansa avatar sarahbx avatar shekharberry avatar smalleni avatar vasukulkarni avatar whitleykeith 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.