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.
👋 Benvenuto nella documentazione di Stackhero!
Stackhero offre un ambiente Node.js cloud pronto all'uso, progettato per aiutarti a lavorare più velocemente:
- Distribuisci in produzione in pochi secondi con un semplice
git push. Non sono necessari strumenti aggiuntivi o configurazioni manuali.- Utilizza il tuo dominio e approfitta dei certificati HTTPS automatici, mantenendo la tua applicazione sicura senza configurazioni extra.
- Backup automatici, aggiornamenti con un clic e prezzi prevedibili ti permettono di concentrarti sulle funzionalità, mentre Stackhero gestisce l'infrastruttura per te.
- Basato su infrastruttura privata e dedicata per prestazioni costanti e sicurezza elevata.
Risparmia tempo e riduci la complessità operativa: puoi avere la tua applicazione in esecuzione su l'hosting Node.js cloud di Stackhero in pochi minuti.
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`);
}