Wie verwende ich Node.js-Cluster mit meiner einfachen Express-App?

- Ich habe eine einfache App erstellt, die Daten (50 Elemente) aus einer Redis-Datenbank abruft und bei localhost hochlädt. Ich habe eine ApacheBench (c = 100, n = 50000) und erhalte auf einem Dual-Core-T2080 mit 1,73 GHz (meinem 6-jährigen Laptop) halbwegs ordentliche 150 Anfragen / Sek., Aber die Prozessorauslastung ist sehr enttäuschend gezeigt:

Es wird nur ein Kern verwendet, der dem Design in Node entspricht, aber ich denke, ich kann meine Anforderungen / Sek. Auf ~ 300 fast verdoppeln, vielleicht sogar noch mehr, wenn ich Node.js-Cluster verwenden kann. Ich habe ein bisschen rumgespielt, aber ich konnte nicht herausfinden, wie ich das anstellen sollCode hier angegeben zur Verwendung mit meiner App, die unten aufgeführt ist:

var 
    express = require( 'express' ),
    app     = express.createServer(),
    redis   = require( 'redis' ).createClient();

app.configure( function() {
    app.set( 'view options', { layout: false } );
    app.set( 'view engine', 'jade' );
    app.set( 'views', __dirname + '/views' );
    app.use( express.bodyParser() );
} );

function log( what ) { console.log( what ); }

app.get( '/', function( req, res ) {
    redis.lrange( 'items', 0, 50, function( err, items ) {
            if( err ) { log( err ); } else {
                res.render( 'index', { items: items } );
            }
    });
});

app.listen( 8080 );

Ich möchte auch betonen, dass die App I / O-intensiv ist (nicht CPU-intensiv, was so etwas gemacht hätte)Threads-a-Gogo eine bessere Wahl als Cluster).

Würde mich über Hilfe freuen, um das herauszufinden.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage