This document describes how to build Distbench and run a simple test. For general information about Distbench, please consult the Distbench Overview and/or the README.md.
To build Distbench, you need to have Bazel and g++11.3 installed.
Follow the instructions for your distribution at https://docs.bazel.build/versions/master/install.html to install Bazel.
Once Bazel is installed, you can build Distbench with the following command:
export CC=gcc-11
export CXX=g++-11
bazel build :allYou can run the unit tests included with the following command:
bazel test :allYou can run a simple Distbench test on localhost using simple_test.sh which
will run a simple search-like pattern with all the services (load_balancer,
root, leaf*3) running on a single host.
You can either use the script start_distbench_localhost.sh,
to start a test_sequencer and a node_manager on localhost, or do it
manually as follows:
bazel run :distbench -- test_sequencer &
bazel run :distbench -- node_manager --test_sequencer=localhost:10000 --port=9999 &Once distbench is running; run the traffic pattern:
./simple_test.shIt should output the summary of test result:
RPC latency summary:
leaf_query: N: 36 min: 474609ns median: 886503ns 90%: 1411603ns 99%: 1713296ns 99.9%: 1713296ns max: 1713296ns
root_query: N: 12 min: 1191994ns median: 1817132ns 90%: 6142479ns 99%: 6469017ns 99.9%: 6469017ns max: 6469017ns
Communication summary:
load_balancer/0 -> root/0: RPCs: 12 (0.01 kQPS) Request: 0.0 MiB/s Response: 0.0 MiB/s
root/0 -> leaf/0: RPCs: 12 (0.01 kQPS) Request: 0.0 MiB/s Response: 0.0 MiB/s
root/0 -> leaf/1: RPCs: 12 (0.01 kQPS) Request: 0.0 MiB/s Response: 0.0 MiB/s
root/0 -> leaf/2: RPCs: 12 (0.01 kQPS) Request: 0.0 MiB/s Response: 0.0 MiB/s
Instance summary:
leaf/0: Tx: 0.0 MiB/s, Rx:0.0 MiB/s
leaf/1: Tx: 0.0 MiB/s, Rx:0.0 MiB/s
leaf/2: Tx: 0.0 MiB/s, Rx:0.0 MiB/s
load_balancer/0: Tx: 0.0 MiB/s, Rx:0.0 MiB/s
root/0: Tx: 0.0 MiB/s, Rx:0.0 MiB/s
Global summary:
Total time: 2.099s
Total Tx: 0 MiB (0.0 MiB/s), Total Nb RPCs: 48 (0.02 kQPS)
To compile and run with debugging enabled:
bazel run --compilation_mode=dbg :distbench -- test_sequencer &
bazel run --compilation_mode=dbg :distbench -- node_manager --test_sequencer=localhost:10000 --port=9999 &
./simple_test.shOnce simple_test.sh is running, please look at the
Distbench Workloads for more workloads to run.