Node.js: Run your code on multiple CPU cores

This documentation is part of the Getting started guide. You can view the complete guide here: Learn how to quickly and securely deploy a Node.js service on Stackhero.

👋 Welcome to the Stackhero documentation!

Stackhero offers a ready-to-use Node.js cloud solution designed to help you move faster:

  • Deploy to production in seconds with a simple git push. No additional tools or manual configuration needed.
  • Use your own domain and take advantage of automatic HTTPS certificate setup, keeping your application secure with no extra steps.
  • Enjoy automatic backups, one-click updates, and predictable, transparent pricing so you can focus on building features while Stackhero manages the infrastructure.
  • Benefit from dedicated, private infrastructure for optimal performance and enhanced security.

Save time and simplify your operations: you can have your application running on Stackhero's Node.js cloud hosting in just a few minutes.

By default, Node.js uses a single core and one thread. To take advantage of all available CPU cores, you can use the Node.js cluster API. The official documentation is available here: https://nodejs.org/api/cluster.html.

Here’s a simple example that creates an HTTP server using all available CPUs:

const cluster = require('cluster');
const http = require('http');
const cpusCount = require('os').cpus().length;

if (cluster.isMaster) {
  console.log(`Master ${process.pid} is running`);

  // Fork workers
  for (let i = 0; i < cpusCount; i++) {
    cluster.fork();
  }

  cluster.on('exit', (worker, code, signal) => {
    console.log(`Worker ${worker.process.pid} died`);
  });
} else {
  // Workers share any TCP connection, in this case, an HTTP server
  http.createServer((req, res) => {
    res.writeHead(200);
    res.end('hello world\n');
  }).listen(8000);

  console.log(`Worker ${process.pid} started`);
}