-
Notifications
You must be signed in to change notification settings - Fork 0
/
run-trace
executable file
·45 lines (45 loc) · 1.56 KB
/
run-trace
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
35
36
37
38
39
40
41
42
43
44
45
#!/bin/bash
#1 2 3 4 5 6 7 8
#clients requests service_time workers worker_processes contention coherency log_file
echo params $1 $2 $3 $4 $5 $6 $7 $8
mkdir -p logs
mkdir -p results
echo "starting workers"
RESERVATION=`preserve -# $4 -t 15:00|head -n 1 |cut -f 3 -d ' '|sed 's/://'`
echo $RESERVATION
num=0
while [ $num != $4 ];
do
sleep 5
NODES=`preserve -llist | grep $RESERVATION | cut -f 9 | sed 's/ /,/g'`
num=`echo $NODES |tr -s ',' '\n' | grep -c 'node'`
done
echo $NODES
#echo $1 $2 $3 $4 $6 `date` >> logs/$8.worker-`hostname`
#echo "#" $1 $2 $3 $4 $6 `date` >> results/$8.worker-`hostname`
prun -np $4 -reserve $RESERVATION ./worker.sh $6 $7 $5 $3 $NODES $8 &
sleep 5
echo "starting load balancer"
echo $1 $2 $3 $4 $5 $6 $7 `date` >> logs/$8.lb
echo $1 $2 $3 $4 $5 $6 $7 `date` >> results/$8.lb
prun -np 1 ./loadbalancer.sh $4 $NODES $1 $8 &
loadbalancer=""
while ((`echo $loadbalancer|wc -c` <= 1))
do
sleep 5
echo "searching load balacner node"
if [ "$4" == "1" ]; then
loadbalancer=`preserve -llist | grep $USER | awk '{if ($7 == "R") print $0}' | grep -v $NODES | cut -f 9`
else
loadbalancer=`preserve -llist | grep $USER | awk '{if ($7 == "R" && $8 == "1") print $0}' | cut -f 9`
fi
done
echo "it is " $loadbalancer
sleep 5
echo $1 $2 $3 $loadbalancer $4 $5 $6 $7 `date` >> logs/$8.client
echo "#" $1 $2 $3 $4 $5 $6 $7 `date` >> results/$8.client
echo "starting client"
prun -np 1 ./trace-player.sh $loadbalancer $2 $8
echo "killing all"
killall prun > /dev/null
preserve -c $RESERVATION