#! /bin/bash -x if [ -n "$1" ]; then worker_cnt=$1 else worker_cnt=1 fi mkdir -p benchmark/server/logs mkdir -p benchmark/fake-apisix/logs sudo openresty -p $PWD/benchmark/server || exit 1 trap 'onCtrlC' INT function onCtrlC () { sudo killall wrk sudo killall openresty sudo openresty -p $PWD/benchmark/fake-apisix -s stop || exit 1 sudo openresty -p $PWD/benchmark/server -s stop || exit 1 } sed -i "s/worker_processes [0-9]*/worker_processes $worker_cnt/g" conf/nginx.conf make run sleep 3 ############################################# echo -e "\n\napisix: $worker_cnt worker + 1 upstream + no plugin" curl http://127.0.0.1:9080/apisix/admin/routes/1 -X PUT -d ' { "uri": "/hello", "plugins": { }, "upstream": { "type": "roundrobin", "nodes": { "127.0.0.1:80": 1 } } }' sleep 1 wrk -d 5 -c 16 http://127.0.0.1:9080/hello sleep 1 wrk -d 5 -c 16 http://127.0.0.1:9080/hello sleep 1 ############################################# echo -e "\n\napisix: $worker_cnt worker + 1 upstream + 2 plugins (limit-count + prometheus)" curl http://127.0.0.1:9080/apisix/admin/routes/1 -X PUT -d ' { "uri": "/hello", "plugins": { "limit-count": { "count": 2000000000000, "time_window": 60, "rejected_code": 503, "key": "remote_addr" }, "prometheus": {} }, "upstream": { "type": "roundrobin", "nodes": { "127.0.0.1:80": 1 } } }' sleep 3 wrk -d 5 -c 16 http://127.0.0.1:9080/hello sleep 1 wrk -d 5 -c 16 http://127.0.0.1:9080/hello sleep 1 make stop ############################################# echo -e "\n\nfake empty apisix server: $worker_cnt worker" sleep 1 sed -i "s/worker_processes [0-9]*/worker_processes $worker_cnt/g" benchmark/fake-apisix/conf/nginx.conf sudo openresty -p $PWD/benchmark/fake-apisix || exit 1 sleep 1 wrk -d 5 -c 16 http://127.0.0.1:9080/hello sleep 1 wrk -d 5 -c 16 http://127.0.0.1:9080/hello sudo openresty -p $PWD/benchmark/fake-apisix -s stop || exit 1 sudo openresty -p $PWD/benchmark/server -s stop || exit 1