最近在研究大模型的压测,内容是越研究越多,就单纯说这个压测指标,都能单独写一篇文章了。我们之所以搞大模型压测,就是要评估其服务稳定性、性能表现和用户体验,而关于大模型的压测指标需结合LLM特有指标(针对生成式任务的推理特性)和通用性能指标(反映系统整体承载能力)综合分析。
先来看LLM特有指标,生成式大模型(如GPT、DeepSeek、Qwen等)的核心任务是“逐token生成内容”,其性能需重点关注生成效率和用户感知延迟,以下指标为LLM压测的核心特有指标:
1)TTFT(Time To First Token,首字时间)
t_send)和第一个token接收时间戳(t_first_token),计算TTFT = t_first_token - t_send。需统计多次请求的平均值、p95/p99分位数(避免极端值影响)。
2)TPOT(Time Per Output Token,每令牌时间)
t_token1, t_token2, …, t_tokenN),计算相邻时间差(Δt_i = t_token(i+1) - t_token_i),再求平均值或分位数(TPOT = mean(Δt_1, Δt_2, ..., Δt_(N-1)))。
3)TPS(Token Per Second,每秒传输token数)
TPS = (总token数 - 1) / (最后一个token时间 - 第一个token时间)(注:减1是由于第一个token的时间已包含在TTFT中,避免重复计算)。
1)响应时间分布(p50、p95、p99)
-
p50(中位数):50%的请求响应时间小于等于该值,反映“典型用户”的体验; -
p95:95%的请求响应时间小于等于该值,反映“大部分用户”的体验(避免长尾问题掩盖); -
p99:99%的请求响应时间小于等于该值,反映“极端情况”下的性能(如高并发、复杂输入)。
t_response = t_last_token - t_send),对所有请求的响应时间排序,计算对应分位数(如p95=第95%位置的响应时间)。
2)每秒请求数(QPS,Queries Per Second)
QPS = 成功请求数 / 总时间(注:仅统计成功请求,排除错误请求)。
3)错误率(Error Rate)
-
HTTP状态码错误:5xx(服务端错误,如500 Internal Server Error、502 Bad Gateway)、4xx(客户端错误,如400 Bad Request、413 Payload Too Large); -
业务逻辑错误:模型推理失败(如输入长度超过模型限制、输出格式不符合要求)、超时错误(请求处理时间超过阈值,如30秒); -
资源错误:内存溢出(OOM,Out of Memory)、GPU显存不足(CUDA out of memory)。
错误率 = (错误请求数 / 总请求数) × 100%。需区分“瞬时错误率”(突发流量导致)和“持续错误率”(系统缺陷导致)。
4)吞吐量(Throughput)
-
生成式任务:一般用“每秒生成token数”(即TPS)作为吞吐量,反映内容生成效率; -
判别式任务(如文本分类、命名实体识别):用“每秒处理样本数”(Sample/s)作为吞吐量,反映分类/标注效率; -
通用场景:也可用“每秒处理数据量”(如MB/s)反映数据传输或处理能力。
吞吐量 = 总工作量 / 总时间。需关注“峰值吞吐量”(资源极限下的处理能力)和“稳定吞吐量”(长期运行时的平均处理能力)。
5)资源利用率(CPU、内存、网络)
-
CPU利用率:CPU处理任务的时间占比,分为“用户态利用率”(用户程序占用)和“内核态利用率”(系统调用占用); -
内存利用率:内存使用量占总内存的比例,需关注“已用内存”(包括缓存和缓冲区)和“可用内存”; -
GPU利用率:GPU计算单元的使用时间占比(通过 nvidia-smi查看),反映GPU的计算负载; -
网络带宽利用率:网络输入/输出流量占总带宽的比例(如1Gbps网卡使用了500Mbps,则利用率为50%)。
-
CPU利用率高(≥90%):说明计算任务是瓶颈(如预处理、后处理逻辑复杂); -
GPU利用率低(≤30%):说明GPU未充分利用(如模型推理效率低、数据加载慢); -
内存利用率高(≥85%):说明内存不足(可能触发OOM,需扩容或优化内存使用); -
网络带宽利用率高(≥80%):说明网络是瓶颈(如输入输出数据量大,需扩展带宽)。
-
CPU/内存: top、htop、vmstat(Linux);Performance Monitor(Windows); -
GPU: nvidia-smi(NVIDIA GPU)、rocm-smi(AMD GPU); -
网络: iftop、nload(Linux);Resource Monitor(Windows); -
容器环境: kubectl top pods(Kubernetes)、docker stats(Docker)。





