If the network loses a validator or two, it's the job of the sanity check to detect this not the bench clients
81 lines
1.9 KiB
Bash
Executable File
81 lines
1.9 KiB
Bash
Executable File
#!/bin/bash -e
|
|
|
|
cd "$(dirname "$0")"/../..
|
|
|
|
echo "$(date) | $0 $*" > client.log
|
|
|
|
deployMethod="$1"
|
|
entrypointIp="$2"
|
|
RUST_LOG="$3"
|
|
export RUST_LOG=${RUST_LOG:-solana=info} # if RUST_LOG is unset, default to info
|
|
|
|
missing() {
|
|
echo "Error: $1 not specified"
|
|
exit 1
|
|
}
|
|
|
|
[[ -n $deployMethod ]] || missing deployMethod
|
|
[[ -n $entrypointIp ]] || missing entrypointIp
|
|
|
|
source net/common.sh
|
|
loadConfigFile
|
|
|
|
threadCount=$(nproc)
|
|
if [[ $threadCount -gt 4 ]]; then
|
|
threadCount=4
|
|
fi
|
|
|
|
case $deployMethod in
|
|
snap)
|
|
net/scripts/rsync-retry.sh -vPrc "$entrypointIp:~/solana/solana.snap" .
|
|
sudo snap install solana.snap --devmode --dangerous
|
|
|
|
solana_bench_tps=/snap/bin/solana.bench-tps
|
|
solana_keygen=/snap/bin/solana.keygen
|
|
;;
|
|
local|tar)
|
|
PATH="$HOME"/.cargo/bin:"$PATH"
|
|
export USE_INSTALL=1
|
|
export SOLANA_DEFAULT_METRICS_RATE=1
|
|
|
|
net/scripts/rsync-retry.sh -vPrc "$entrypointIp:~/.cargo/bin/solana*" ~/.cargo/bin/
|
|
solana_bench_tps=solana-bench-tps
|
|
solana_keygen=solana-keygen
|
|
;;
|
|
*)
|
|
echo "Unknown deployment method: $deployMethod"
|
|
exit 1
|
|
esac
|
|
|
|
scripts/oom-monitor.sh > oom-monitor.log 2>&1 &
|
|
scripts/net-stats.sh > net-stats.log 2>&1 &
|
|
|
|
! tmux list-sessions || tmux kill-session
|
|
|
|
clientCommand="\
|
|
$solana_bench_tps \
|
|
--network $entrypointIp:8001 \
|
|
--identity client.json \
|
|
--duration 7500 \
|
|
--sustained \
|
|
--threads $threadCount \
|
|
"
|
|
|
|
keygenCommand="$solana_keygen -o client.json"
|
|
tmux new -s solana-bench-tps -d "
|
|
[[ -r client.json ]] || {
|
|
echo '$ $keygenCommand' | tee -a client.log
|
|
$keygenCommand >> client.log 2>&1
|
|
}
|
|
|
|
while true; do
|
|
echo === Client start: \$(date) | tee -a client.log
|
|
$metricsWriteDatapoint 'testnet-deploy client-begin=1'
|
|
echo '$ $clientCommand' | tee -a client.log
|
|
$clientCommand >> client.log 2>&1
|
|
$metricsWriteDatapoint 'testnet-deploy client-complete=1'
|
|
done
|
|
"
|
|
sleep 1
|
|
tmux capture-pane -t solana-bench-tps -p -S -100
|