温馨提示×

centos怎么优化nodejs性能

小樊
44
2026-10-05 19:23:23
栏目: 编程语言

在 CentOS 上优化 Node.js 性能,通常可以从系统层面、Node.js 运行参数、代码与架构、监控调优几个方面入手。下面给你一个比较实用、可落地的优化清单。


一、系统与内核优化(CentOS)

1. 调整文件描述符限制(非常重要)

Node.js 高并发时容易遇到 “EMFILE”

# 查看当前限制
ulimit -n

# 临时修改
ulimit -n 65535

# 永久修改
vi /etc/security/limits.conf

添加:

* soft nofile 65535
* hard nofile 65535

2. 优化内核参数(TCP / 网络)

编辑:

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

3. 使用性能更好的文件系统 & IO 调度

  • 推荐使用 XFS / ext4
  • IO 调度(如果是 SSD):
echo noop > /sys/block/sda/queue/scheduler

二、Node.js 运行优化

1. 使用最新 LTS 版本 Node.js

CentOS 自带版本通常很老

node -v

建议使用:

  • Node.js 18 / 20 LTS
  • 使用 nvm 或官方 RPM

2. 合理使用多核(Cluster / PM2)

Node.js 默认单线程

使用 PM2(推荐)

npm install pm2 -g
pm2 start app.js -i max

-i max 会按 CPU 核心数启动


3. 开启 V8 优化参数(进阶)

node --max-old-space-size=2048 app.js

避免内存溢出(单位 MB)


4. 使用 NODE_ENV=production

export NODE_ENV=production

关闭调试、降低日志开销


三、代码与架构层面优化

1. 避免阻塞事件循环

  • 不用同步 API(fs.readFileSync)
  • 重度计算放到:
    • Worker Threads
    • 子进程
    • 微服务

2. 使用缓存

  • Redis 缓存热点数据
  • 静态资源使用 Nginx

3. 使用 Nginx 做反向代理

好处:

  • 静态资源
  • 负载均衡
  • Gzip
  • 限流

示例:

location / {
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header Host $host;
}

四、数据库与 IO 优化

  • 数据库连接池(MySQL / PostgreSQL)
  • MongoDB 加索引
  • 避免 N+1 查询
  • 使用异步批量写

五、监控与持续调优

1. 基础监控

top
htop
iostat
netstat -anp | grep node

2. Node.js 专用

  • pm2 monit
  • clinic.js
  • node --inspect

六、典型优化组合(推荐)

✅ CentOS + Nginx + PM2 + Redis + Node LTS


如果你愿意,可以告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • Node 版本
  • 应用类型(API / 爬虫 / 实时通信)

我可以直接给你一套针对你场景的优化方案。

0 踩