在 CentOS 系统中为 Node.js 应用进行性能测试,其实没有很多人想得那么复杂。只要选对合适的压测工具,就能快速定位接口响应慢、吞吐不足或并发能力有限等性能瓶颈。下面结合几种常见方案,按从轻量到进阶的顺序,介绍 CentOS 上 Node.js 性能测试的实用方法,方便你根据业务场景灵活选择。

方法一:ApacheBench(ab)——最轻量的入门选择
ApacheBench(简称 ab)是 Apache 自带的一款命令行压力测试工具,主要用于 HTTP 服务的基准测试。对于想在 CentOS 上快速测试 Node.js 接口性能的用户来说,它上手门槛低、使用直接。如果系统尚未安装,可以先执行下面这条命令:
sudo yum install httpd-tools
然后准备一个简单的 Node.js 示例应用,例如 app.js:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World\n');
});
const port = 3000;
server.listen(port, () => {
console.log(`Server running at https://localhost:${port}/`);
});
启动服务:
node app.js
接着就可以使用 ab 对 Node.js 服务发起压力测试,一条典型命令如下:
ab -n 1000 -c 10 https://localhost:3000/
参数说明:-n 1000 表示总计发送 1000 个请求,-c 10 表示并发数为 10。执行完成后,输出结果通常会包含平均响应时间、每秒请求数、请求完成耗时等核心性能指标,适合用于 Node.js 应用的基础性能评估。
方法二:wrk——现代、高并发、更灵活
wrk 是一款更现代化的 HTTP 基准测试工具,支持多线程,能够制造更高的并发压力,特别适合测试 Node.js 服务在高负载场景下的表现。在 CentOS 上安装 wrk 之前,通常需要先启用 EPEL 源:
sudo yum install epel-release
sudo yum install wrk
安装完成后,可以继续对同一个 Node.js 应用进行性能压测:
wrk -t12 -c400 -d30s https://localhost:3000/
这条命令表示:启用 12 个线程,建立 400 个并发连接,并持续压测 30 秒。wrk 输出的信息也很全面,包括平均延迟、延迟分布、吞吐量等关键数据。对于需要在 CentOS 环境下测试 Node.js 高并发性能的场景来说,wrk 往往比 ab 更高效,而且工具自身的资源开销通常也更低。
方法三:Artillery——功能型负载测试框架
如果测试需求更复杂,例如需要模拟真实用户访问路径、分阶段提升压力,或者对接口进行持续压测,那么 Artillery 会是更合适的选择。它不仅能做 Node.js 接口性能测试,还适合构建更贴近业务实际的负载测试流程。先安装:
sudo yum install artillery
接下来创建一个配置文件,例如 test.yml:
config:
target: "https://localhost:3000"
phases:
- duration: 60
arrivalRate: 50
scenarios:
- flow:
- get:
url: "/"
这个配置的含义是:持续 60 秒,以每秒 50 个新请求的速率访问服务器。然后运行测试:
artillery run test.yml
Artillery 的测试报告通常更加详细,除了平均响应时间和吞吐量之外,还会给出请求延迟的百分位数据,例如 P50、P95、P99 等。这些指标对于分析 Node.js 应用在不同压力水平下的稳定性和调优方向非常有参考价值。
最后补充一点:无论使用 ab、wrk 还是 Artillery,在 CentOS 上做 Node.js 性能测试时,测试环境都尽量与线上生产环境保持一致,测试参数也应结合实际部署情况设置,比如并发连接数、测试持续时间、CPU 与内存配置等。不要只在开发机上简单跑一次高并发测试,就误以为线上一定稳定;真实业务环境中的网络波动、系统资源占用和服务依赖情况,都会直接影响最终的性能表现。
