温馨提示×

centos nodejs如何调内存

小樊
46
2026-09-14 23:24:47
栏目: 编程语言

在 CentOS 上运行 Node.js 时,“调内存”通常指调整 Node.js 进程可用的最大堆内存(V8 默认约 1.4GB / 2GB,容易 OOM)。下面按常见场景说明。


一、临时调整(推荐先这样测)

1️⃣ 启动 Node 时指定内存

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


二、通过环境变量(更通用)

2️⃣ 使用 NODE_OPTIONS(CentOS 常用)

export NODE_OPTIONS="--max-old-space-size=4096"
node app.js

永久生效(写入环境变量):

echo 'export NODE_OPTIONS="--max-old-space-size=4096"' >> ~/.bashrc
source ~/.bashrc

三、PM2 部署(生产环境最常见)

3️⃣ PM2 调整内存

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"
  }]
}

四、Docker(CentOS + Docker)

4️⃣ Docker 中调内存

ENV NODE_OPTIONS="--max-old-space-size=4096"

或运行:

docker run -e NODE_OPTIONS="--max-old-space-size=4096" node:18

⚠️ 注意:

  • Docker 内存限制要 ≥ Node 设置
  • 否则会被 OOM Killer 杀掉

五、CentOS 系统层面注意

5️⃣ 查看系统内存

free -h

6️⃣ 避免 swap 影响性能

swapon --show

六、确认是否生效

node -e "console.log(process.memoryUsage())"

或:

node -p "process.config.variables.node_use_node_snapshot"

七、常见误区

❌ 改了系统内存但没改 Node
✅ Node 必须显式加参数

❌ 设太大导致系统 OOM
✅ 一般 ≤ 系统内存的 70%


如果你能告诉我:

  • CentOS 版本
  • Node 版本
  • 是否用 PM2 / Docker / 裸跑

我可以给你精确命令

0