Если NodeJS приложение не оптимально использует память и вы используете PM2, то решение есть.
1. При запуске через консоль, установите максимальный лимит по RAM для NodeJS приложения
pm2 start server.bundle.js --max-memory-restart 300M
2. Либо в конфиге ecosystem.config.js для PM2
module.exports = {
apps: [{
name: 'api',
script: 'server.bundle.js',
max_memory_restart: '300M'
}]
}
Как только оно превысит 300 мегабайт, то PM2 просто сделает restart вашего приложения. И если у вас запущено несколько приложений в PM2 как cluster, то пользователи даже не заметят этого.