系统级基础配置
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(可用端口范围),提升TCP连接处理能力,修改后执行sysctl -p生效。Node.js版本与依赖管理
nvm(Node Version Manager)安装和管理多版本Node.js,命令如curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash安装,nvm install --lts安装LTS版本,nvm use --lts切换,方便版本回滚和测试。代码级性能优化
async/await、Promise替代同步操作(如fs.readFileSync),避免阻塞事件循环。例如,用fs.promises.readFile替代fs.readFileSync读取文件,保持事件循环流畅。stream模块处理大文件(如视频、日志),通过fs.createReadStream分块读取,减少内存占用;合理使用缓存(如Redis)存储频繁访问的数据,降低数据库查询次数。Map替代Object进行高频查找),减少不必要的计算和时间复杂度。进程与并发优化
cluster模块创建多个工作进程,充分利用多核CPU。示例代码:const cluster = require('cluster'); const numCPUs = require('os').cpus().length; if (cluster.isMaster) { for (let i = 0; i < numCPUs; i++) cluster.fork(); } else { // 启动服务器 },提升并发处理能力。worker_threads模块创建子线程,避免阻塞主线程。例如:const { Worker } = require('worker_threads'); new Worker('./heavy-task.js'),将耗时任务分离到独立线程。进程管理与监控
pm2(进程管理器)管理Node.js进程,命令如pm2 start app.js -i max(根据CPU核心数启动最大进程数)、pm2 monit(监控资源使用)、pm2 logs(查看日志),支持自动重启、负载均衡和零停机部署。node --inspect启动调试模式,结合Chrome DevTools分析CPU和内存使用;或用clinic.js生成性能报告(如clinic doctor -- node app.js),定位性能瓶颈(如慢查询、内存泄漏)。网络与反向代理配置
sudo apt install nginx),配置反向代理将请求转发到Node.js进程。示例配置:location / { proxy_pass http://localhost:3000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; },提升静态文件处理能力、负载均衡和SSL卸载。listen 443 ssl http2;)支持多路复用,减少连接建立开销;开启Keep-Alive(keepalive_timeout 65;)复用TCP连接,降低延迟。系统资源监控
top(查看CPU/内存使用)、htop(增强版top)、vmstat(查看系统整体性能)、iostat(查看磁盘IO)监控系统资源,及时发现瓶颈(如CPU过高、内存不足)。