From 9bbe3ddfc8557b0bc84a9fd95a904428e52ca4c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torma=20Krist=C3=B3f?= Date: Fri, 26 Apr 2019 14:32:55 +0200 Subject: [PATCH] Update benchmark.sh --- benchmark/benchmark.sh | 50 ++++++++++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 16 deletions(-) diff --git a/benchmark/benchmark.sh b/benchmark/benchmark.sh index 927fc70..a5ecc19 100644 --- a/benchmark/benchmark.sh +++ b/benchmark/benchmark.sh @@ -6,27 +6,30 @@ times=(1m) kuberhost="node1:30765" maxthreads=40 -wave_connection=1 +wave_dir_up=true +wave_connection=40 +wave_max_conn=1600 +wave_min_conn=40 wave_time="1m" -WRK_INSTALLED=$(which wrk) +WRK_INSTALLED=$(command -v wrk) if [[ $WRK_INSTALLED = "" ]] then apt update apt install build-essential libssl-dev git -y git clone https://github.com/wg/wrk.git wrk - cd wrk + cd wrk || exit make cp wrk /usr/local/bin fi -HEY_INSTALLED=$(which hey) +HEY_INSTALLED=$(command -v hey) if [[ $HEY_INSTALLED = "" ]] then apt update apt install -y golang go get -u github.com/rakyll/hey - cp $HOME/go/bin/hey /usr/local/bin + cp "$HOME"/go/bin/hey /usr/local/bin fi if [[ $@ = *"--wave"* ]] @@ -34,10 +37,25 @@ then while true; do now=$(date '+%Y-%m-%d-%H-%M') echo -e "Running" - hey -c $wave_connection -z $wave_time -m POST -o csv -host "$function.kubeless" -D $function.body -T "application/json" http://$kuberhost/$function > ./$function.$now.wave.txt + hey -c $wave_connection -z $wave_time -m POST -o csv -host "$function.kubeless" -D "$function".body -T "application/json" http://$kuberhost/"$function" > ./"$function"."$now".wave.txt echo -e "Sleeping" - sleep $time - wave_connection=wave_connection * 2 + sleep "$time" + if [[ $wave_dir_up ]] + then + if [[ $wave_connection -lt $wave_max_conn ]] + then + wave_connection=$((wave_connection * 2)) + else + wave_dir_up=false + fi + else + if [[ $wave_connection -gt $wave_min_conn ]] + then + wave_connection=$((wave_connection / 2)) + else + wave_dir_up=true + fi + fi done else echo -e "Benchmarking functions\n" @@ -45,14 +63,14 @@ for function in "${functions[@]}" do echo -e "Benchmarking $function\n" echo -e "Output of $function is:\n" - perl -pi -e 'chomp if eof' $function.body - curl --data-binary @$function.body --header "Host: $function.kubeless" --header "Content-Type:application/json" http://$kuberhost/$function + perl -pi -e 'chomp if eof' "$function".body + curl --data-binary @"$function".body --header "Host: $function.kubeless" --header "Content-Type:application/json" http://$kuberhost/"$function" echo -e "\n" for connection in "${connections[@]}" do - if [[ $connection -lt $(($maxthreads + 1)) ]] + if [[ $connection -lt $((maxthreads + 1)) ]] then - threads=$(($connection-1)) + threads=$((connection-1)) else threads=$maxthreads fi @@ -62,12 +80,12 @@ do datetime=$(date '+%Y-%m-%d-%H-%M-%S') echo -e "Time: $time\n" echo -e "wrk\n" - wrk -t$threads -c$connection -d$time -s$function.wrk -H"Host: $function.kubeless" -H"Content-Type:application/json" --latency http://$kuberhost/$function > ./$function.$connection.$time.$datetime.wrk.txt 2>&1 + wrk -t$threads -c"$connection" -d"$time" -s"$function".wrk -H"Host: $function.kubeless" -H"Content-Type:application/json" --latency http://$kuberhost/"$function" > ./"$function"."$connection"."$time"."$datetime".wrk.txt 2>&1 echo -e "hey-summary\n" - hey -c $connection -z $time -m POST -host "$function.kubeless" -D $function.body -T "application/json" http://$kuberhost/$function > ./$function.$connection.$time.$datetime.hey.txt + hey -c "$connection" -z "$time" -m POST -host "$function.kubeless" -D "$function".body -T "application/json" http://$kuberhost/"$function" > ./"$function"."$connection"."$time"."$datetime".hey.txt echo -e "hey-csv\n" - hey -c $connection -z $time -m POST -o csv -host "$function.kubeless" -D $function.body -T "application/json" http://$kuberhost/$function > ./$function.$connection.$time.$datetime.csv - echo -e $datetime + hey -c "$connection" -z "$time" -m POST -o csv -host "$function.kubeless" -D "$function".body -T "application/json" http://$kuberhost/"$function" > ./"$function"."$connection"."$time"."$datetime".csv + echo -e "$datetime" done done done