系统配置优化
sudo apt update && sudo apt upgrade -y确保Debian系统为最新状态;编辑/etc/sysctl.conf添加net.core.somaxconn = 65535、net.ipv4.tcp_max_syn_backlog = 65535、net.ipv4.ip_local_port_range = 1024 65535等参数,运行sudo sysctl -p使设置生效,提升网络连接处理能力。ulimit -n 65535临时增加当前会话的文件描述符限制;编辑/etc/security/limits.conf添加* soft nofile 65535、* hard nofile 65535,永久生效,避免高并发下因文件描述符耗尽导致的性能瓶颈。Node.js版本与环境管理
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash安装NVM,然后执行nvm install --lts安装最新的LTS版本(如20.x),LTS版本经过充分测试且包含性能优化,比旧版本更稳定高效。代码层性能优化
fs.promises.readFile()代替fs.readFileSync()),避免同步操作阻塞事件循环;控制异步并发量(如用async.mapLimit限制并发数),防止资源耗尽。let/const代替var),及时移除无用的事件监听器(如emitter.removeListener);选择合适的数据结构(如用Set代替数组进行快速查找,用Map代替普通对象提高键值访问效率),减少内存占用和计算时间。setImmediate或process.nextTick将耗时操作放入下一个事件循环迭代,避免长时间阻塞事件循环;用for循环代替forEach(for循环性能更高,尤其在处理大数据量时)。fs.createReadStream读取大文件、res.write分块发送响应,避免一次性加载全部数据到内存,显著降低内存占用(尤其适合处理视频、日志等大文件)。进程与并发优化
cluster模块创建多个工作进程(数量等于CPU核心数,require('os').cpus().length),主进程负责fork工作进程,工作进程共享端口,充分利用多核CPU资源,提升并发处理能力(示例代码:主进程fork工作进程,工作进程启动HTTP服务器)。npm install pm2 -g,通过pm2 start app.js --name "my-app"启动应用,PM2支持负载均衡(自动分配请求到多个工作进程)、日志管理(pm2 logs查看实时日志)、自动重启(进程崩溃时自动恢复),提升应用可靠性和性能。网络与反向代理优化
upstream nodejs_pool { server 127.0.0.1:3000; },设置location / { proxy_pass http://nodejs_pool; },将静态文件请求交给Nginx处理(如location ~* \.(jpg|css|js)$ { root /var/www/html; }),减轻Node.js服务器负担,提升整体响应速度。缓存策略优化
node-cache模块(const NodeCache = require('node-cache'); const myCache = new NodeCache({ stdTTL: 100 }))缓存频繁访问的数据(如数据库查询结果),设置TTL(生存时间,如100秒),减少重复计算或数据库查询。redis模块连接Redis服务器(const client = redis.createClient(); client.set('key', 'value', redis.print)),Redis支持持久化和分布式缓存,适合高并发场景,提升数据访问速度。res.setHeader('Cache-Control', 'max-age=31536000')设置HTTP缓存头,让浏览器缓存静态资源(如图片、CSS、JS),减少客户端与服务器之间的数据传输,提升页面加载速度。数据库优化
username、id)创建索引(如MongoDB的db.collection('users').createIndex({ username: 1 })),加快查询速度;优化SQL语句(如避免SELECT *,只查询所需字段),减少数据库负载。mysql.createPool、mongoose.connect的poolSize选项)复用数据库连接,避免频繁创建和销毁连接的开销;使用批量操作(如INSERT INTO table VALUES (?, ?), (?, ?))减少数据库交互次数,提升写入性能。性能监控与分析
node --inspect启动调试模式,通过Chrome DevTools分析CPU和内存使用情况;用node --prof生成性能分析报告(node --prof app.js,然后用node --prof-process isolate-0xnnnnnnnnnnnn-v8.log > processed.txt解析),定位性能瓶颈;使用PM2的pm2 monit监控CPU、内存、日志,或New Relic、Datadog等第三方工具进行实时性能监控,快速发现并解决问题。