ab 快速压测是什么
ab(ApacheBench)是 Apache 自带的轻量压测工具:-n 指定总请求数、-c 指定并发数,运行后输出吞吐、平均延迟与分位分布,并统计失败请求。适合对单个接口做快速冒烟与版本间对比;不支持复杂会话与脚本化行为,也不适合长时压测。
基本信息
| 常用参数 | -n 总请求数、-c 并发数、-k 长连接、-H 自定义头 |
|---|---|
| 请求方法 | 默认 GET,POST 用 -p 文件与 -T 类型 |
| 输出内容 | 吞吐、平均延迟、分位分布、失败统计 |
| 复现要求 | 并发、请求数与目标 URL 记录在报告中,便于复跑对比 |
| 环境标注 | 结果附压测机规格与网络位置 |
| 适用边界 | 快速冒烟与相对对比;不适合复杂会话与长时压测 |
最小示例
最小示例
ab -n 5000 -c 50 -k https://example.com/api/ping
# -n:总请求数;-c:并发连接数
# -k:保持长连接(默认每请求新建连接)
# 复跑对比:并发数与请求数保持一致
# 压测时观察压测机 CPU,确认不是工具侧瓶颈典型使用场景
- 快速冒烟:发布后对关键 URL 做小规模压力检查。
- 版本对比:相同参数下前后版本对比吞吐与分位。
- 参数粗调:比较不同并发下的延迟变化,找经验拐点。
- 静态资源验证:测静态文件服务的吞吐能力。
- 配置验证:验证连接复用(-k)对吞吐与延迟的影响。
- 回归巡检:把固定参数的小压测纳入日常巡检。
输出字段读法
| 字段 | 含义 | 读法 |
|---|---|---|
| Complete requests | 完成请求数 | 与 -n 对比,看是否被中断 |
| Failed requests | 失败请求数 | 含连接失败与校验失败,需细分原因 |
| Non-2xx responses | 非 2xx 状态数 | 业务错误,与 Failed 含义不同 |
| Requests per second | 吞吐(每秒请求数) | 结合并发数一起看 |
| Time per request | 平均延迟(两个口径) | 并发口径约等于串行口径乘以并发 |
| 50%/90% 等分位 | 延迟分布 | 长尾看 95%/99% 档 |
报告中 Failed requests 与 Non-2xx responses 含义不同,需要分列解读:前者偏传输层,后者偏业务层。
默认不保持长连接(需要 -k),测不到连接复用场景:是否需要 -k 取决于要验证的目标。
ab 是单进程工具:并发拉高时先确认压测机自身没有饱和。