在 CentOS 系统中,配置 Node.js 应用程序的内存限制可以通过设置 Node.js 的启动参数来实现。以下是一些方法来配置内存限制:
你可以在启动 Node.js 应用程序时,通过设置 NODE_OPTIONS
环境变量来限制内存使用。例如,如果你想将内存限制设置为 512MB,可以这样做:
export NODE_OPTIONS="--max-old-space-size=512"
node app.js
或者,你可以在 systemd
服务文件中设置这个环境变量。
systemd
服务文件如果你使用 systemd
来管理你的 Node.js 应用程序,可以在服务文件中添加 Environment
指令来设置内存限制。
打开你的服务文件,通常位于 /etc/systemd/system/your-app.service
。
在 [Service]
部分添加以下行:
[Service]
Environment="NODE_OPTIONS=--max-old-space-size=512"
ExecStart=/usr/bin/node /path/to/your/app.js
systemd
配置并重启服务:sudo systemctl daemon-reload
sudo systemctl restart your-app
pm2
进程管理器如果你使用 pm2
来管理你的 Node.js 应用程序,可以通过配置文件或命令行参数来设置内存限制。
ecosystem.config.js
文件:module.exports = {
apps: [{
name: 'your-app',
script: 'app.js',
env: {
NODE_OPTIONS: '--max-old-space-size=512'
}
}]
};
pm2
启动应用程序:pm2 start ecosystem.config.js
你可以直接在启动命令中设置内存限制:
pm2 start app.js --max-memory-restart 512M
cgroups
进行更细粒度的控制如果你需要更细粒度的控制,可以使用 cgroups
(控制组)来限制 Node.js 进程的内存使用。
cgroup-tools
:sudo yum install cgroup-tools
sudo cgcreate -g memory:/your-app
echo 536870912 | sudo tee /sys/fs/cgroup/memory/your-app/memory.limit_in_bytes
sudo cgclassify -g memory:/your-app <pid>
其中 <pid>
是你的 Node.js 进程的进程 ID。
通过这些方法,你可以在 CentOS 系统中配置 Node.js 应用程序的内存限制。选择适合你需求的方法进行配置即可。