Node.js: Utiliser plusieurs cœurs CPU

Cette documentation fait partie du guide Premiers pas. Consultez le guide complet ici : Apprenez comment déployer rapidement et en toute sécurité un service Node.js sur Stackhero.

👋 Bienvenue dans la documentation Stackhero !

Stackhero offre un environnement Node.js cloud prêt à l’emploi, conçu pour accélérer vos déploiements :

  • Déployez en production en quelques secondes avec un simple git push. Aucun outil supplémentaire ou configuration manuelle n’est requis.
  • Utilisez votre propre domaine et profitez de certificats HTTPS automatiques, assurant la sécurité de votre application sans configuration additionnelle.
  • Sauvegardes automatiques, mises à jour en un clic et tarification prévisible : concentrez-vous sur vos fonctionnalités, Stackhero gère l’infrastructure pour vous.
  • Infrastructure privée et dédiée pour une performance constante et une sécurité accrue.

Gagnez du temps et réduisez la charge opérationnelle : votre application peut être en ligne sur le Node.js cloud hosting de Stackhero en quelques minutes seulement.

Par défaut, Node.js utilise un seul cœur et un seul thread. Pour exploiter tous les cœurs CPU disponibles, vous pouvez utiliser l’API cluster de Node.js. Vous trouverez la documentation officielle ici : https://nodejs.org/api/cluster.html.

Voici un exemple simple qui crée un serveur HTTP utilisant tous les CPUs disponibles :

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 {
  // Les workers partagent toute connexion TCP, ici un serveur HTTP
  http.createServer((req, res) => {
    res.writeHead(200);
    res.end('hello world\n');
  }).listen(8000);

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