用 ApacheBench 做简单的 HTTP 压测
约 1 分钟· 本文阅读 次
本页目录
原笔记来自一次模型 API 测试。这里去掉具体业务地址,保留用 ApacheBench(命令名 ab)检查单个 HTTP 接口的基本方法。
请求数与并发数
-n 指请求总数,-c 指同时进行的请求数。例如,对自己控制的本地测试服务发出 100 次请求,并发数为 5:
ab -n 100 -c 5 http://127.0.0.1:8080/health
-t 设置测试的最长秒数,同时会隐含一个 50,000 次请求的上限,并非无论响应多快都保证持续到指定时长。使用前可用 ab -h 查看当前安装版本支持的参数。
发送 JSON
在 post_data.json 中准备请求体:
{"data": ["示例文本"]}
然后通过 -p 指定文件、-T 指定内容类型:
ab -n 100 -c 5 -p post_data.json -T application/json http://127.0.0.1:8080/predict
先用一次普通请求确认返回内容正确,再开始重复请求,避免把格式或鉴权错误测成接口性能。
比较结果
记录请求内容、并发数、测试时长、是否复用连接和服务端条件,才有可比较的结果。-k 开启 KeepAlive,默认不开启;两种模式不要混在一起比较。
同时检查失败请求、非 2xx 响应和延迟分布。完成了请求并不意味着业务执行成功;动态响应长度变化也可能被记为失败,需要结合实际返回内容判断。
ab 适合简单的单接口试验。测试端本身也可能成为瓶颈,不能把一次跑分直接当成系统容量结论。参数与输出定义以 Apache 官方文档为准。
相关文章
- RESTful API 设计:资源、语义与错误2026-11-06
- 从源代码到可复现修改:编译、Make 与 Git2026-11-06
- 云服务架构:围绕状态、故障与容量做取舍2026-11-06
- Linux 排查:先观察资源,再验证瓶颈2026-11-06
已恢复到上次阅读位置