tdengineTestWriteLoop.sh 2.7 KB
Newer Older
1 2 3
#!/bin/bash

DATA_DIR=/mnt/root/testdata
S
Shuduo Sang 已提交
4
NUM_LOOP=5
5 6 7 8 9 10 11 12 13 14 15
NUM_OF_FILES=100

rowsPerRequest=(1 100 500 1000 2000)

function printTo {
  if $verbose ; then
    echo $1
  fi
}

function runTest {
S
Shuduo Sang 已提交
16 17 18 19 20 21
  declare -A avgRPR

  for r in ${!rowsPerRequest[@]}; do
    for c in `seq 1 $clients`; do
      avgRPR[$r, $c]=0
    done
22 23
  done

S
Shuduo Sang 已提交
24
  for r in ${!rowsPerRequest[@]}; do
25
    for c in `seq 1 $clients`; do
26
      totalRPR=0
S
Shuduo Sang 已提交
27 28
      OUTPUT_FILE=tdengineTestWrite-RPR${rowsPerRequest[$r]}-clients$c.out

29 30 31 32 33 34
      for i in `seq 1 $NUM_LOOP`; do
	restartTaosd
        $TAOSD_DIR/taos -s "drop database db" > /dev/null 2>&1
        printTo "loop i:$i, $TDTEST_DIR/tdengineTest \
	      -dataDir $DATA_DIR \
	      -numOfFiles $NUM_OF_FILES \
35
	      -w -clients $c \
36
	      -rowsPerRequest $r"
S
Shuduo Sang 已提交
37
        $TDTEST_DIR/tdengineTest \
38
          -dataDir $DATA_DIR \
S
Shuduo Sang 已提交
39
          -numOfFiles 1 \
40
          -w -clients $c \
41
          -rowsPerRequest $r \
S
Shuduo Sang 已提交
42 43
	  | tee $OUTPUT_FILE
        RPR=`cat $OUTPUT_FILE  | grep speed | awk '{print $(NF-1)}'`
44 45 46
        totalRPR=`echo "scale=4; $totalRPR + $RPR" | bc`
        printTo "rows:$r, clients:$c, i:$i RPR:$RPR"
      done
S
Shuduo Sang 已提交
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
      avgRPR[$r,$c]=`echo "scale=4; $totalRPR / $NUM_LOOP" | bc`
      printTo "r:$r c:$c avgRPR:${avgRPR[$r, $c]}"
    done
  done

  printf "R/R, "
  for c in `seq 1 $clients`; do
    if [ "$c" == "1" ]; then
      printf "$c client, "
    else
      printf "$c clients, "
    fi
  done
  printf "\n"

  for r in ${!rowsPerRequest[@]}; do
    printf "${rowsPerRequest[$r]}, "
    for c in `seq 1 $clients`; do
      printf "${avgRPR[$r,$c]}, "
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
    done
    printf "\n"
  done
}

function restartTaosd {
  printTo "Stop taosd"
  systemctl stop taosd
  PID=`ps -ef|grep -w taosd | grep -v grep | awk '{print $2}'`
  while [ -n "$PID" ]
  do
    pkill -TERM -x taosd
    sleep 1
    PID=`ps -ef|grep -w taosd | grep -v grep | awk '{print $2}'`
  done

  printTo "Start taosd"
  $TAOSD_DIR/taosd > /dev/null 2>&1 &
  sleep 10
}

################ Main ################

master=false
develop=true
verbose=false
92
clients=1
93

94 95
while : ; do
  case $1 in
96 97
    -v)
      verbose=true
98
      shift ;;
99 100 101 102

    master)
      master=true
      develop=false
103
      shift ;;
104 105 106 107

    develop)
      master=false
      develop=true
108 109 110 111 112
      shift ;;

    -c)
      clients=$2
      shift 2;;
S
Shuduo Sang 已提交
113

S
Shuduo Sang 已提交
114 115 116 117
    -n)
      NUM_LOOP=$2
      shift 2;;

118
    *)
119
      break ;;
120 121 122 123
  esac
done

if $master ; then
S
Shuduo Sang 已提交
124
  echo "Test master branch.."
125 126 127
  cp /mnt/root/cfg/master/taos.cfg /etc/taos/taos.cfg
  WORK_DIR=/mnt/root/TDengine.master
else
S
Shuduo Sang 已提交
128 129
  echo "Test develop branch.."
  cp /mnt/root/cfg/10billion/taos.cfg /etc/taos/taos.cfg
130 131 132 133 134 135 136 137
  WORK_DIR=/mnt/root/TDengine
fi

TAOSD_DIR=$WORK_DIR/debug/build/bin
TDTEST_DIR=$WORK_DIR/tests/comparisonTest/tdengine

runTest

S
Shuduo Sang 已提交
138
echo "Test done!"