diff options
Diffstat (limited to 'wsrep-lib/scripts')
-rwxr-xr-x | wsrep-lib/scripts/benchmark-provider.sh | 46 | ||||
-rwxr-xr-x | wsrep-lib/scripts/benchmark-report.sh | 43 | ||||
-rwxr-xr-x | wsrep-lib/scripts/stress-provider.sh | 38 |
3 files changed, 127 insertions, 0 deletions
diff --git a/wsrep-lib/scripts/benchmark-provider.sh b/wsrep-lib/scripts/benchmark-provider.sh new file mode 100755 index 00000000..87eb541e --- /dev/null +++ b/wsrep-lib/scripts/benchmark-provider.sh @@ -0,0 +1,46 @@ +#!/bin/bash -eu +# +# Copyright (C) 2018 Codership Oy <info@codership.com> +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +# USA. +# + +set -x +PROVIDER=${PROVIDER:?"Provider library is required"} + +total_transactions=$((1 << 17)) + +function run_benchmark() +{ + servers=$1 + clients=$2 + transactions=$(($total_transactions/($servers*$clients))) + result_file=dbms-bench-$(basename $PROVIDER)-$servers-$clients + echo "Running benchmark for servers: $servers clients $clients" + rm -r *_data/ || : + command time -v ./src/dbms_simulator --servers=$servers --clients=$clients --transactions=$transactions --wsrep-provider="$PROVIDER" --fast-exit=1 >& $result_file +} + + +for servers in 1 2 4 8 16 +# for servers in 16 +do + for clients in 1 2 4 8 16 32 +# for clients in 4 8 16 32 + do + run_benchmark $servers $clients + done +done diff --git a/wsrep-lib/scripts/benchmark-report.sh b/wsrep-lib/scripts/benchmark-report.sh new file mode 100755 index 00000000..254e82b0 --- /dev/null +++ b/wsrep-lib/scripts/benchmark-report.sh @@ -0,0 +1,43 @@ +#!/bin/bash -eu +# +# Copyright (C) 2018 Codership Oy <info@codership.com> +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +# USA. +# + +PROVIDER=${PROVIDER:?"Provider library is required"} + +function report() +{ + servers=$1 + clients=$2 + result_file=dbms-bench-$(basename $PROVIDER)-$servers-$clients + trx_per_sec=$(grep -a "Transactions per second" "$result_file" | cut -d ':' -f 2) + cpu=$(grep -a "Percent of CPU this job got" "$result_file" | cut -d ':' -f 2) + vol_ctx_switches=$(grep -a "Voluntary context switches" "$result_file" | cut -d ':' -f 2) + invol_ctx_switches=$(grep -a "Involuntary context switches" "$result_file" | cut -d ':' -f 2) + echo "$clients $cpu $trx_per_sec $vol_ctx_switches $invol_ctx_switches" +} + +for servers in 1 2 4 8 16 +do + echo "Servers: $servers" + for clients in 1 2 4 8 16 32 + do + report $servers $clients + done +done + diff --git a/wsrep-lib/scripts/stress-provider.sh b/wsrep-lib/scripts/stress-provider.sh new file mode 100755 index 00000000..b9a91533 --- /dev/null +++ b/wsrep-lib/scripts/stress-provider.sh @@ -0,0 +1,38 @@ +#!/bin/bash -eu +# +# Copyright (C) 2019 Codership Oy <info@codership.com> +# +# This file is part of wsrep-lib. +# +# Wsrep-lib is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# Wsrep-lib is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with wsrep-lib. If not, see <https://www.gnu.org/licenses/>. +# + +set -x +WSREP_PROVIDER=${WSREP_PROVIDER:?"Provider library is required"} + +transactions=$((1 << 20)) +clients=16 +servers=3 +rows=100 +alg_freq=100 + +./dbsim/dbsim \ + --servers=$servers \ + --clients=$clients \ + --transactions=$(($transactions/($servers*$clients))) \ + --rows=$rows \ + --alg-freq=$alg_freq \ + --wsrep-provider=$WSREP_PROVIDER + +rm -r dbsim_1_data dbsim_2_data dbsim_3_data |