Add switches to http_simple bench to use domains
authorisaacs <i@izs.me>
Tue, 10 Apr 2012 21:59:21 +0000 (14:59 -0700)
committerisaacs <i@izs.me>
Tue, 17 Apr 2012 20:14:55 +0000 (13:14 -0700)
benchmark/http.sh
benchmark/http_simple.js

index 22b4b7c8c62bbf3353406ec33dcdb6c8b9a75525..40d0c714c2131f254b692f98727edd53f2d3239c 100755 (executable)
@@ -4,7 +4,9 @@ sudo sysctl -w net.inet.ip.portrange.first=12000
 sudo sysctl -w net.inet.tcp.msl=1000
 sudo sysctl -w kern.maxfiles=1000000 kern.maxfilesperproc=1000000
 ulimit -n 100000
+
 ./node benchmark/http_simple.js || exit 1 &
 sleep 1
-ab -n 30000 -c 100 http://127.0.0.1:8000/bytes/123 | grep Req
+
+ab -n 30000 -c 100 http://127.0.0.1:8000/${TYPE:-bytes}/${LENGTH:-1024} | grep Req
 killall node
index 74ba4d776805d046b70ff0996cc4605bf624be51..bd0a1c8364755bf4be2ea3e58a06ef391a528321 100644 (file)
@@ -14,7 +14,27 @@ for (var i = 0; i < 20*1024; i++) {
 stored = {};
 storedBuffer = {};
 
+var useDomains = process.env.NODE_USE_DOMAINS;
+
+// set up one global domain.
+if (useDomains) {
+  var domain = require('domain');
+  var gdom = domain.create();
+  gdom.on('error', function(er) {
+    console.log('Error on global domain', er);
+    throw er;
+  });
+  gdom.enter();
+}
+
 var server = http.createServer(function (req, res) {
+
+  if (useDomains) {
+    var dom = domain.create();
+    dom.add(req);
+    dom.add(res);
+  }
+
   var commands = req.url.split("/");
   var command = commands[1];
   var body = "";