github.com/nsqio/nsq@v1.3.0/bench.sh (about) 1 #!/bin/bash 2 readonly messageSize="${1:-200}" 3 readonly batchSize="${2:-200}" 4 readonly memQueueSize="${3:-1000000}" 5 readonly dataPath="${4:-}" 6 set -e 7 set -u 8 9 echo "# using --mem-queue-size=$memQueueSize --data-path=$dataPath --size=$messageSize --batch-size=$batchSize" 10 echo "# compiling/running nsqd" 11 pushd apps/nsqd >/dev/null 12 go build 13 rm -f *.dat 14 ./nsqd --mem-queue-size=$memQueueSize --data-path=$dataPath >/dev/null 2>&1 & 15 nsqd_pid=$! 16 popd >/dev/null 17 18 cleanup() { 19 kill -9 $nsqd_pid 20 rm -f nsqd/*.dat 21 } 22 trap cleanup INT TERM EXIT 23 24 sleep 0.3 25 echo "# creating topic/channel" 26 curl --silent 'http://127.0.0.1:4151/create_topic?topic=sub_bench' >/dev/null 2>&1 27 curl --silent 'http://127.0.0.1:4151/create_channel?topic=sub_bench&channel=ch' >/dev/null 2>&1 28 29 echo "# compiling bench_reader/bench_writer" 30 pushd bench >/dev/null 31 for app in bench_reader bench_writer; do 32 pushd $app >/dev/null 33 go build 34 popd >/dev/null 35 done 36 popd >/dev/null 37 38 echo -n "PUB: " 39 bench/bench_writer/bench_writer --size=$messageSize --batch-size=$batchSize 2>&1 40 41 curl -s -o cpu.pprof http://127.0.0.1:4151/debug/pprof/profile & 42 pprof_pid=$! 43 44 echo -n "SUB: " 45 bench/bench_reader/bench_reader --size=$messageSize --channel=ch 2>&1 46 47 echo "waiting for pprof..." 48 wait $pprof_pid