node.jsclusterperformancenode
Node.js Cluster - 멀티코어 활용과 성능 최적화
조회 0
Node.js는 기본적으로 단일 스레드로 동작하지만, Cluster 모듈을 사용하면 멀티코어를 활용할 수 있습니다.
이 글에서는 Cluster로 CPU 집약적 작업의 성능을 향상시키는 방법을 정리합니다.
1. 기본 Cluster
const cluster = require("cluster");
const http = require("http");
const numCPUs = require("os").cpus().length;
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on("exit", (worker, code, signal) => {
console.log(`Worker ${worker.process.pid} died`);
cluster.fork(); // 재시작
});
} else {
http.createServer((req, res) => {
res.writeHead(200);
res.end("Hello World\n");
}).listen(3000);
}
2. Worker Threads
const { Worker, isMainThread, parentPort } = require();
(isMainThread) {
worker = (__filename);
worker.(, {
.(, msg);
});
worker.();
} {
parentPort.(, {
.(, msg);
parentPort.();
});
}