#!/bin/sh

PORT=8088
ADDR=127.0.0.1
WRK=/home/portis/tmp/wrk/wrk
FAST=/home/portis/mojosrc/Mojolicious-6.52/examples/fast.pl
PIDFILE=/tmp/prefork.pid

# number of runs as $1; defaults to 1
RUNS=${1-1}

for run in $(seq 1 $RUNS); do 
    for workers in 2 4 6 8 10 12 14 16 18 20 22 24; do
        sleep 2
        echo ''
        echo ======== running with $workers workers
        set -x
        perl $FAST prefork -w $workers -c 16 -r 1000 -m production -l http://$ADDR:$PORT &
        sleep 5
        $WRK -c $(($workers * 16)) -d 30s http://$ADDR:$PORT/
        set +x
        sleep 2
        PID=$(cat $PIDFILE)
        while kill $PID; do
            sleep 2
        done
        echo ========
    done 2>&1 | tee benchmark-run$run.out
done

