diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2010-10-14 03:20:24 +0400 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2010-10-14 03:20:24 +0400 |
commit | ff456b38862de3fd0118c6ac6b3f46edb1fbb87f (patch) | |
tree | 2c7a7e8302e5f9340d66373da9a7bab3a72dd26e /benchmark | |
parent | cdde22a27d797b853efac161eaec630d3405e924 (diff) |
Add 'make bench' script
Diffstat (limited to 'benchmark')
-rw-r--r-- | benchmark/http_simple.js | 2 | ||||
-rwxr-xr-x | benchmark/http_simple_bench.sh | 77 |
2 files changed, 78 insertions, 1 deletions
diff --git a/benchmark/http_simple.js b/benchmark/http_simple.js index 93903c42a92..8d66190e0fb 100644 --- a/benchmark/http_simple.js +++ b/benchmark/http_simple.js @@ -74,7 +74,7 @@ var server = http.createServer(function (req, res) { body = fixed; } else if (command == "info") { - body = 'rev: ' + rev + '\n' + 'uname: ' + uname + '\n'; + body = 'rev=' + rev + '\nuname="' + uname + '"\n'; } else { status = 404; diff --git a/benchmark/http_simple_bench.sh b/benchmark/http_simple_bench.sh new file mode 100755 index 00000000000..79cbaa79cfb --- /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 |