Former-commit-id:133dc97f67
[formerlya02aeb236c
] [formerly9f19e3f712
] [formerly133dc97f67
[formerlya02aeb236c
] [formerly9f19e3f712
] [formerly06a8b51d6d
[formerly9f19e3f712
[formerly 64fa9254b946eae7e61bbc3f513b7c3696c4f54f]]]] Former-commit-id:06a8b51d6d
Former-commit-id:9bb8decbcf
[formerly8e80217e59
] [formerly377dcd10b9
[formerly3360eb6c5f
]] Former-commit-id:377dcd10b9
Former-commit-id:e2ecdcfe33
161 lines
4 KiB
Bash
161 lines
4 KiB
Bash
#!/bin/sh
|
|
#
|
|
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
|
|
# Sample script to run a soak test with MultiThreadedProducer/Consumer.
|
|
# You need to provide the log freq and no of iterations
|
|
# Ex to run 10 hours and collect 1 second samples
|
|
# soak_report.sh 1 36000
|
|
|
|
# This script assumes that a suitable broker instance is started.
|
|
|
|
log_freq=$1
|
|
log_iter=$2
|
|
shift 2
|
|
JVM_ARGS=$@
|
|
|
|
if [ "$QPID_TEST_HOME" = "" ] ; then
|
|
echo "ERROR: Please set QPID_TEST_HOME ...."
|
|
exit 1
|
|
fi
|
|
|
|
print_rates()
|
|
{
|
|
cat $1 | awk '{
|
|
FS = ",";
|
|
count = 0;
|
|
total_latency = 0;
|
|
min_latency = 9223372036854775807;
|
|
max_latency = 0;
|
|
|
|
total_tp = 0;
|
|
min_tp = 50000;
|
|
max_tp = 0;
|
|
|
|
while ((getline) == 1)
|
|
{
|
|
total_latency = total_latency + $3
|
|
total_tp = total_tp + $2
|
|
|
|
if ($3 > 0)
|
|
{
|
|
min_latency = (($3 < min_latency) ? $3 : min_latency);
|
|
max_latency = (($3 > max_latency) ? $3 : max_latency);
|
|
}
|
|
if ($2 > 0)
|
|
{
|
|
min_tp = (($2 < min_tp) ? $2 : min_tp);
|
|
max_tp = (($2 > max_tp) ? $2 : max_tp);
|
|
}
|
|
|
|
count = count + 1
|
|
}
|
|
|
|
print "Avg Latency (ms) : " total_latency/count
|
|
print "Max Latency (ms) : " max_latency
|
|
print "Min Latency (ms) : " min_latency
|
|
|
|
print ""
|
|
print "Avg Throughput (msg/sec) : " total_tp/count
|
|
print "Max Throughput (msg/sec) : " max_tp
|
|
print "Min Throughput (msg/sec) : " min_tp
|
|
|
|
print ""
|
|
print "Total Iteratons " count
|
|
|
|
}'
|
|
}
|
|
|
|
print_system_stats()
|
|
{
|
|
cat $1 | awk '{
|
|
FS = ",";
|
|
count = 0;
|
|
total_memory = 0;
|
|
min_memory = 9223372036854775807;
|
|
max_memory = 0;
|
|
|
|
total_cp = 0;
|
|
min_cp = 50000;
|
|
max_cp = 0;
|
|
|
|
while ((getline) == 1)
|
|
{
|
|
total_memory = total_memory + $2
|
|
total_cp = total_cp + $3
|
|
|
|
if ($2 > 0)
|
|
{
|
|
min_memory = (($2 < min_memory) ? $2 : min_memory);
|
|
max_memory = (($2 > max_memory) ? $2 : max_memory);
|
|
}
|
|
if ($3 > 0)
|
|
{
|
|
min_cp = (($3 < min_cp) ? $3 : min_cp);
|
|
max_cp = (($3 > max_cp) ? $3 : max_cp);
|
|
}
|
|
|
|
count = count + 1
|
|
}
|
|
|
|
print "Avg Memory (MB) : " total_memory/(count*1024)
|
|
print "Max Memory (MB) : " max_memory/1024
|
|
print "Min Memory (MB) : " min_memory/1024
|
|
|
|
print ""
|
|
print "Avg CPU : " total_cp/count
|
|
print "Max CPU : " max_cp
|
|
print "Min CPU : " min_cp
|
|
|
|
print ""
|
|
print "Total Iteratons " count
|
|
|
|
}'
|
|
}
|
|
|
|
|
|
cleanup()
|
|
{
|
|
kill -9 `ps aux | grep java | grep soak | awk '{ print $2 }'`
|
|
}
|
|
|
|
print_results()
|
|
{
|
|
printf "\n======================================================= \n"
|
|
print_rates MultiThreadedConsumer_1.log
|
|
printf "\nConsumer process stats "
|
|
printf "\n----------------------- \n"
|
|
print_system_stats MultiThreadedConsumer_process_1.log
|
|
printf "\nProducer process stats "
|
|
printf "\n----------------------- \n"
|
|
print_system_stats MultiThreadedProducer_process_1.log
|
|
printf "\n------------------------------------------------------- \n"
|
|
}
|
|
|
|
trap cleanup EXIT
|
|
|
|
# runs a single instance of the MultiThreadedConsumer and MultiThreadedProducer
|
|
sh $QPID_TEST_HOME/bin/run_soak_client.sh 1 $log_freq $log_iter org.apache.qpid.testkit.soak.MultiThreadedConsumer $JVM_ARGS
|
|
sh $QPID_TEST_HOME/bin/run_soak_client.sh 1 $log_freq $log_iter org.apache.qpid.testkit.soak.MultiThreadedProducer $JVM_ARGS
|
|
|
|
sleep_time=$((log_freq * log_iter))
|
|
echo "sleep time : " $sleep_time
|
|
sleep $((log_freq * log_iter))
|
|
|
|
print_results
|