mirror of
https://github.com/codership/wsrep-lib.git
synced 2025-07-22 23:21:53 +03:00
Scripts for benchmarking providers, dbms sim fast exit option.
This commit is contained in:
28
scripts/benchmark-provider.sh
Executable file
28
scripts/benchmark-provider.sh
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/bash -eu
|
||||||
|
|
||||||
|
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
|
25
scripts/benchmark-report.sh
Executable file
25
scripts/benchmark-report.sh
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/bin/bash -eu
|
||||||
|
|
||||||
|
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
|
||||||
|
|
@ -41,6 +41,7 @@ struct dbms_simulator_params
|
|||||||
std::string wsrep_provider;
|
std::string wsrep_provider;
|
||||||
std::string wsrep_provider_options;
|
std::string wsrep_provider_options;
|
||||||
int debug_log_level;
|
int debug_log_level;
|
||||||
|
int fast_exit;
|
||||||
dbms_simulator_params()
|
dbms_simulator_params()
|
||||||
: n_servers(0)
|
: n_servers(0)
|
||||||
, n_clients(0)
|
, n_clients(0)
|
||||||
@ -48,6 +49,7 @@ struct dbms_simulator_params
|
|||||||
, wsrep_provider()
|
, wsrep_provider()
|
||||||
, wsrep_provider_options()
|
, wsrep_provider_options()
|
||||||
, debug_log_level(0)
|
, debug_log_level(0)
|
||||||
|
, fast_exit(0)
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -599,8 +601,10 @@ void dbms_simulator::stop()
|
|||||||
trrep::log() << "######## Stats ############";
|
trrep::log() << "######## Stats ############";
|
||||||
trrep::log() << stats();
|
trrep::log() << stats();
|
||||||
trrep::log() << "######## Stats ############";
|
trrep::log() << "######## Stats ############";
|
||||||
// REMOVEME: Temporary shortcut
|
if (params_.fast_exit)
|
||||||
// exit(0);
|
{
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
for (auto& i : servers_)
|
for (auto& i : servers_)
|
||||||
{
|
{
|
||||||
dbms_server& server(*i.second);
|
dbms_server& server(*i.second);
|
||||||
@ -711,7 +715,9 @@ int main(int argc, char** argv)
|
|||||||
("transactions", po::value<size_t>(¶ms.n_transactions),
|
("transactions", po::value<size_t>(¶ms.n_transactions),
|
||||||
"number of transactions run by a client")
|
"number of transactions run by a client")
|
||||||
("debug-log-level", po::value<int>(¶ms.debug_log_level),
|
("debug-log-level", po::value<int>(¶ms.debug_log_level),
|
||||||
"debug logging level: 0 - none, 1 - verbose");
|
"debug logging level: 0 - none, 1 - verbose")
|
||||||
|
("fast-exit", po::value<int>(¶ms.fast_exit),
|
||||||
|
"exit from simulation without graceful shutdown");
|
||||||
po::variables_map vm;
|
po::variables_map vm;
|
||||||
po::store(po::parse_command_line(argc, argv, desc), vm);
|
po::store(po::parse_command_line(argc, argv, desc), vm);
|
||||||
po::notify(vm);
|
po::notify(vm);
|
||||||
|
Reference in New Issue
Block a user