AI系统如何做性能测试?

简介: AI性能测试正从传统接口压测转向全链路容量工程:TTFT、TPOT、Token吞吐、KV缓存、Agent调用链等新指标成为关键。慢的根源常不在模型,而在检索、工具调用或调度排队。测试需分层压测,兼顾性能、质量与成本。

最近两年,很多测试团队都开始接触 AI 项目。

以前测一个接口,大家的思路很清楚:加并发、压 QPS、看响应时间、错误率、CPU、内存,再找性能拐点。

但把这套方法直接搬到大模型、RAG、Agent 系统上,很快就会遇到一个问题:

接口明明没报错,CPU 也不高,用户为什么还是觉得系统很慢?

比如两个 AI 系统:

系统 A:8 秒后一次性返回完整答案
系统 B:800ms 开始输出,持续生成 10 秒
从传统“总响应时间”看,B 更慢。

但真实用户通常会觉得 B 更快。

因为 AI 系统不是简单的“请求—响应”,而是一个持续生成 Token 的过程。

这也是 AI 性能测试真正发生变化的地方。

传统系统主要测“请求有没有扛住”,AI 系统还要测“生成过程有没有扛住”。

2026 年 8 月,MLCommons 发布了端到端 RAG Inference Benchmark。一个很值得测试工程师关注的变化是:对于包含检索、模型和其他组件的 RAG 流水线,单一的 Token/s 已经无法代表整个系统性能。

这其实释放出了一个很明确的行业信号:

AI 性能测试,正在从单接口压测走向全链路容量工程。

目录
一、AI 上线之后,传统性能测试为什么突然不够用了?

二、AI 性能问题的本质,已经从接口延迟变成推理链路延迟

三、真正做 AI 性能测试,要盯住哪些指标?

四、一个 RAG + Agent 系统,性能瓶颈到底会出现在哪里?

五、AI 性能测试真正应该怎么落地?

六、测试工程师接下来真正需要补什么?

一、AI 上线之后,传统性能测试为什么突然不够用了?
传统 Web 系统的一次调用大致是:

所以我们过去习惯关注:

QPS、TPS、平均响应时间、P95、P99、错误率、CPU、内存、数据库连接池。

这些指标到了 AI 系统依然有价值。

问题是,它们已经不够了。

因为一次大模型请求实际上更接近:

图片
这里出现了传统接口里很少单独讨论的三个阶段:

排队、Prefill、Decode。

所以同样一个“响应时间 10 秒”,背后可能完全是两种问题。

一种是:

等了 8 秒
+
生成 2 秒
另一种是:

等了 500ms
+
持续生成 9.5 秒
优化方向完全不同。

NVIDIA 当前的大模型 Benchmarking 文档也明确区分了传统负载测试和模型性能 Benchmark:前者主要验证真实流量、容量和扩缩容能力,后者则重点观察模型吞吐、延迟以及 Token 级指标。两者需要结合,而不是互相替代。([NVIDIA Docs][2])

所以,做 AI 系统性能测试时,第一个需要改变的不是工具,而是性能指标模型。

二、AI 性能问题的本质,已经从接口延迟变成推理链路延迟
很多团队第一次做大模型性能测试,通常会直接压:

POST /chat/completions
这种方法没错。

但它只能告诉你:

模型 API 能不能扛住?

真实生产环境需要回答的却是:

整个 AI 应用能不能扛住?

因为现在稍微复杂一点的 AI 应用,架构往往已经变成这样:

这张图其实也是理解 AI 性能测试最重要的一张图。

一次用户请求可能经历:

向量检索
→ Rerank
→ Prompt 拼装
→ 模型第一次推理
→ Agent 判断
→ Tool 调用
→ 模型第二次推理
→ 流式输出
假设整个请求用了 12 秒。

真正的耗时可能是:

环节
P95耗时
Vector Search
200ms
Rerank
600ms
Prompt 构建
100ms
LLM 第一次调用
3.2s
Tool 调用
2.1s
LLM 第二次调用
5.3s
其他开销
500ms
如果没有 Trace,你看到的可能只有:

Response Time = 12s
然后大家开始调 GPU、换模型、扩机器。

最后发现几乎没效果。

因为真正慢的可能根本不是模型,而是外部 Tool 或数据库。

AI 系统的性能瓶颈,很多时候不在模型,而在模型前后的整条调用链。

因此 RAG 性能测试和 Agent 性能测试必须做分段耗时和全链路 Trace,不能只在网关入口统计一个总响应时间。

三、真正做 AI 性能测试,要盯住哪些指标?
AI 性能指标很多,但没必要一开始就堆几十个。

实际工程里可以先拆成四层。

  1. 用户体验层:TTFT 比总响应时间更值得关注
    第一个非常重要的指标叫:

TTFT:Time To First Token。

也就是:

用户发送请求以后,需要等待多久才能看到第一个 Token。

例如:

请求发送:10:00:00.000

首个 Token:
10:00:00.800
那么:

TTFT = 800ms
对于 AI 客服、聊天机器人、Copilot 等流式场景,TTFT 对用户体验影响非常明显。

因为用户并不一定要求答案瞬间生成完。

但很难忍受页面一直没有反应。

另一个指标叫:

TPOT:Time Per Output Token。

它描述的是首 Token 出现之后,后续 Token 的平均生成速度。

vLLM 当前的 Benchmark 定义中:

TPOT =
(端到端耗时 - TTFT)
÷
(输出 Token 数 - 1)
同时还会统计 ITL,也就是连续流式输出之间的间隔。需要注意的是,不同 Benchmark 工具对这些指标的定义并没有完全统一,真正做横向比较时,要看计算方式,而不能只看指标名字。([vLLM][3])

所以用户侧至少应该同时观察:

TTFT
+
TPOT / ITL
+
End-to-End Latency
如果:

TTFT = 500ms
TPOT = 300ms
用户体验依然可能是:

开始回答挺快,但一个字一个字往外蹦。

  1. 吞吐层:只看 QPS,很容易误判大模型容量
    传统系统喜欢看:

100 QPS
500 QPS
1000 QPS
但大模型里,两个 Request 对 GPU 造成的压力可能完全不同。

请求 A:

Input:300 Tokens
Output:100 Tokens
请求 B:

Input:20000 Tokens
Output:3000 Tokens
从 HTTP 层看:

都是 1 Request
但从模型推理层看,两次计算量完全不同。

所以大模型性能测试还需要观察:

Token Throughput / Tokens Per Second。

也就是:

系统每秒到底能处理或生成多少 Token。

这也是为什么只用 QPS 衡量大模型服务能力,很容易得出错误结论。

  1. 资源层:CPU 没满,不代表 AI 系统还能扛
    AI 系统除了传统指标:

CPU
Memory
Load
GC
Thread
Network
还需要加入:

GPU Utilization
GPU Memory
KV Cache
Batch Size
Queue Length
Input Tokens
Output Tokens
Context Length
尤其值得关注的是:

Queue Length 和 KV Cache。

一个常见现象是:

20 并发 → TTFT 800ms
50 并发 → TTFT 1.2s
80 并发 → TTFT 2s
100 并发 → TTFT 6s
但此时:

CPU = 40%
Memory = 55%
如果仍然按照传统服务器监控方式判断,很可能得出:

系统资源还很充足。

实际情况却可能是:

GPU 已经接近饱和,请求正在等待调度。

vLLM 的生产指标里现在已经直接暴露了 Waiting Requests、端到端请求延迟、Inter-token Latency、Decode Time、Generation Tokens 以及 KV Cache 相关指标。

这说明大模型性能监控正在逐渐从“主机级监控”转向“推理引擎级监控”。

  1. Agent 层:一次请求到底放大成了多少次调用?
    Agent 又比单纯的大模型服务复杂一层。

用户只发送了一条请求:

帮我分析最近一周的线上异常,并给出原因。
Agent 内部可能发生:

LLM

日志查询 Tool

LLM

监控查询 Tool

LLM

数据库 Tool

LLM

最终回答
于是一个用户 Request,背后可能变成:

4 次 LLM 调用
3 次 Tool 调用
2 次数据库查询
15000 Tokens
所以 Agent 性能测试还要关注:

指标
关注什么
Agent End-to-End Latency
一个完整任务多久完成
Agent Steps
一个任务跑了多少步
LLM Calls
调了多少次模型
Tool Calls
调了多少外部工具
Retry
有没有频繁重试
Input Tokens
输入上下文规模
Output Tokens
最终生成规模
Cost
一个任务实际成本
这里特别容易出现一个问题:

Token Amplification,Token 放大。

用户可能只输入 300 Token。

但 Agent 跑完一个完整任务,内部已经消耗 15000 Token。

并发增加 10 倍之后,GPU 压力和模型费用也可能一起被放大。

到了 Agent 系统,性能测试实际上已经开始和成本测试发生交叉。

四、一个 RAG + Agent 系统,性能瓶颈到底会出现在哪里?
来看一个更接近真实生产环境的例子。

假设公司上线了一套企业 AI 知识库:

图片
现在逐步提高并发。

假设得到这样一组测试数据。

50 并发
TTFT P95:1.0s
TPOT P95:40ms

Retrieval P95:180ms
Rerank P95:300ms

GPU:65%
Queue:基本为 0
系统正常。

150 并发
TTFT P95:3.5s
TPOT P95:45ms

Retrieval P95:210ms
Rerank P95:320ms

GPU:93%
Queue:明显增加
这个结果非常值得注意。

TPOT 几乎没怎么变,TTFT 却从 1 秒涨到了 3.5 秒。

说明模型一旦真正开始 Decode,生成速度没有明显恶化。

真正的问题更可能发生在:

请求排队
+
Scheduler
+
Prefill
250 并发
TTFT P95:9.5s
TPOT P95:60ms

GPU:98%
Queue:持续上涨

Timeout:4%
到这里就可以认为系统进入了明显的饱和区。

真正应该得到的测试结论不是:

系统最大可以支持 250 并发。

而应该是:

当并发超过约 150 后,TTFT 开始明显恶化;到 250 并发时排队持续增长并出现超时,因此当前可接受容量应结合 TTFT SLO 定义在饱和点之前。

这是两种完全不同的性能测试思维。

性能容量不是“系统什么时候挂”,而是“用户体验什么时候开始不可接受”。

五、AI 性能测试真正应该怎么落地?
真正落地时,不建议一上来就对整个 Agent 系统打 1000 并发。

更合理的方法是分四层压。

第一层:先测模型裸性能
链路尽量简单:

Load Generator

LLM Serving
测试不同:

Input Token
Output Token
Concurrency
Request Rate
观察:

TTFT
TPOT / ITL
TPS
Request Throughput
GPU
KV Cache
Queue
这一层解决的问题是:

模型服务本身到底有多少容量。

第二层:再把 RAG 加回来
加入:

Embedding
Vector DB
TopK
Rerank
Prompt
然后测试不同 Context Length:

1K
4K
8K
16K
32K
观察:

Retrieval Latency
Rerank Latency
Prompt Tokens
TTFT
GPU
因为上下文变长以后,不只是 Token 成本会上涨,Prefill 压力也会增加。

这一阶段真正要回答的是:

知识库到底给模型塞多少内容,性能和效果最平衡?

第三层:最后测 Agent 完整任务
不要只用:

你好
作为压测 Prompt。

真实业务应该按照生产流量准备不同任务。

例如:

简单问答 40%
RAG 查询 30%
数据库查询 15%
多 Tool Agent 10%
长文本分析 5%
再根据真实分布生成流量。

重点记录:

任务完成时间
Agent Steps
LLM Calls
Tool Calls
Retry
Token Usage
成功率
单请求成本
AI 性能测试真正困难的地方其实不是制造 1000 个并发。

而是:

制造 1000 个“像真实用户一样”的并发。

第四层:性能、质量、成本一起看
这是 AI 测试里非常容易遗漏的一层。

比如通过 Context 裁剪,把输入从:

20000 Tokens

5000 Tokens
结果:

TTFT:

3.2s

1.4s
性能提升非常明显。

但是评测结果:

回答正确率:

92%

78%
这个优化还能上线吗?

通常不能。

反过来也一样。

如果通过增加 5 次 Agent Step,把准确率从 85% 提升到 91%,但:

平均耗时:

5s → 18s

Token:

3000 → 14000

单请求成本:

增长 4 倍
这个方案同样需要重新评估。

所以真正完整的 AI 性能测试应该同时看:

没有把性能、质量和成本放在一起,AI 性能测试其实只完成了一半。

六、测试工程师接下来真正需要补什么?
以前做性能测试,通常需要懂:

JMeter / Locust / k6
Linux
JVM
MySQL
Redis
MQ
微服务
监控
链路追踪
这些能力并没有过时。

但 AI 系统开始继续往上增加新的技术栈:

Token
Context Window
Streaming

TTFT
TPOT
ITL
TPS

GPU
KV Cache
Batching
Scheduler

Embedding
Vector Database
Rerank

RAG
Agent
Tool Calling
MCP

Tracing
LLM Observability
这也是为什么很多测试工程师第一次接 AI 项目,会突然产生一种感觉:

以前会做性能测试,现在好像又不会了。

问题不在于 JMeter 不会用了。

而是被测试对象变了。

以前面对的是:

API
+
数据库
+
缓存
+
微服务
现在面对的可能是:

API
+
RAG
+
LLM
+
GPU
+
Agent
+
Tool
+
第三方模型
测试工程师需要回答的问题,也从:

这个接口能不能达到 1000 QPS?

逐渐变成:

在真实 Prompt、真实 Token、真实 RAG、真实 Agent 调用链下,这套 AI 系统到底能稳定服务多少用户?

以及:

慢到底慢在哪里?

甚至还要继续追问:

如果把性能提高 30%,质量和成本发生了什么变化?

从这个角度看,AI 测试真正提高的并不是某一个工具的使用门槛。

它要求测试工程师开始理解模型推理、RAG、Agent、GPU、可观测性、容量规划,以及质量评测之间的关系。

而这可能也是未来普通测试工程师和 AI 测试工程师真正开始拉开差距的地方。

参考当前 NVIDIA 的 LLM Benchmarking 指标体系、vLLM 的生产监控指标,以及 MLCommons 新推出的端到端 RAG Benchmark,都可以看到同一个趋势:AI 性能评测正在从单模型、单接口指标,进一步走向真实工作负载和完整 AI 系统链路。

如果现在把公司正在使用的一个 RAG + Agent 系统交给你,你能不能真正回答这三个问题:

它到底能扛多少用户?慢到底慢在哪里?性能提升以后,质量和成本有没有一起失控?

相关文章
|
3天前
|
自然语言处理 API 开发工具
千问大模型API完整实操教程:从账号开通、密钥获取到代码调用全流程
千问大模型的API全部依托百炼平台对外提供服务,并且完整兼容OpenAI SDK协议,对于已经做过OpenAI接口开发的开发者,几乎可以做到无缝迁移,仅修改接口地址与密钥即可完成适配。本文面向零基础新手以及从其他服务迁移过来的研发人员,完整覆盖账号开通、API‑Key生成、多语言代码调用、流式输出、多轮会话、模型选型、报错排查、成本管控等完整环节,附带大量可直接复制运行的代码片段,帮助开发者快速完成第一次接口调用,同时建立生产环境开发规范。
181 2
|
1月前
|
监控 Shell API
Qoder CLI /loop 大升级:Agent 自调节奏,盯盘场景交给它就行了
Loop Engineering 新增动态唤醒机制:`/loop` 不再依赖固定间隔,Agent 可自主决定检查频率、触发时机与终止条件。支持 Monitor 事件秒级响应、三模式自动路由、TUI 管理面板及持久化任务,让盯盘、告警监控等弹性场景真正实现“交出判断权”。
290 0
|
3月前
|
存储 人工智能 前端开发
为了 Vibe Coding 地图更方便,我给 WeaveFox 造了一个轮子
开发者基于WeaveFox Vibe Coding打造合规高德地图React组件库amapcn,支持shadcn分发、NPM包及AI Skill集成,内置15+地图能力组件。同步开源并上架WeaveFox技能市场,3天快速构建全栈地图应用,免费部署上线。
447 120
|
3月前
|
缓存 安全 API
Claude Code token 消耗过快的原因分析与 7 个实用省量技巧
这是一篇针对**订阅套餐**限额的排查指南,讲的是 Pro 和 Max 上那堵「你已达到用量上限」的墙。如果你用的是 API key,撞到的是 `429 Rate Limit Reached`,那是另一回事、另一套解法,见《Claude Code 撞到 429 rate limit:原因和修复》。
|
11天前
|
人工智能 Linux iOS开发
Ollama使用教程:Ollama官网下载、Ollama本地部署大模型(2026最新)
Ollama 是一款免费开源的本地大模型运行工具,支持在 Windows/macOS/Linux 上离线运行 Qwen、DeepSeek、Llama 等主流开源模型,数据不出本机、隐私安全。提供 OpenAI 兼容 API,命令行一键拉取/运行/管理模型,无需联网,无调用限制,是开发者与 AI 爱好者部署本地 AI 助手的理想选择。(239 字)
|
9月前
|
关系型数据库 分布式数据库 数据库
议程抢先看|2026阿里云PolarDB开发者大会,重磅来袭
2026年1月20日,阿里云PolarDB开发者大会将于上海五角场凯悦酒店举行!聚焦数据库前沿技术,1场主论坛+3场分论坛,探讨行业趋势与创新实践。议程精彩,报名从速!
|
5月前
|
Ubuntu 算法 关系型数据库
Debian/Ubuntu 环境 PolarDB-X 单机版 DEB 包安装综合指南
本文整合阿里云文档,详解Ubuntu 18.04与Debian 10下PolarDB-X单机版安装:因官方仅提供RPM包,需用alien转DEB,但二者压缩格式不同(Ubuntu用zstd,Debian 10不支持),必须在目标系统本地转换,不可复用。含依赖处理、配置初始化及启动验证全流程。
875 19
|
22天前
|
缓存 JavaScript Shell
DeepSeek Harness 终于来了:开源,一切皆插件
DeepSeek Harness 开源首夜我装好了。本文给四种下载方式、四模式区别、插件生态实测,以及一段 99% 缓存命中率的真实账单
DeepSeek Harness 终于来了:开源,一切皆插件
|
21天前
|
人工智能 测试技术 Shell
Opencode最被低估的6个测试指令:每天帮你省下3小时重复劳动
本文详解Opencode六大自定义指令(如/test、/coverage),助测试工程师30分钟配置、每日省3小时,告别重复Prompt输入,实现测试流程自动化提效。
|
27天前
|
机器学习/深度学习 人工智能 自然语言处理
2026测试人必备的"AI驯化"技能树:少了这个能力,简历直接被筛掉
2026年测试工程师正经历能力重构:从“写用例”迈向“驯化AI”。手工测试岗需求降47%,而懂AI Agent、Prompt工程、Skill封装、MCP协议与RAG知识工程的测试人才薪资高30%–50%,成大厂抢手对象。核心转变是——测试对象由确定性系统变为智能体,测试本质从“验功能”升级为“验能力”。