1. 系统级基础优化
curl -sL https://deb.nodesource.com/setup_22.x | sudo -E bash - && sudo apt install nodejs -y。/etc/sysctl.conf,添加或修改以下参数以优化网络性能:net.core.somaxconn = 4096(最大连接队列长度)、net.ipv4.tcp_max_syn_backlog = 4096(SYN队列长度)、net.ipv4.tcp_tw_reuse = 1(复用TIME-WAIT连接)。运行sudo sysctl -p使配置生效。/etc/security/limits.conf,添加* soft nofile 65535和* hard nofile 65535(允许单个进程打开的最大文件数),避免高并发时因文件描述符耗尽导致错误。2. 应用代码层优化
fs.promises.readFile()、async/await替代同步方法(如fs.readFileSync()),避免阻塞事件循环。例如,处理文件时使用流(fs.createReadStream())而非一次性加载整个文件到内存。process.memoryUsage()定期监控内存使用情况;对于大文件或数据,使用流式处理(如stream.pipeline())减少内存占用。Set代替数组进行快速查找,用Map代替普通对象提高键值对访问效率)。node-cache),降低数据库负载并提高响应速度。3. 进程与并发优化
cluster模块创建多个工作进程(数量等于CPU核心数),共享同一个端口,提高并发处理能力。示例代码:const cluster = require('cluster');
const os = require('os');
if (cluster.isMaster) {
for (let i = 0; i < os.cpus().length; i++) cluster.fork();
cluster.on('exit', (worker) => console.log(`Worker ${worker.process.pid} died`));
} else {
require('./app.js'); // 启动应用
}
```。
pm2 start app.js -i max(-i max表示根据CPU核心数自动创建进程)。4. 反向代理与负载均衡
server {
listen 80;
server_name example.com;
location /static/ { alias /var/www/static/; } # 静态文件目录
location / {
proxy_pass http://localhost:3000; # 转发到Node.js应用
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```。
5. 性能监控与分析
--inspect标志启动应用(node --inspect app.js),通过Chrome开发者工具的Performance面板分析CPU、内存使用情况;使用--prof生成性能分析报告(node --prof app.js),定位热点函数。