influxdbTestWriteLoop.sh 2.0 KB
Newer Older
1 2 3 4 5 6
#!/bin/bash

DATA_DIR=/mnt/root/testdata
NUM_LOOP=1
NUM_OF_FILES=100

S
Shuduo Sang 已提交
7
rowsPerRequest=(1 100 1000 10000 20000 50000 100000)
8 9 10 11 12 13 14 15

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

function runTest {
S
Shuduo Sang 已提交
16 17 18 19 20 21 22 23 24 25 26
  declare -A avgRPR

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

  for r in ${!rowsPerRequest[@]}; do
    if [ "$r" == "1" ] || [ "$r" == "100" ] || [ "$r" == "1000" ]; then
      NUM_OF_FILES=$clients
27
    else
S
Shuduo Sang 已提交
28
      NUM_OF_FILES=100
29 30 31 32
    fi

    for c in `seq 1 $clients`; do
      totalRPR=0
S
Shuduo Sang 已提交
33
      OUTPUT_FILE=influxdbTestWrite-RPR${rowsPerRequest[$r]}-clients$c.out
34 35 36 37 38 39 40 41 42 43 44
      for i in `seq 1 $NUM_LOOP`; do
        printTo "loop i:$i, $INF_TEST_DIR/influxdbTest \
	      -dataDir $DATA_DIR \
	      -numOfFiles $NUM_OF_FILES \
	      -writeClients $c \
	      -rowsPerRequest $r"
        $INF_TEST_DIR/influxdbTest \
          -dataDir $DATA_DIR \
          -numOfFiles $NUM_OF_FILES \
          -writeClients $c \
          -rowsPerRequest $r 2>&1 \
S
Shuduo Sang 已提交
45
          | tee $OUTPUT_FILE
46 47 48 49
        RPR=`cat $OUTPUT_FILE  | grep speed | awk '{print $(NF-1)}'`
        totalRPR=`echo "scale=4; $totalRPR + $RPR" | bc`
        printTo "rows:$r, clients:$c, i:$i RPR:$RPR"
      done
S
Shuduo Sang 已提交
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
      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]}, "
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
    done
    printf "\n"
  done
}

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

verbose=false
clients=1

while : ; do
  case $1 in
    -v)
      verbose=true
      shift ;;

    -n)
      NUM_LOOP=$2
      shift 2;;

    -c)
      clients=$2
      shift 2;;

    *)
      break ;;
  esac
done

WORK_DIR=/mnt/root/TDengine

INF_TEST_DIR=$WORK_DIR/tests/comparisonTest/influxdb

runTest

echo "Test done!"