在 CentOS 上运行 Node.js 时,“调内存”通常指调整 Node.js 进程可用的最大堆内存(V8 默认约 1.4GB / 2GB,容易 OOM)。下面按常见场景说明。
node --max-old-space-size=4096 app.js
表示最大老生代堆内存 4096 MB(4G)
其他常用参数:
node \
--max-old-space-size=4096 \
--max-semi-space-size=256 \
app.js
单位:MB
export NODE_OPTIONS="--max-old-space-size=4096"
node app.js
永久生效(写入环境变量):
echo 'export NODE_OPTIONS="--max-old-space-size=4096"' >> ~/.bashrc
source ~/.bashrc
pm2 start app.js --node-args="--max-old-space-size=4096"
或 ecosystem.config.js:
module.exports = {
apps: [{
name: "app",
script: "app.js",
node_args: "--max-old-space-size=4096"
}]
}
ENV NODE_OPTIONS="--max-old-space-size=4096"
或运行:
docker run -e NODE_OPTIONS="--max-old-space-size=4096" node:18
⚠️ 注意:
free -h
swapon --show
node -e "console.log(process.memoryUsage())"
或:
node -p "process.config.variables.node_use_node_snapshot"
❌ 改了系统内存但没改 Node
✅ Node 必须显式加参数
❌ 设太大导致系统 OOM
✅ 一般 ≤ 系统内存的 70%
如果你能告诉我:
我可以给你精确命令。