Node.js: Utilizzare tutti i core CPU disponibili
Questa documentazione fa parte della guida Prime operazioni. Consulta la guida completa qui: Scoprite come distribuire rapidamente e in sicurezza un servizio Node.js su Stackhero.
👋 Benvenuti nella documentazione di Stackhero!
Stackhero offre una soluzione Node.js cloud pronta all'uso che fornisce numerosi vantaggi, tra cui:
- Distribuisci la tua applicazione in pochi secondi con un semplice
git push.- Usa il tuo nome di dominio e beneficia della configurazione automatica dei certificati HTTPS per una sicurezza potenziata.
- Goditi la tranquillità con backup automatici, aggiornamenti con un clic, e una tariffazione semplice, trasparente e prevedibile.
- Ottieni prestazioni ottimali e una sicurezza robusta grazie a una VM privata e dedicata.
Risparmia tempo e semplificati la vita: bastano solo 5 minuti per provare la soluzione di hosting cloud Node.js di Stackhero!
Per impostazione predefinita, Node.js utilizza un solo core e un solo thread. Per sfruttare tutti i core CPU disponibili, potete utilizzare l'API cluster di Node.js. La documentazione ufficiale è disponibile qui: https://nodejs.org/api/cluster.html.
Ecco un esempio semplice che crea un server HTTP utilizzando tutte le CPU disponibili:
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 dei worker
for (let i = 0; i < cpusCount; i++) {
cluster.fork();
}
cluster.on('exit', (worker, code, signal) => {
console.log(`Worker ${worker.process.pid} died`);
});
} else {
// I worker condividono qualsiasi connessione TCP, in questo caso un server HTTP
http.createServer((req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(8000);
console.log(`Worker ${process.pid} started`);
}