Merge branch 'master' of ssh://git.indexdata.com:222/home/git/pub/pazpar2
[pazpar2-moved-to-github.git] / perf / bash / par_fixed_clients.sh
1 #!/bin/bash
2 NUMBER=$1
3 if [ -z "$NUMBER" ] ; then
4     NUMBER=20
5 fi
6
7 MAX_DELAY=1
8 CLIENT_WAIT=2
9 ROUNDS=10
10 let r=0
11 PORT=$2
12 SERVICE=$3
13 CLIENT_SCRIPT="client_timed.sh"
14 rm -f *.time
15 export TMP_DIR=run_`date +"%Y%m%d_%H%M%S"`/
16 mkdir ${TMP_DIR}
17 rm -f latest
18 ln -s ${TMP_DIR} latest
19 while test $r -lt $ROUNDS; do
20     echo "$r"
21     i=0
22     while test $i -lt $NUMBER; do
23         ./${CLIENT_SCRIPT} $r.$i $PORT $SERVICE >$r.$i.log 2>&1 &
24         SLEEP=$[ ( $RANDOM % $MAX_DELAY ) ]
25         sleep $SLEEP
26         CLIENTS=`ps -ef |grep ${CLIENT_SCRIPT} | grep -cv grep` 
27         while test $CLIENTS -ge $NUMBER ; do
28             sleep $CLIENT_WAIT
29             CLIENTS=`ps -ef |grep ${CLIENT_SCRIPT} |grep -cv grep ` 
30             echo "Active $CLIENTS"
31         done
32         let i=$i+1
33     done
34     let r=$r+1
35 done
36 wait
37 cat ${TMP_DIR}*.time >> ${TMP_DIR}timed.$SERVICE.$NUMBER.log
38 #wget --tries=1 -O x "http://localhost:${PORT}/?command=exit"
39