ab是Apache官方提供的轻量级HTTP压测工具,可对Nginx等任意Web服务器发起可控并发请求,通过-c(并发数)、-n(总请求数)等参数实现条件一致、结果可比、问题可定位的性能测试。

直接用 ab 命令对 Nginx 发起可控并发请求,就能测出它的实际处理能力。关键不是跑出高数字,而是让每次测试条件一致、结果可比、问题可定位。
安装与基础验证
ApacheBench(ab)是轻量级 HTTP 压测工具,不依赖 Apache 服务本身,只用它提供的命令行工具:
- CentOS/RHEL:执行
yum install -y httpd-tools,然后运行ab -V确认版本 - Ubuntu/Debian:执行
apt install -y apache2-utils,再用ab -V验证 - 确保目标 Nginx 正在运行,且能通过
curl http://127.0.0.1/正常访问
核心参数与典型命令
压测效果取决于三个关键参数的组合,不是盲目堆高数值:
-
-c 并发数:模拟同时发起请求的“用户”数量,例如
-c 100表示 100 个并发连接 -
-n 总请求数:总共发送多少次请求,比如
-n 5000,它会按并发数分批发出 -
URL 地址:必须带协议和路径,如
http://192.168.1.100/index.html,末尾斜杠不能省
常用示例:
ab -n 2000 -c 200 http://192.168.1.100/
这条命令表示:用 200 个并发,共发 2000 次请求,压测 Nginx 默认首页。
测试前必须做的准备
不清理环境,结果就不可信:
- 客户端和服务端最好在同局域网,避免公网延迟和带宽干扰
- 清空系统缓存:
echo 3 > /proc/sys/vm/drop_caches(需 root 权限) - 优先测试静态资源(如 .html、.jpg),排除 PHP 或后端服务干扰
- 一次只调一个变量:比如只改
-c,其他参数和 Nginx 配置保持不变 - 确认 Nginx 进程已启动,且没有被防火墙或 SELinux 拦截
看懂关键结果指标
输出中真正有用的几项:
- Requests per second:QPS,即每秒完成请求数,是吞吐能力的直观体现
- Time per request(mean):用户视角平均等待时间,值越低越好
- Failed requests:失败请求数,非零说明服务开始扛不住了
- Percentage of the requests served within a certain time:P50/P90/P95 延迟分布,比平均值更能反映真实体验
- 注意区分两个 Time per request:上面那个是“用户均值”,下面那个是“服务器均值”(等于 1/QPS)



















