summaryrefslogtreecommitdiff
path: root/benchmark/http_simple_bench.sh
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2010-10-13 16:20:24 -0700
committerRyan Dahl <ry@tinyclouds.org>2010-10-13 16:20:24 -0700
commitff456b38862de3fd0118c6ac6b3f46edb1fbb87f (patch)
tree2c7a7e8302e5f9340d66373da9a7bab3a72dd26e /benchmark/http_simple_bench.sh
parentcdde22a27d797b853efac161eaec630d3405e924 (diff)
downloadnode-ff456b38862de3fd0118c6ac6b3f46edb1fbb87f.tar.gz
Add 'make bench' script
Diffstat (limited to 'benchmark/http_simple_bench.sh')
-rwxr-xr-xbenchmark/http_simple_bench.sh77
1 files changed, 77 insertions, 0 deletions
diff --git a/benchmark/http_simple_bench.sh b/benchmark/http_simple_bench.sh
new file mode 100755
index 000000000..79cbaa79c
--- /dev/null
+++ b/benchmark/http_simple_bench.sh
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+SERVER=127.0.0.1
+PORT=8000
+
+# You may want to configure your TCP settings to make many ports available
+# to node and ab. On macintosh use:
+# sudo sysctl -w net.inet.ip.portrange.first=32768
+# sudo sysctl -w net.inet.tcp.msl=1000
+
+if [ ! -d benchmark/ ]; then
+ echo "Run this script from the node root directory"
+ exit 1
+fi
+
+if [ $SERVER == "127.0.0.1" ]; then
+ ./node benchmark/http_simple.js &
+ node_pid=$!
+ sleep 1
+fi
+
+info=`curl -s http://$SERVER:$PORT/info`
+eval $info
+
+date=`date "+%Y%m%d%H%M%S"`
+
+ab_hello_world() {
+ local type="$1"
+ local ressize="$2"
+ if [ $type == "string" ]; then
+ local uri="bytes/$ressize"
+ else
+ local uri="buffer/$ressize"
+ fi
+
+
+ name="ab-hello-world-$type-$ressize"
+
+ dir=".benchmark_reports/$name/$rev/"
+ if [ ! -d $dir ]; then
+ mkdir -p $dir
+ fi
+
+ summary_fn="$dir/$date.summary"
+ data_fn="$dir/$date.data"
+
+ echo "Bench $name starts in 3 seconds..."
+ # let shit calm down
+ sleep 3
+
+ # hammer that as hard as it can for 10 seconds.
+ ab -g $data_fn -c 100 -t 10 http://$SERVER:$PORT/$uri > $summary_fn
+
+ # add our data about the server
+ echo >> $summary_fn
+ echo >> $summary_fn
+ echo "webserver-rev: $rev" >> $summary_fn
+ echo "webserver-uname: $uname" >> $summary_fn
+
+ grep Req $summary_fn
+
+ echo "Summary: $summary_fn"
+ echo
+}
+
+# 1k
+ab_hello_world 'string' '1024'
+ab_hello_world 'buffer' '1024'
+
+# 100k
+ab_hello_world 'string' '102400'
+ab_hello_world 'buffer' '102400'
+
+
+if [ ! -z $node_pid ]; then
+ kill -9 $node_pid
+fi