使用--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