Skip to content

bbenshab/ripsaw

 
 

Repository files navigation

Benchmark Operator

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

Workloads status

Workload Use Status in Operator Reconciliation usage VM support (kubevirt)
UPerf Network Performance Working Used, default : 3second Preview
Iperf3 Network Performance Working Used, default : 3second Not Supported
fio Storage IO Working Used, default : 3second Not Supported
Sysbench System Performance Working Used, default : 3second Not Supported
YCSB Database Performance Working Used, default : 3second Not Supported
Byowl User defined workload Working Used, default : 3second Not Supported
Pgbench Postgres Performance Working Used, default : 3second Not Supported
Smallfile Storage IO Performance Working Used, default : 3second Not Supported
fs-drift Storage IO Longevity Working Not used Not Supported
hammerdb Database Performance Working Not used Not Supported

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.

Reconciliation issue with YCSB and PGBench

These two bencharmks are written in a way that doesn't allow for reconciliation to be implemented. To take advantage of the reconciliation loop, these two benchmarks need to be rewritten.

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:
    server: "my-es.foo.bar"
    port: 9200
  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

Community

Key Members(slack_usernames): aakarsh, dry923, rsevilla or rook

About

The Chuck Norris of cloud benchmarks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 86.5%
  • Python 12.2%
  • Dockerfile 1.3%