CentOS上Node.js性能优化策略
sudo yum update -y确保系统组件最新;通过NodeSource仓库(如curl -sL https://rpm.nodesource.com/setup_18.x | sudo bash -)安装最新LTS版本,避免旧版本bug与性能缺陷。async/await、Promise替代同步操作(如fs.readFileSync),避免阻塞事件循环;对于耗时任务(如加密计算),用setImmediate()或process.nextTick()将其放入下一个事件循环迭代,保证事件循环流畅。fs.createReadStream()/fs.createWriteStream()或http.request()的流模式,避免一次性加载全部数据到内存,降低内存占用。let/const替代var,用模块封装数据);及时移除无用的事件监听器(emitter.removeListener())和定时器(clearInterval());合理控制缓存(如用node-cache设置max参数,或用WeakMap存储临时对象),防止缓存无限增长。ALTER TABLE users ADD INDEX idx_name (name));使用连接池(如mysql2的pool.query())复用数据库连接,减少频繁建立/断开连接的开销。location ~* \.(jpg|css|js)$ { expires 30d; })、SSL/TLS终止(listen 443 ssl;)和负载均衡(upstream node_servers { server 127.0.0.1:3000; server 127.0.0.1:3001; }),减轻Node.js服务器压力;通过least_conn策略分配请求,提升并发处理能力。--max-old-space-size调整堆内存上限(如export NODE_OPTIONS="--max-old-space-size=4096"设置4GB),避免内存溢出;--optimize-for-size针对小内存设备优化,减少内存占用。process.memoryUsage()(查看heapUsed/rss)、node --inspect(开启调试)监控内存;用clinic.js(clinic memory -- node app.js)生成内存分析报告,定位泄漏点;借助Chrome DevTools的Memory面板(chrome://inspect)分析堆快照,找出持续增长的对象(如未释放的闭包、全局变量)。