Skip to content

Instantly share code, notes, and snippets.

@userguy
Forked from emersonmoretto/benchmark.sh
Created January 21, 2016 08:54
Show Gist options
  • Save userguy/e913b230c3ecfcc311c0 to your computer and use it in GitHub Desktop.
Save userguy/e913b230c3ecfcc311c0 to your computer and use it in GitHub Desktop.

Revisions

  1. @emersonmoretto emersonmoretto created this gist Aug 9, 2011.
    47 changes: 47 additions & 0 deletions benchmark.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,47 @@
    #!/bin/bash

    echo -e "\nbenchmark.sh -n<number of requests> -c<number of concurrency> <URL1> <URL2> ..."

    echo -e "\nEx: benchmark.sh -n100 -c10 http://www.google.com/ http://www.bing.com/ \n"

    ## Gnuplot settings
    echo "set terminal png
    set output 'benchmark_${1}_${2}.png'
    set title 'Benchmark: ${1} ${2}'
    set size 1,1
    set grid y
    set xlabel 'request'
    set ylabel 'response time (ms)' " > /tmp/plotme


    ## Loop over parameters
    c=1
    for var in "$@"
    do

    ## skipping first parameters (concurrency and requests)
    if [ $c -gt 2 ]
    then

    ## apache-bench
    ab $1 $2 -g "gnuplot_${c}.out" "${var}"

    ## if for concat stuff
    if [ $c -gt 3 ]
    then
    echo -e ", 'gnuplot_${c}.out' using 9 smooth sbezier with lines title '${var}' \\" >> /tmp/plotme
    else
    echo -e "plot 'gnuplot_${c}.out' using 9 smooth sbezier with lines title '${var}' \\" >> /tmp/plotme
    fi
    fi

    let c++
    done

    ## plotting
    gnuplot /tmp/plotme

    echo -e "\n Success! Result image is: benchmark_${1}_${2}.png"

    ## show the image
    eog benchmark_${1}_${2}.png > /dev/null &