在 CentOS 上优化 Node.js 性能,通常可以从系统层面、Node.js 运行参数、代码与架构、监控调优几个方面入手。下面给你一个比较实用、可落地的优化清单。
Node.js 高并发时容易遇到 “EMFILE”
# 查看当前限制
ulimit -n
# 临时修改
ulimit -n 65535
# 永久修改
vi /etc/security/limits.conf
添加:
* soft nofile 65535
* hard nofile 65535
编辑:
vi /etc/sysctl.conf
示例优化:
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
生效:
sysctl -p
echo noop > /sys/block/sda/queue/scheduler
CentOS 自带版本通常很老
node -v
建议使用:
nvm 或官方 RPMNode.js 默认单线程
npm install pm2 -g
pm2 start app.js -i max
-i max 会按 CPU 核心数启动
node --max-old-space-size=2048 app.js
避免内存溢出(单位 MB)
NODE_ENV=productionexport NODE_ENV=production
关闭调试、降低日志开销
fs.readFileSync)好处:
示例:
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
}
top
htop
iostat
netstat -anp | grep node
pm2 monitclinic.jsnode --inspect✅ CentOS + Nginx + PM2 + Redis + Node LTS
如果你愿意,可以告诉我:
我可以直接给你一套针对你场景的优化方案。