Code Monkey home page Code Monkey logo

lh-dbench's Introduction

dbench

Benchmark Kubernetes persistent disk volumes with fio: Read/write IOPS, bandwidth MB/s and latency.

This REPO is forked from leeliu/dbench, and is for Longhorn volume raw block device benchmarks.

Usage

  1. Deploy Longhorn official document and make sure there is no longhorn volume before this test.
  2. Download dbench.yaml
  3. Deploy Dbench using: kubectl apply -f dbench.yaml
  4. Once deployed, the Dbench Job will:
    • provision a Persistent Volume of 2Gi (default) using storageClassName: longhorn (default)
    • run a series of fio tests on the newly provisioned disk
    • currently there are 9 tests, 15s per test - total runtime is ~2.5 minutes
  5. Follow benchmarking progress using: kubectl logs -f job/dbench (empty output means the Job not yet created, or storageClassName is invalid, see Troubleshooting below)
  6. At the end of all tests, you'll see a summary that looks similar to this:
==================
= Dbench Summary =
==================
Random Read/Write IOPS: 75.7k/59.7k. BW: 523MiB/s / 500MiB/s
Average Latency (usec) Read/Write: 183.07/76.91
Sequential Read/Write: 536MiB/s / 512MiB/s
Mixed Random Read/Write IOPS: 43.1k/14.4k
  1. Once the tests are finished, clean up using: kubectl delete -f dbench.yaml and that should deprovision the persistent disk and delete it to minimize storage billing.

Notes / Troubleshooting

  • If the Persistent Volume Claim is stuck on Pending, it's likely you didn't specify a valid Storage Class. Double check using kubectl get storageclasses. Also check that the volume size of 2Gi (default) is available for provisioning.
  • It can take some time for a Persistent Volume to be Bound and the Kubernetes Dashboard UI will show the Dbench Job as red until the volume is finished provisioning.
  • Uncomment the command in from dbench.yaml and then login to the pod and run /docker-entrypoint.sh fio directly to debug any issue.
  • A list of all fio tests are in docker-entrypoint.sh.

License

  • MIT

lh-dbench's People

Contributors

jakekeeys avatar

Watchers

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