这是最基础的配置方式,用于设置Node.js应用的最大内存限制(单位:MB)。启动应用时直接添加参数即可,例如将内存限制为512MB:

node --max-old-space-size=512 app.js适用于临时测试或直接运行的场景,但每次启动都需手动输入,不适合长期运行的生产环境。
若需避免每次启动都输入参数,可通过设置NODE_OPTIONS环境变量实现。在当前终端会话中执行:
export NODE_OPTIONS="--max-old-space-size=1024"node app.js若需永久生效,将上述命令添加到用户配置文件(如~/.bashrc或~/.bash_profile)中,然后执行source ~/.bashrc使配置生效。这种方式适用于个人开发环境。
若应用通过systemd管理(如CentOS的默认服务管理方式),可在服务文件中添加Environment指令设置内存限制。步骤如下:
/etc/systemd/system/your-app.service):sudo vi /etc/systemd/system/your-app.service[Service]部分添加以下内容(以1GB为例):[Service]Environment="NODE_OPTIONS=--max-old-space-size=1024"ExecStart=/usr/bin/node /path/to/your-app.jssystemd配置并重启服务:sudo systemctl daemon-reloadsudo systemctl restart your-app这种方式适用于生产环境,能确保应用启动时自动应用内存限制。
PM2是常用的Node.js进程管理工具,支持通过配置文件或命令行参数设置内存限制。
ecosystem.config.js):创建或编辑配置文件,添加max_memory_restart字段(以2GB为例):module.exports = {apps: [{name: 'your-app',script: 'app.js',env: {NODE_OPTIONS: '--max-old-space-size=2048'},max_memory_restart: '2G' // 内存超过2GB时自动重启}]};启动应用:pm2 start ecosystem.config.js。pm2 start app.js --max-memory-restart 2GPM2还支持监控内存使用、自动重启等功能,适合生产环境。
若需要对内存使用进行更严格的限制(如限制单个进程的内存使用),可使用cgroups(控制组)。步骤如下:
cgroup-tools:sudo yum install cgroup-toolssudo cgcreate -g memory:/your-appecho 536870912 | sudo tee /sys/fs/cgroup/memory/your-app/memory.limit_in_bytesPID),然后执行:sudo cgclassify -g memory:/your-app <PID>这种方式适用于需要严格隔离资源的场景(如容器环境)。
heapdump、memwatch-next等工具排查内存泄漏问题。