在 CentOS 系统中,对 Node.js 应用进行内存调优通常涉及以下几个方面:
增加 Node.js 进程的内存限制:
默认情况下,Node.js 进程的内存限制可能较低。你可以通过设置 --max-old-space-size
参数来增加内存限制。例如,将内存限制增加到 4GB:
node --max-old-space-size=4096 your_script.js
如果你使用的是 PM2 或其他进程管理工具,可以在配置文件中设置这个参数。例如,使用 PM2 的 ecosystem.config.js
文件:
module.exports = {
apps: [{
name: 'your-app',
script: 'your_script.js',
instances: 'max', // 或者指定具体的实例数量
exec_mode: 'cluster',
max_memory_restart: '4G', // 设置内存限制
}]
};
然后使用 PM2 启动应用:
pm2 start ecosystem.config.js
优化 Node.js 应用代码:
heapdump
和 memwatch-next
来检测和分析内存泄漏。调整操作系统参数:
增加文件描述符限制:Node.js 应用可能需要处理大量的文件描述符。可以通过以下命令增加文件描述符限制:
ulimit -n 65535
调整虚拟内存设置:确保系统有足够的虚拟内存。可以通过调整 /etc/sysctl.conf
文件中的参数来优化虚拟内存设置。例如:
vm.swappiness=10
vm.vfs_cache_pressure=50
然后应用更改:
sysctl -p
监控和日志:
pm2
, nodemon
, forever
等工具来监控 Node.js 应用的运行状态和内存使用情况。通过以上步骤,你可以有效地对 CentOS 系统中的 Node.js 应用进行内存调优。