系统级基础优化
sudo apt update && sudo apt upgrade -y,确保Debian系统和Node.js依赖包为最新版本,获取性能改进与安全补丁。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使配置生效。Node.js版本与环境管理
nvm(Node Version Manager)安装指定版本(如nvm install 18.16.0),避免旧版本的性能缺陷与安全漏洞。--max-old-space-size参数增大老生代内存(如NODE_OPTIONS="--max-old-space-size=4096"设置4GB),防止内存溢出。代码级性能优化
fs.promises.readFile()、async/await替代同步方法(如fs.readFileSync()),避免阻塞事件循环。Stream(如fs.createReadStream()、res.write()),减少内存占用。var),及时移除无用的事件监听器(如emitter.removeListener()),选择高效数据结构(如Map/Set替代普通对象,Set用于唯一值存储)。memoize库),避免重复计算。const { Worker, isMainThread, parentPort } = require('worker_threads');
if (isMainThread) {
const worker = new Worker(__filename);
worker.on('message', (result) => console.log(`Result: ${result}`));
worker.postMessage('start');
} else {
const sum = Array(1e7).fill(1).reduce((a, b) => a + b);
parentPort.postMessage(sum);
}
```。
进程与并发优化
os.cpus().length获取CPU核心数,创建多个工作进程,共享端口提升并发能力。示例如下:const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
for (let i = 0; i < numCPUs; i++) cluster.fork();
cluster.on('exit', (worker) => cluster.fork());
} else {
http.createServer((req, res) => res.end('Hello World')).listen(3000);
}
```。
pm2(npm install pm2 -g),通过pm2 start app.js --name "my-app"启动应用,支持进程守护、日志管理(pm2 logs)、负载均衡(自动重启崩溃进程)。网络与反向代理优化
sudo apt install nginx),配置反向代理将请求转发至Node.js应用(如监听80端口,转发至3000端口),提升静态文件处理能力、负载均衡(多Node.js实例)及SSL终止(HTTPS加密)。示例如下:server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
```。
性能监控与分析
perf_hooks模块监控性能(如performance.now()计算函数执行时间),console.trace()输出调用栈,分析慢函数。