solana/net/remote/remote-client.sh

101 lines
2.3 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
set -e
2018-09-04 09:21:03 -07:00
cd "$(dirname "$0")"/../..
echo "$(date) | $0 $*" > client.log
2018-09-03 21:15:55 -07:00
deployMethod="$1"
entrypointIp="$2"
clientToRun="$3"
RUST_LOG="$4"
benchTpsExtraArgs="$5"
benchExchangeExtraArgs="$6"
clientIndex="$7"
2018-09-07 20:50:46 -07:00
export RUST_LOG=${RUST_LOG:-solana=info} # if RUST_LOG is unset, default to info
2018-09-07 08:46:20 -07:00
missing() {
echo "Error: $1 not specified"
exit 1
}
[[ -n $deployMethod ]] || missing deployMethod
[[ -n $entrypointIp ]] || missing entrypointIp
source net/common.sh
loadConfigFile
2018-09-03 21:15:55 -07:00
threadCount=$(nproc)
if [[ $threadCount -gt 4 ]]; then
threadCount=4
fi
2018-09-03 21:15:55 -07:00
case $deployMethod in
local|tar)
2018-09-03 21:15:55 -07:00
PATH="$HOME"/.cargo/bin:"$PATH"
export USE_INSTALL=1
2018-11-14 19:19:27 -08:00
./fetch-perf-libs.sh
# shellcheck source=/dev/null
source ./target/perf-libs/env.sh
net/scripts/rsync-retry.sh -vPrc "$entrypointIp:~/.cargo/bin/solana*" ~/.cargo/bin/
2018-09-03 21:15:55 -07:00
;;
*)
echo "Unknown deployment method: $deployMethod"
exit 1
esac
2018-12-23 22:12:58 -08:00
(
sudo scripts/oom-monitor.sh
) > oom-monitor.log 2>&1 &
scripts/net-stats.sh > net-stats.log 2>&1 &
2018-08-29 07:48:38 -07:00
2018-09-07 08:34:42 -07:00
! tmux list-sessions || tmux kill-session
2018-09-03 21:15:55 -07:00
case $clientToRun in
solana-bench-tps)
net/scripts/rsync-retry.sh -vPrc \
"$entrypointIp":~/solana/solana-client-accounts/bench-tps"$clientIndex".yml ./client-accounts.yml
clientCommand="\
solana-bench-tps \
--entrypoint $entrypointIp:8001 \
--drone $entrypointIp:9900 \
--duration 7500 \
--sustained \
--threads $threadCount \
$benchTpsExtraArgs \
--read-client-keys ./client-accounts.yml \
"
;;
solana-bench-exchange)
2019-06-07 22:18:55 -07:00
solana-keygen new -f -o bench.keypair
clientCommand="\
solana-bench-exchange \
--entrypoint $entrypointIp:8001 \
--drone $entrypointIp:9900 \
--threads $threadCount \
--batch-size 1000 \
--fund-amount 20000 \
--duration 7500 \
--identity bench.keypair \
$benchExchangeExtraArgs \
"
;;
*)
echo "Unknown client name: $clientToRun"
exit 1
esac
2018-09-07 20:21:41 -07:00
tmux new -s "$clientToRun" -d "
2018-09-07 08:34:42 -07:00
while true; do
2018-09-07 20:50:46 -07:00
echo === Client start: \$(date) | tee -a client.log
2018-09-07 08:34:42 -07:00
$metricsWriteDatapoint 'testnet-deploy client-begin=1'
2018-09-07 20:50:46 -07:00
echo '$ $clientCommand' | tee -a client.log
2018-09-07 08:34:42 -07:00
$clientCommand >> client.log 2>&1
$metricsWriteDatapoint 'testnet-deploy client-complete=1'
done
"
sleep 1
tmux capture-pane -t "$clientToRun" -p -S -100