node.jscapacity

How to increase event loop capacity in nodejs?


I know that Node.js uses a single-thread and an event loop to process requests only processing one at a time (which is non-blocking). But i am unable to determine Event loop capacity to run 100k request per second.

Here i want to capacity planning for nodejs server to handle the 100k request per second.

Please let me know how can i determine the capacity of event loop to increase capacity.


Solution

  • A single instance of Node.js runs in a single thread. To take advantage of multi-core systems the user will sometimes want to launch a cluster of Node.js processes to handle the load.

    More info here and here

    For the reference check following code for simple implementation of cluster in node.js

    var cluster = require('cluster');  
    var express = require('express');  
    var numCPUs = require('os').cpus().length;
    
    if (cluster.isMaster) {  
        for (var i = 0; i < numCPUs; i++) {
            // Create a worker
            cluster.fork();
        }
    } else {
        // Workers share the TCP connection in this server
        var app = express();
    
        app.get('/', function (req, res) {
            res.send('Hello World!');
        });
    
        // All workers use this port
        app.listen(8080);
    }
    

    Cluster is an extensible multi-core server manager for node.js for more source check here.