Skip to content

Instantly share code, notes, and snippets.

@poying
Last active August 29, 2015 14:17
Show Gist options
  • Save poying/6c7e8762c5c8908279e8 to your computer and use it in GitHub Desktop.
Save poying/6c7e8762c5c8908279e8 to your computer and use it in GitHub Desktop.
Node.js + NginX benchmarks

http

Running 30s test @ http://http.trynginx.com:8080/
  100 threads and 5000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   449.33ms  157.09ms 793.53ms   63.26%
    Req/Sec    18.36     34.73   463.00     92.53%
  50663 requests in 30.08s, 9.42MB read
  Socket errors: connect 244, read 5912, write 117, timeout 62001
Requests/sec:   1684.44
Transfer/sec:    320.77KB

http (node cluster)

Running 30s test @ http://http.trynginx.com:8080/
  100 threads and 5000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   226.32ms  548.99ms   5.67s    97.17%
    Req/Sec   110.24     73.22   731.00     68.28%
  128721 requests in 30.10s, 23.94MB read
  Socket errors: connect 240, read 14438, write 19, timeout 59115
Requests/sec:   4276.51
Transfer/sec:    814.37KB

http (multiple server)

Running 30s test @ http://chttp.trynginx.com:8080/
  100 threads and 5000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   507.03ms  424.91ms   5.94s    51.36%
    Req/Sec    64.67     81.51     0.99k    88.81%
  114308 requests in 30.03s, 21.26MB read
  Socket errors: connect 240, read 14872, write 23, timeout 59339
Requests/sec:   3806.24
Transfer/sec:    724.82KB

unix domain socket

Running 30s test @ http://unix.trynginx.com:8080/
  100 threads and 5000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   380.15ms  176.09ms 724.48ms   68.64%
    Req/Sec    52.03    109.02     1.83k    89.34%
  83396 requests in 30.05s, 15.51MB read
  Socket errors: connect 243, read 14085, write 62, timeout 61451
Requests/sec:   2775.15
Transfer/sec:    528.47KB

unix domain socket (node cluster)

Running 30s test @ http://unix.trynginx.com:8080/
  100 threads and 5000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   298.16ms  187.47ms 868.04ms   65.58%
    Req/Sec    81.11    129.80     1.16k    82.56%
  133012 requests in 30.06s, 24.74MB read
  Socket errors: connect 240, read 13537, write 30, timeout 60115
Requests/sec:   4425.36
Transfer/sec:    842.72KB

unix domain socket (multiple server)

Running 30s test @ http://cunix.trynginx.com:8080/
  100 threads and 5000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   491.50ms  316.44ms   1.01s    57.07%
    Req/Sec    68.49    119.71     1.30k    85.89%
  105031 requests in 30.04s, 19.53MB read
  Socket errors: connect 242, read 6655, write 18, timeout 61875
Requests/sec:   3496.94
Transfer/sec:    665.92KB
@poying
Copy link
Author

poying commented Mar 20, 2015

'use strict';

var http = require('http');

var server = http.createServer(function (req, res) {
    var body = new Buffer('看到 Win、Carl 大大還不下跪!');
    res.setHeader('Server', 'node');
    res.setHeader('Connection', 'keep-alive');
    res.setHeader('Content-Type', 'text/plain');
    res.setHeader('Content-Length', body.length);
    res.end(body);
});

server.listen(process.env.NODE_PORT, function () {
    console.log(process.env.NODE_PORT);
});
'use strict';

var http = require('http');
var cluster = require('cluster');
var numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
    for (var i = 0; i < numCPUs; i++) {
        cluster.fork();
    }
    cluster.on('exit', function(worker, code, signal) {
        console.log('worker ' + worker.process.pid + ' died');
    });
} else {

    var server = http.createServer(function (req, res) {
        var body = new Buffer('看到 Win、Carl 大大還不下跪!');
        res.setHeader('Server', 'node');
        res.setHeader('Connection', 'keep-alive');
        res.setHeader('Content-Type', 'text/plain');
        res.setHeader('Content-Length', body.length);
        res.end(body);
    });

    server.listen(process.env.NODE_PORT, function () {
        console.log(process.env.NODE_PORT);
    });

}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment