Giter VIP home page Giter VIP logo

ravenmq-benchmarker's Introduction

benchmarker

A tool for benchmarking RabbitMQ on Kubernetes with various hardware and messaging configurations.

Supported Kubernetes platforms

The tooling currently supports GKE, AKS, EKS, and Calatrava (Project Pacific) via terraform modules.

Getting started

Configuration

To configure the Kubernetes cluster and hardware to deploy RabbitMQ, edit the terraform configuration in PROVIDER-cluster-config.tfvars, where PROVIDER is one of gke, aks, eks, or calatrava.

To configure RabbitMQ properties, edit the values YAML in RabbitMQ-values.yml.

To configure the benchmark topology, edit topology.json. To configure the benchmark RabbitMQ policies, edit policy.json. The topology and policy files are used to configure RabbitTestTool. For more detailed descriptions and configuration options, see the RTT documentation.

Running

To provision an environment and run the benchmark, run the script

benchmark --provider (gke|aks|eks|calatrava)

This script will deploy a Kubernetes cluster on the selected provider, deploy the cluster operator, a RabbitMQ cluster, Prometheus, Grafana, and InfluxDB on that Kubernetes cluster, then run the benchmark, exporting the results to the databases.

To use an existing Kubernetes cluster to run the benchmark, run the script

benchmark --skip-terraform

This will deploy the cluster operator, a RabbitMQ cluster, Prometheus, Grafana, and InfluxDB on the targeted Kubernetes cluster, then run the configured benchmark, exporting the results to the databases.

To access the Grafana dashboards, run the command

kubectl -n prom port-forward svc/prom-grafana 3000:80

then open a browser window to http://localhost:3000 and login with the credentials admin:admin.

Cleanup

To tear down the infrastructure provisioned by the operator, run

benchmark destroy --provider (gke|aks|eks|calatrava)

Note: this operation is destructive and will result in the loss of the benchmark data.

Results

There is a significant amount of performance information captured in a series of blog posts by Jack Vanlightly from 2020.

Messages/second Message Size (KB) Queue Type Replication Factor Cluster Size Cores (per Node) Memory (GB per Node) Disk Type
36,000 1 quorum 3 3 16 32 SSD
37,000 1 quorum 3 3 36 72 SSD
42,000 1 quorum 3 5 8 16 SSD
54,000 1 quorum 3 5 16 32 SSD
54,000 1 quorum 3 7 8 16 SSD
67,000 1 quorum 3 7 16 16 SSD
66,000 1 quorum 3 9 8 16 SSD

Adding new results

To add new benchmarking results, please open a PR with your addition.

ravenmq-benchmarker's People

Contributors

mirahimage 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.