Benchmarking - notes

Incase the official version doesn’t work - this worked for me.

Get Rust:

curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env
sudo apt install clang

Get Solana

git clone https://github.com/solana-labs/solana.git
cd solana
TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
git checkout $TAG
cargo build --release
./fetch-perf-libs.sh

Make genesis block:

NDEBUG=1 ./multinode-demo/setup.sh

Start drone:

NDEBUG=1 ./multinode-demo/drone.sh --cap 2000000000000000

In new session start validator:

NDEBUG=1 SOLANA_CUDA=1 ./multinode-demo/bootstrap-leader.sh

In new session start benchmarking script

NDEBUG=1 ./multinode-demo/bench-tps.sh

When it finish, record score.

Hello . On my side

Node address | Max TPS | Total Transactions

91786.13 | 6637708

Average max TPS: 91786.13, 0 nodes had 0 TPS

Highest TPS: 91786.13 sampling period 1s max transactions: 6637708 clients: 1 drop rate: 0.63

Average TPS: 73097.35

1 Like

I’m able to get

Max TPS 143988.25
Average TPS: 72087.586

by running NDEBUG=1 ./multinode-demo/bench-tps.sh --duration 90 --thread-batch-sleep-ms 0

I’m able to squeeze out a bit more by increasing the --tx_count flag, e.g

NDEBUG=1 ./multinode-demo/bench-tps.sh --duration 90 --tx_count 250000 --thread-batch-sleep-ms 0

Our hardware:
2x INTEL® XEON® GOLD 5217 8 cores @3.00 GHz
3x 2080 Ti
NVMe storage
96GB RAM

1 Like