title: NodeJS cluster, Is it really needed?
body: <p>I decided that i want to investigate what is the best possible way to handle big amount of traffic with NodeJS server, i did a small test on 2 digital ocean servers which has 1GB RAM / 2 CPUs
  No-Cluster server code:</p>
  
  <pre><code>// Include Express
  var express = require('express');
  
  // Create a new Express application
  var app = express();
  
  // Add a basic route – index page
  app.get('/', function (req, res) {
      res.redirect('http://www.google.co.il');
  });
  
  // Bind to a port
  app.listen(3000);
  console.log('Application running');
  </code></pre>
  
  <p>Cluster server code:</p>
  
  <pre><code>    // Include the cluster module
  var cluster = require('cluster');
  // Code to run if we're in the master process
  if (cluster.isMaster) {
      // Count the machine's CPUs
      var cpuCount = require('os').cpus().length;
  
      // Create a worker for each CPU
      for (var i = 0; i &lt; cpuCount; i += 1) {
          cluster.fork();
      }
  // Code to run if we're in a worker process
  } else {
      // Include Express
      var express = require('express');
  
      // Create a new Express application
      var app = express();
  
      // Add a basic route – index page
      app.get('/', function (req, res) {
          res.redirect('http://www.walla.co.il');
      });
  
      // Bind to a port
      app.listen(3001);
      console.log('Application running #' + cluster.worker.id);
  }
  </code></pre>
  
  <p>And i sent stress test requests to those servers, i excepted that the cluster server will handle more requests but it didn't happen, both servers crashed on the same load, although 2 node services were running on the cluster and 1 service on the non-cluster.</p>
  
  <p>Now i wonder why ? Did i do anything wrong?</p>
  
  <p>Maybe something else is making the servers reach its breakpoint? both servers crashed at ~800 rps</p>