summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/tests/cluster_test_scripts/perftest
blob: 72c826883527c4ed68d1209634e71b7de9b55d28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/sh
# Run a distributed perftest against a cluster.
# Args: npubs nsubs [perftest-options]

source config.sh

NPUBS=${1:-4} ; shift
NSUBS=${1:-4} ; shift
OPTS="--npubs $NPUBS --nsubs $NSUBS $*"

CLIENTS=($CLIENT_HOSTS)
BROKERS=(`cat $CLUSTER_HOME/hosts`)
PORTS=(`cat $CLUSTER_HOME/ports`)

start() {
    client=${CLIENTS[i % ${#CLIENTS[*]}]}
    broker=${BROKERS[i % ${#BROKERS[*]}]}
    port=${PORTS[i % ${#PORTS[*]}]}
    ssh -n $client $PERFTEST $OPTS $* -b $broker -p $port &
    PIDS="$PIDS $!"
}

ssh ${CLIENTS[0]} $PERFTEST $OPTS --setup -b ${BROKERS[0]} -p${PORTS[0]}
for (( i=0 ; i < $NPUBS ; ++i)); do start --publish; done
for (( ; i < $NPUBS+$NSUBS ; ++i)); do start --subscribe; done
ssh ${CLIENTS[0]} $PERFTEST $OPTS --control  -b ${BROKERS[0]}  -p${PORTS[0]}

for pid in $PIDS; do
    wait $pid || echo "ERROR: client process $pid failed"
done

`dirname $0`/cluster_check