在 Ubuntu 上 Node.js 占用高内存 通常有下面几类原因,从“正常行为”到“真实问题”都有,你可以对照排查。
Node.js 使用 V8 引擎:
RES 高但 heapUsed 低,通常正常查看方式:
node -e "console.log(process.memoryUsage())"
64 位 Node.js:
如果服务长期运行,内存会“慢慢涨”。
常见问题:
setInterval)未清除示例(错误):
const cache = {};
setInterval(() => {
cache[Date.now()] = new Array(1e6);
}, 1000);
例如:
fs.readFileSync('bigfile.log'); // 直接爆内存
✅ 建议:
以下类型库容易吃内存:
Ubuntu 上常见:
查看进程:
ps aux | grep node
top -c
htop
watch -n 5 "ps -o pid,rss,cmd -p <pid>"
--inspect 分析node --inspect app.js
用 Chrome:
chrome://inspect
node --max-old-space-size=512 app.js
✅ 正确做法:
pm2 start app.js --max-memory-restart 500M
❌ 不推荐:
你可以补充:
node -v)我可以直接帮你定位是哪一类问题。