1. 系统配置优化
sudo apt update && sudo apt upgrade -y,确保内核及依赖库为最新版本,修复潜在性能问题与安全漏洞。ulimit -n 65535;永久生效需编辑/etc/security/limits.conf,添加* soft nofile 65535和* hard nofile 65535。/etc/sysctl.conf,添加net.core.somaxconn = 65535(增大连接队列长度)、net.ipv4.tcp_max_syn_backlog = 65535(提升SYN连接处理能力)、net.ipv4.ip_local_port_range = 1024 65535(扩大可用端口范围),运行sudo sysctl -p使配置生效。2. Node.js版本与进程管理
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash安装NVM,再执行nvm install --lts安装最新稳定版Node.js,避免旧版本的性能缺陷。npm install pm2 -g),通过pm2 start app.js -i max启动集群(max表示按CPU核心数自动创建进程),利用多核CPU提升并发处理能力;PM2还支持日志管理、零停机重启等功能。3. 代码层性能优化
fs.promises.readFile()替代fs.readFileSync()、数据库查询采用异步API(如mongoose.find().exec()),避免阻塞事件循环;必要时用setImmediate()或process.nextTick()将耗时任务拆分至下一事件循环。var声明),及时移除无用的事件监听器(emitter.removeListener());选择高效数据结构(如用Set替代数组做快速查找,用Map替代普通对象存储键值对)。memoize库缓存函数返回值),避免重复计算。fs.createReadStream()替代fs.readFileSync()、stream.pipeline()替代一次性读取,降低内存占用(尤其适合上传/下载场景)。4. 数据库性能优化
WHERE、JOIN条件中的字段)创建索引,加速数据检索(如MySQL用ALTER TABLE users ADD INDEX idx_email (email))。SELECT *(只查询所需字段),使用EXPLAIN分析查询计划,添加适当的LIMIT和OFFSET(分页查询),减少不必要的数据传输。pg-pool(PostgreSQL)、mysql2/promise(MySQL)等库复用数据库连接,避免频繁创建/销毁连接的开销(默认连接数可根据并发量调整,如poolSize: 10)。5. 外部组件与监控
location /static { alias /var/www/static; }),减轻Node.js服务器负担;开启Gzip压缩(gzip on; gzip_types text/plain application/json),减少传输体积;设置负载均衡(upstream node_servers { server 127.0.0.1:3000; server 127.0.0.1:3001; }),分散请求压力。node --prof生成CPU分析报告(node --prof app.js,再用node --prof-process isolate-0xnnnnnnnnnnnn-v8.log > processed.txt解析),定位性能瓶颈;或使用New Relic、AppDynamics等第三方工具实现实时监控(涵盖响应时间、错误率、内存使用等指标)。info/warn/error),启用异步日志记录(避免阻塞主线程);通过ELK Stack(Elasticsearch+Logstash+Kibana)或Loki集中存储与分析日志,快速排查问题。