| #!/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. |
| # |
| |
| # Benchmark script for comparing cluster performance. |
| |
| # Default values |
| PORT="5672" |
| COUNT=10000 |
| FLOW=100 # Flow control limit on queue depth for latency. |
| REPEAT=10 |
| QUEUES=4 |
| CLIENTS=3 |
| |
| while getopts "p:c:f:r:t:b:q:c" opt; do |
| case $opt in |
| p) PORT=$OPTARG;; |
| c) COUNT=$OPTARG;; |
| f) FLOW=$OPTARG;; |
| r) REPEAT=$OPTARG;; |
| s) SCALE=$OPTARG;; |
| b) BROKERS=$OPTARG;; |
| q) QUEUES=$OPTARG;; |
| c) CLIENTS=$OPTARG;; |
| *) echo "Unknown option"; exit 1;; |
| esac |
| done |
| |
| BROKERS=${BROKERS:-$(echo $HOSTS | sed "s/\>/:$PORT/g;s/ /,/g")} # Broker URL list |
| BROKER=`echo $BROKERS | awk -F, '{print $1}'` # First broker |
| |
| run_test() { echo $*; shift; "$@"; echo; echo; echo; } |
| |
| # Multiple pubs/subs connect via multiple brokers (active-active) |
| run_test "multi-host-thruput" qpid-cpp-benchmark --repeat $REPEAT -b $BROKERS --no-timestamp --summarize -q$QUEUES -s$CLIENTS -r$CLIENTS -m $COUNT |
| |
| # Multiple pubs/subs connect via single broker (active-passive) |
| run_test "single-host-thruput" qpid-cpp-benchmark --repeat $REPEAT -b $BROKER --no-timestamp --summarize -q$QUEUES -s$CLIENTS -r$CLIENTS -m $COUNT |
| |
| # Latency |
| run_test "latency" qpid-cpp-benchmark --repeat $REPEAT -b $BROKER --connection-options '{tcp-nodelay:true}' -m $COUNT --flow-control $FLOW |
| |