perftest-query.sh 5.5 KB
Newer Older
P
Ping Xiao 已提交
1 2
#!/bin/bash

3

4 5 6 7 8 9 10 11
branch=
if [ x$1 != x ];then
        branch=$1
        echo "Testing branch: $branch"
else
        echo "Please enter branch name as a parameter"
        exit 1
fi
12 13

type=
14
if [ x$2 != x ];then
15
    	type=jemalloc
16 17
        echo "Building TDengine using jemalloc"
else
18
		type=glibc
19 20 21
        echo "Building TDengine using glibc"
fi

P
Ping Xiao 已提交
22
today=`date +"%Y%m%d"`
23 24
WORK_DIR=/root/pxiao
PERFORMANCE_TEST_REPORT=$WORK_DIR/TDengine/tests/performance-report-$branch-$type-$today.log
P
Ping Xiao 已提交
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

# Coloured Echoes                                                                                                       #
function red_echo      { echo -e "\033[31m$@\033[0m";   }                                                               #
function green_echo    { echo -e "\033[32m$@\033[0m";   }                                                               #
function yellow_echo   { echo -e "\033[33m$@\033[0m";   }                                                               #
function white_echo    { echo -e "\033[1;37m$@\033[0m"; }                                                               #
# Coloured Printfs                                                                                                      #
function red_printf    { printf "\033[31m$@\033[0m";    }                                                               #
function green_printf  { printf "\033[32m$@\033[0m";    }                                                               #
function yellow_printf { printf "\033[33m$@\033[0m";    }                                                               #
function white_printf  { printf "\033[1;37m$@\033[0m";  }                                                               #
# Debugging Outputs                                                                                                     #
function white_brackets { local args="$@"; white_printf "["; printf "${args}"; white_printf "]"; }                      #
function echoInfo   { local args="$@"; white_brackets $(green_printf "INFO") && echo " ${args}"; }                      #
function echoWarn   { local args="$@";  echo "$(white_brackets "$(yellow_printf "WARN")" && echo " ${args}";)" 1>&2; }  #
function echoError  { local args="$@"; echo "$(white_brackets "$(red_printf    "ERROR")" && echo " ${args}";)" 1>&2; }  #


function stopTaosd {
	echo "Stop taosd"
    systemctl stop taosd
	snap stop tdengine
  	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
}

function buildTDengine {
	echoInfo "Build TDengine"
	cd $WORK_DIR/TDengine

	git remote update > /dev/null
P
Ping Xiao 已提交
61
	git reset --hard HEAD
62 63
	git checkout $branch
	REMOTE_COMMIT=`git rev-parse --short remotes/origin/$branch`
P
Ping Xiao 已提交
64 65 66 67 68 69
	LOCAL_COMMIT=`git rev-parse --short @`

	echo " LOCAL: $LOCAL_COMMIT"
	echo "REMOTE: $REMOTE_COMMIT"
	if [ "$LOCAL_COMMIT" == "$REMOTE_COMMIT" ]; then
		echo "repo up-to-date"
70 71 72 73 74 75 76 77 78 79 80 81 82
	fi

	git pull > /dev/null 2>&1
	if [ $type = "jemalloc" ];then
		echo "git submodule update --init --recursive"
		git submodule update --init --recursive
	fi
	LOCAL_COMMIT=`git rev-parse --short @`
	cd debug
	rm -rf *
	if [ $type = "jemalloc" ];then
		echo "cmake .. -DJEMALLOC_ENABLED=true > /dev/null"
		cmake .. -DJEMALLOC_ENABLED=true > /dev/null
P
Ping Xiao 已提交
83
	else
84
		cmake .. > /dev/null
P
Ping Xiao 已提交
85
	fi
86 87 88 89
	make > /dev/null 2>&1	
	make install > /dev/null 2>&1
	echo "Build TDengine on remote server"	
	ssh perftest "./buildTDengine.sh $branch > /dev/null"
P
Ping Xiao 已提交
90 91 92
}

function runQueryPerfTest {
P
Ping Xiao 已提交
93
	[ -f $PERFORMANCE_TEST_REPORT ] && rm $PERFORMANCE_TEST_REPORT
94
	nohup $WORK_DIR/TDengine/debug/build/bin/taosd -c /etc/perf/ > /dev/null 2>&1 &
P
Ping Xiao 已提交
95
	echoInfo "Wait TDengine to start"
96
	sleep 60
P
Ping Xiao 已提交
97
	echoInfo "Run Performance Test"	
98
	cd $WORK_DIR/TDengine/tests/pytest	
99

100
	python3 query/queryPerformance.py -c $LOCAL_COMMIT -b $branch -T $type | tee -a $PERFORMANCE_TEST_REPORT
101

102
	python3 insert/insertFromCSVPerformance.py -c $LOCAL_COMMIT -b $branch -T $type | tee -a $PERFORMANCE_TEST_REPORT
103
	
104
	echo "=========== taosdemo performance: 4 int columns, 10000 tables, 100000 recoreds per table ===========" | tee -a $PERFORMANCE_TEST_REPORT
105
	python3 tools/taosdemoPerformance.py -c $LOCAL_COMMIT -b $branch -T $type | tee -a $PERFORMANCE_TEST_REPORT
106 107 108 109 110 111

	echo "=========== taosdemo performance: 400 int columns, 400 double columns, 200 binary(128) columns, 10000 tables, 1000 recoreds per table ===========" | tee -a $PERFORMANCE_TEST_REPORT
	python3 tools/taosdemoPerformance.py -c $LOCAL_COMMIT -b $branch -T $type -i 400 -D 400 -B 200 -t 10000 -r 1000 | tee -a $PERFORMANCE_TEST_REPORT

	echo "=========== taosdemo performance: 1900 int columns, 1900 double columns, 200 binary(128) columns, 10000 tables, 1000 recoreds per table ===========" | tee -a $PERFORMANCE_TEST_REPORT
	python3 tools/taosdemoPerformance.py -c $LOCAL_COMMIT -b $branch -T $type -i 1900 -D 1900 -B 200 -t 10000 -r 1000 | tee -a $PERFORMANCE_TEST_REPORT
P
Ping Xiao 已提交
112 113 114 115 116
}


function sendReport {
	echo "send report"
117
	receiver="develop@taosdata.com"
P
Ping Xiao 已提交
118 119 120 121 122 123
	mimebody="MIME-Version: 1.0\nContent-Type: text/html; charset=utf-8\n"

	cd $TDENGINE_DIR

	sed -i 's/\x1b\[[0-9;]*m//g' $PERFORMANCE_TEST_REPORT
	BODY_CONTENT=`cat $PERFORMANCE_TEST_REPORT`
124
	echo -e "From: <support@taosdata.com>\nto: ${receiver}\nsubject: Query Performace Report ${branch} ${jemalloc} commit ID: ${LOCAL_COMMIT}\n\n${today}:\n${BODY_CONTENT}" | \
P
Ping Xiao 已提交
125
	(cat - && uuencode $PERFORMANCE_TEST_REPORT performance-test-report-$today.log) | \
P
Ping Xiao 已提交
126
	/usr/sbin/ssmtp "${receiver}" && echo "Report Sent!"
P
Ping Xiao 已提交
127 128 129 130 131 132
}


stopTaosd
buildTDengine
runQueryPerfTest
P
Ping Xiao 已提交
133
stopTaosd
P
Ping Xiao 已提交
134 135 136

echoInfo "Send Report"
sendReport
137
echoInfo "End of Test"