当你的内存量不足(比如云服务器上),可以给系统设置虚拟内存,然后用这个方法增加NodeJS可用内存量,以此解决内存不足而导致的程序崩溃问题。
具体的,就是使用--max-old-space-size参数来增加V8引擎的最大内存限制。
当使用 Node.js 的 cluster 模块来创建子进程时,你不能直接在 cluster.fork() 方法中设置 --max-old-space-size 选项。
你可以通过一种间接的方式来实现。例如,你可以在主进程的代码中设置环境变量,然后启动子进程:
// your-cluster-main-file.js
process.env.NODE_OPTIONS = '--max-old-space-size=4096'; const cluster = require('cluster');
const os = require('os');
const numCPUs = os.cpus().length; if (cluster.isMaster) { console.log(`Master ${process.pid} is running`); // Fork workers. for (let i = 0; i < numCPUs; i++) { cluster.fork(); } cluster.on('exit', (worker, code, signal) => { console.log(`worker ${worker.process.pid} died`); });
} else { // Workers can share any TCP connection // In this case, it is an HTTP server require('./your-worker-file.js');
}
原文链接:NodeJS中,给cluster启动的工作子进程设置--max-old-space-size(内存使用量)