forked from youzan/nsq
-
Notifications
You must be signed in to change notification settings - Fork 0
/
bench.sh
executable file
·48 lines (40 loc) · 1.29 KB
/
bench.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/bin/bash
readonly messageSize="${1:-200}"
readonly batchSize="${2:-200}"
readonly memQueueSize="${3:-1000000}"
readonly dataPath="${4:-}"
set -e
set -u
echo "# using --mem-queue-size=$memQueueSize --data-path=$dataPath --size=$messageSize --batch-size=$batchSize"
echo "# compiling/running nsqd"
pushd apps/nsqd >/dev/null
go build
rm -f *.dat
./nsqd --alsologtostderr=true --log-level=2 --mem-queue-size=$memQueueSize --data-path=$dataPath >./bench-nsqd.log 2>&1 &
nsqd_pid=$!
popd >/dev/null
cleanup() {
kill -s SIGINT $nsqd_pid
#rm -f nsqd/*.dat
}
trap cleanup INT TERM EXIT
sleep 0.3
echo "# creating topic/channel"
#curl -X PUT --silent 'http://127.0.0.1:4151/topic/create?topic=sub_bench' >/dev/null 2>&1
#curl --silent 'http://127.0.0.1:4151/create_channel?topic=sub_bench&channel=ch' >/dev/null 2>&1
echo "# compiling bench_reader/bench_writer"
pushd bench >/dev/null
for app in bench_reader bench_writer; do
pushd $app >/dev/null
go build
popd >/dev/null
done
popd >/dev/null
echo -n "PUB: "
bench/bench_writer/bench_writer --size=$messageSize --batch-size=$batchSize 2>&1
curl -s -o cpu.pprof http://127.0.0.1:4151/debug/pprof/profile &
pprof_pid=$!
echo -n "SUB: "
bench/bench_reader/bench_reader --size=$messageSize --channel=ch 2>&1
echo "waiting for pprof..."
wait $pprof_pid