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