diff --git a/benchmark/benchmark.sh b/benchmark/benchmark.sh index daabc60..cf7b845 100644 --- a/benchmark/benchmark.sh +++ b/benchmark/benchmark.sh @@ -1,62 +1,38 @@ #!/bin/bash functions=(hello isprime) -connections=(2 5 10 20 50 100 200 400 500 1000) +connections=(1000) times=(1m) -data=(isprime) -kuberhost="node1:32764" -maxthreads=160 - - -array_contains () { - local array="$1[@]" - local seeking=$2 - local in=1 - for element in "${!array}"; do - if [[ $element == $seeking ]]; then - in=0 - break - fi - done - return $in -} +kuberhost="node1:32631" +maxthreads=40 WRK_INSTALLED=$(which 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 - make - cp wrk /usr/local/bin + apt update + apt install build-essential libssl-dev git -y + git clone https://github.com/wg/wrk.git wrk + cd wrk + make + cp wrk /usr/local/bin fi HEY_INSTALLED=$(which 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 + apt update + apt install -y golang + go get -u github.com/rakyll/hey + cp $HOME/go/bin/hey /usr/local/bin fi -kubectl get pods --all-namespaces| grep Evicted | $(awk '{print "kubectl -n " $1 " delete pod "$2}') -kubectl delete -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/baremetal/service-nodeport.yaml -kubectl delete -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml - -kubectl create -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml -kubectl create -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/baremetal/service-nodeport.yaml - - echo -e "Benchmarking GET functions\n" for function in "${functions[@]}" do echo -e "Benchmarking $function\n" echo -e "Output of $function is:\n" - array_contains data function && perl -pi -e 'chomp if eof' $function.body - curl_additional_options=$(array_contains data function && "--data-binary \"@$function.body\"") - curl $curl_additional_options --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 @@ -67,11 +43,14 @@ do threads=$maxthreads fi echo -e "Threads: $threads Connections $connection\n" - for time in "${times[@]}" - do - echo -e "Time: $time\n" - wrk -t$threads -c$connection -d$time $(array_contains data function && "-s$function.wrk") -H"Host: $function.kubeless" -H"Content-Type:application/json" --latency http://$kuberhost/$function > ./$function.$connection.$time.txt 2>&1 - hey -c $connection -z $time -o csv -m POST -host "$function.kubeless" $(array_contains data function && "-D $function.body") -T "application/json" http://$kuberhost/$function > ./$function.$connection.$time.csv + for time in "${times[@]}" + do + echo -e "Time: $time\n" + echo -e "wrk" + 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.wrk.txt 2>&1 + echo -e "hey" + hey -c $connection -z $time -m POST -host "$function.kubeless" -D $function.body -T "application/json" http://$kuberhost/$function > ./$function.$connection.$time.hey.txt + date done done done