NGINX(十五)Nginx性能测试工具ab与wrk实战指南

——用真实案例搞懂QPS、并发、延迟怎么测

在Nginx运维中,“性能”不是凭感觉判断的——1台Nginx能抗多少并发?静态资源服务的QPS(每秒请求数)上限是多少?高并发下响应延迟会不会飙升?这些问题都需要通过性能测试工具量化验证。

本文针对初学者,详细讲解两款最常用的Nginx性能测试工具:Apache Bench(ab,轻量入门)和wrk(高并发进阶),结合真实测试场景(静态页面、API接口),带你一步步搞懂“怎么测、怎么看结果、怎么调优”。所有案例均基于Linux环境实操,复制命令即可上手。

一、为什么要做Nginx性能测试?

在开始工具学习前,先明确性能测试的核心目标——不是“测个数字”,而是解决实际问题:

  1. 验证上限:确认Nginx在当前配置下的并发能力(如“单台Nginx能支持1万并发连接”);
  2. 定位瓶颈:发现性能短板(如“QPS上不去是因为CPU满了,还是内存不够”);
  3. 验证优化效果:比如“开启gzip后,QPS提升了20%”,用数据证明优化有效;
  4. 容量规划:提前判断“应对双11 10万QPS,需要部署几台Nginx”。

本文测试环境说明(避免你测试时因环境差异导致结果偏差):

  • 服务器:2核4G云服务器(CentOS 7),Nginx 1.24.0(默认配置,未调优);
  • 测试目标:Nginx默认首页(http://192.168.1.100/index.html,静态页面,大小约2KB);
  • 网络:服务器与测试机同局域网(避免公网带宽影响结果)。

二、Apache Bench(ab):轻量级入门工具

ab是Apache服务器自带的性能测试工具,优点是安装简单、命令直观,适合快速测试Nginx的并发能力和QPS,缺点是高并发下自身性能不足(超过1万并发可能不准)。

2.1 第一步:安装ab

ab工具包含在httpd-tools(CentOS)或apache2-utils(Ubuntu)包中,无需单独安装:

CentOS/RHEL系统:
# 安装httpd-tools(含ab工具)
yum install -y httpd-tools

# 验证安装(查看ab版本)
ab -V
# 输出类似:This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Ubuntu/Debian系统:
apt install -y apache2-utils
ab -V  # 验证

2.2 核心概念:ab测试的3个关键参数

测试前先理解3个核心参数,否则看不懂命令和结果:

参数 含义 示例值
并发数(c) 同时向Nginx发起请求的客户端数量(模拟多少用户同时访问) 100、500
请求数(n) 总共要发送的请求总数(并发数×循环次数,比如100并发×100请求=1万总请求) 1000、10000
目标URL 要测试的Nginx地址(静态页面/API接口) http://192.168.1.100/index.html

2.3 实战1:测试基础并发能力

需求:模拟100个用户同时访问Nginx默认首页,总共发送1000个请求,看QPS和延迟表现。

测试命令:
ab -c 100 -n 1000 http://192.168.1.100/index.html
  • -c 100:并发数100;
  • -n 1000:总请求数1000;
  • 最后跟测试URL。
关键结果解读(不用看全部输出,重点关注这几行):
# 1. 基础信息(确认测试参数是否正确)
Server Software:        nginx/1.24.0  # 目标服务器是Nginx 1.24.0
Server Hostname:        192.168.1.100  # 测试的IP
Server Port:            80  # 端口

# 2. 核心性能指标(重点看这部分)
Document Path:          /index.html  # 测试的页面
Document Length:        154 bytes  # 页面大小(约154字节,我的测试页是简化版)

Concurrency Level:      100  # 实际并发数(和命令中-c一致)
Time taken for tests:   0.123 seconds  # 测试总耗时(越短越好)
Complete requests:      1000  # 完成的总请求数(和命令中-n一致)
Failed requests:        0  # 失败的请求数(0表示无失败,正常)

# 3. QPS和延迟(最核心的两个指标)
Total transferred:      388000 bytes  # 总传输数据量(含HTTP头)
HTML transferred:       154000 bytes  # HTML内容总大小
Requests per second:    8130.08 [#/sec] (mean)  # 平均QPS(每秒处理8130个请求,越高越好)
Time per request:       12.300 [ms] (mean)  # 平均每个请求耗时(12.3毫秒,越低越好)
Time per request:       0.123 [ms] (mean,
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑客思维者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值