Linux环境下Node.js性能测试实操指南
一 测试流程与准备
二 常用压测工具与命令示例
ab -c 100 -t 30 http://localhost:3000/(-c 并发连接数,-t 持续时间秒)wrk -t12 -c400 -d30s http://localhost:3000/(12 线程、400 连接、30 秒)autocannon -c 100 -d 30 http://localhost:3000/artillery quick -n 1000 -c 10 http://localhost:3000 或 artillery run script.yml三 基准测试与微基准
const { performance } = require('perf_hooks');
const start = performance.now();
// ... 被测代码 ...
console.log(`耗时: ${performance.now() - start} ms`);
四 瓶颈定位与系统层监控
node --prof app.js 生成日志,再用 node --prof-process isolate-*.log > report.txt 查看高样本函数。node --inspect 后在 chrome://inspect 的 Performance 面板录制,查看火焰图定位长任务。clinic doctor -- node app.js 一键诊断 CPU、内存、事件循环问题;clinic flame 生成火焰图。top/htop/atop 观察 CPU、内存、I/O;perf top/perf record 做系统级热点分析;strace -p <pid> 跟踪系统调用。curl/wget 或浏览器工具看请求时序;数据库侧开启 慢查询日志 并用 EXPLAIN 优化索引与语句。五 一份可复用的压测方案示例
node --inspect app.js(便于后续火焰图分析)。autocannon -c 100 -d 30 http://localhost:3000/api/test;记录 req/s、p95/p99。wrk -t12 -c400 -d30s http://localhost:3000/api/test,观察错误率与延迟拐点。node --prof + --prof-process 或 clinic flame 找热点函数;top/htop、perf、strace 交叉验证。