Skip to content

A distributed benchmark for file systems and block devices

License

Notifications You must be signed in to change notification settings

eliottkespi/elbencho

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

elbencho

A distributed benchmark for file systems and block devices

elbencho was inspired by other wide-spread storage benchmark tools like fio, mdtest and ior and combines their better parts into a single unified tool with some extra sugar on top. Test options include throughput, IOPS and access latency, ranging from low level block device performance up to lots of small file performance with multiple clients. Live statistics show how the system behaves under load and whether it is worth waiting for the end result.

Usage

bin/elbencho --help provides the general overview, from which you can select the type of benchmarks you would like to run and see simple examples to get started.

Building

Building requires a C++14 compatible compiler, such as gcc version 5.x or higher.

Install Dependencies for Debian/Ubuntu

apt install git libaio-dev libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev libncurses-dev libnuma-dev

Install Dependencies for RHEL/CentOS

yum install boost-devel git libaio-devel ncurses-devel numactl-devel

On RHEL / CentOS 7.x: Prepare Environment with newer gcc Version

Skip these steps on RHEL / CentOS 8.0 or newer.

yum install centos-release-scl
# ...or alternatively for RHEL: yum-config-manager --enable rhel-server-rhscl-7-rpms
yum install devtoolset-7
scl enable devtoolset-7 bash

The last command enters a shell in which the environment variables are pointing to a newer gcc version. (The standard gcc version of the system remains unchanged.) Use this shell to run make later. The resulting executable can run outside of this shell.

Clone the Main Repository

git clone https://github.com/breuner/elbencho.git
cd elbencho

Finally, the actual Build...

make help will show you all build, install and rpm/deb package build options. This is the standard build command:

make -j8  # "-j8" for 8 parallel build threads

To benchmark GPU data transfers via CUDA:

make -j8 CUDA_SUPPORT=1  # requires Nvidia CUDA to be installed

There you go. Happy benchmarking!

About

A distributed benchmark for file systems and block devices

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 92.2%
  • Shell 5.2%
  • Makefile 2.6%