使用--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可用内存量,以此解决内存不足而导致的程序崩溃问题。
原文链接:https://www.fairysoftware.com/tips/202405130001.html