回到首页

输入关键词,多个关键词用空格分隔。

← 工程原理与设计 · 系列目录

用 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 官方文档为准。

相关文章