GPU集群吞吐压测方案实战 - 第2节

2. 压测基础理论

做GPU集群压测,说白了就是搞清楚一件事:这套系统到底能扛多少活?

我刚开始接触压测时,也以为就是跑个脚本看看数字。后来踩了不少坑才明白——不懂基础理论,压测结果就是一堆废纸。今天咱们把几个核心概念掰开揉碎了讲清楚。

吞吐量(Throughput)

吞吐量,就是单位时间内系统能处理多少请求。在GPU集群场景下,我习惯用每秒处理的样本数(Samples/sec)来衡量。

举个例子:你有个推理服务,1秒钟能处理1000张图片。那吞吐量就是1000 img/s。

关键点:吞吐量不是越高越好。我见过有人把batch size调到极大,吞吐量确实上去了,但延迟飙到用户无法接受。这叫「虚假繁荣」。

延迟(Latency)

延迟,就是单个请求从发出到收到响应的时间。单位通常是毫秒。

这里有个坑——平均延迟会骗人。我曾经优化过一个模型,平均延迟只有50ms,但P99延迟到了500ms。用户反馈「时不时卡一下」,就是这1%的慢请求搞的鬼。

所以我在压测时,必看三个指标:

  • P50:一半请求比这个快
  • P99:99%的请求比这个快
  • P999:千分之九十九的请求比这个快

你想想看,如果P99是200ms,那意味着每100个请求里就有1个要等200ms以上。对于高并发场景,这1%可能就是灾难。

并发(Concurrency)

并发,就是同一时刻系统正在处理的请求数。注意,不是QPS。

很多人把并发和QPS搞混。我举个例子:

  • 并发100:系统同时处理100个请求
  • QPS 1000:系统每秒处理1000个请求

两者关系是:QPS = 并发 / 平均延迟(秒)

假设平均延迟是100ms(0.1秒),并发100时,QPS就是100 / 0.1 = 1000。这个公式很实用,我经常用它来估算系统瓶颈。

QPS / TPS

QPS(Queries Per Second)和TPS(Transactions Per Second)本质一样,都是衡量系统处理能力的指标。在GPU集群场景下,我统一用QPS。

指标 含义 GPU集群场景
QPS 每秒查询数 每秒推理请求数
TPS 每秒事务数 每秒完整训练迭代数

嗯,这里要注意:QPS和TPS不是越高越好。我见过有人把压测调到极限,QPS确实爆表,但GPU利用率只有30%——因为CPU成了瓶颈。这种压测结果,说白了就是自欺欺人。

压测的黄金三原则

做了这么多年压测,我总结出三个铁律。不遵守这三条,压测就是浪费时间。

原则一:可重复

同一个压测场景,今天跑和明天跑,结果应该基本一致。

我曾经遇到一个案例:同样的模型、同样的数据、同样的GPU,两次压测结果差了30%。查了半天,发现是CPU频率被降频了。从那以后,我每次压测前都会检查:

  • CPU/GPU频率是否锁定
  • 内存带宽是否被其他进程占用
  • 网络是否稳定

我的习惯:每次压测前,先跑一个基准测试。如果基准结果和上次偏差超过5%,说明环境有问题,先排查再继续。

原则二:可量化

压测结果必须用数字说话。不要说什么「感觉还行」「好像不卡」——这些词在压测报告里就是废话。

可量化的意思是:

  • 吞吐量:精确到小数点后两位
  • 延迟:给出P50、P99、P999
  • GPU利用率:平均利用率、峰值利用率
  • 显存占用:峰值显存、平均显存

我习惯用这样的表格记录:

场景 QPS P50延迟(ms) P99延迟(ms) GPU利用率(%)
batch=1 850.23 1.18 2.45 35.6
batch=8 3200.56 2.50 5.12 78.3
batch=32 5600.89 5.71 12.34 95.2

你看,这样一对比,哪个batch size最优,一目了然。

原则三:可对比

压测结果必须能和其他场景、其他版本做对比。否则你优化了半天,怎么证明有效果?

我一般会做三组对比:

  • 横向对比:不同模型、不同框架之间的性能差异
  • 纵向对比:同一模型优化前后的性能变化
  • 基线对比:和行业标准或历史数据做对比

避坑指南:我曾经在对比两个框架时,发现A比B快20%。后来才发现,A用了FP16,B用了FP32。这根本不是公平对比。所以,对比的前提是控制变量——硬件、数据、精度、batch size必须一致。

知识体系结构图

下面这张图,把压测基础理论的核心逻辑串起来了。我建议你保存下来,每次做压测前看一眼。

GPU集群压测基础理论体系 压测核心指标 吞吐量 延迟 并发 QPS / TPS 单位时间处理量 Samples/sec img/s P50 / P99 / P999 单位:ms 关注尾部延迟 同时处理请求数 QPS = 并发/延迟 估算瓶颈 每秒查询/事务 推理/训练场景 不是越高越好 黄金三原则 可重复 可量化 可对比

这张图的核心逻辑是:四个指标是压测的「度量衡」,三原则是压测的「方法论」。没有度量衡,你测不出东西;没有方法论,你测不准东西。

我的建议:刚开始做压测时,别贪多。先把吞吐量和延迟搞明白,再慢慢加并发和QPS的分析。一口吃不成胖子,压测也是。