【发布时间】:2021-10-19 11:45:04
【问题描述】:
目前,使用 pm2 在集群模式下运行我的产品应用程序以创建多个实例。但随着时间的推移,我可以看到内存使用量的增加。需要手动重启应用怎么解决?
pm2 start app.js -i 0 -o "/dev/null"
【问题讨论】:
-
不看代码我们无法解决这个问题。
标签: node.js pm2 node-cluster
目前,使用 pm2 在集群模式下运行我的产品应用程序以创建多个实例。但随着时间的推移,我可以看到内存使用量的增加。需要手动重启应用怎么解决?
pm2 start app.js -i 0 -o "/dev/null"
【问题讨论】:
标签: node.js pm2 node-cluster
我也面临同样的问题。这是因为 pm2 存在内存泄漏问题。
const cluster = require('cluster')
require('events').EventEmitter.defaultMaxListeners = Infinity;
const OS = require('os');
process.env.UV_THREADPOOL_SIZE = OS.cpus().length
let app = express();
const numCPUs = parseInt(process.env.NO_OF_CPU || 1)
if(cluster.isMaster) {
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
} else {
// start server on port
let appServer = app.listen(process.env.OUTBOUND_PORT, () => {
console.log(`server listening on ${process.env.OUTBOUND_PORT} `);
});
}
【讨论】:
您可以:
--max-memory-restart 选项,让 pm2 在您的应用实例泄漏过多时重新启动它们【讨论】: