Node.js: Use multiple CPU cores
This documentation is part of the Getting started guide. You can view the complete guide here: Discover how to quickly and securely deploy a Node.js service on Stackhero.
👋 Welcome to the Stackhero documentation!
Stackhero provides a ready-to-use Node.js cloud solution designed to help you move faster:
- Deploy your application to production in seconds with a simple
git push. No additional tools or manual configuration required.- Use your own domain and benefit from automatic HTTPS certificate setup, ensuring your application is secure without any extra steps.
- Enjoy automatic backups, one-click updates, and clear, predictable pricing so you can focus on developing features while Stackhero manages the infrastructure.
- Experience optimal performance and enhanced security thanks to a private, dedicated VM.
Save time and simplify your operations: it only takes a few minutes to try out Stackhero's Node.js cloud hosting solution!
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 is 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`);
}