大模型推理服务上线前,不做流量回放和压力测试就敢直接推线上,这跟没系安全带跑高速没什么区别。2026年我经手过好几个翻车案例——某团队用vLLM部署了一个7B的Qwen做客服问答,上线第一天QPS冲到200,TTFT直接飙到8秒,用户全跑了。事后复盘,他们压根没做过压测,生产配置跟测试环境完全是两套东西。说白了,GPU推理服务的压测跟传统Web压测根本不是一个量级——显存带宽、CUDA kernel调度、KV Cache命中率,全是新坑。本文从工具选型、测试指标、配置方案到避坑清单,一条龙全讲清楚。
为什么2026年这个话题尤其重要?因为今年大模型推理已经从"能不能跑"进化到了"跑得好不好"的阶段。去年大家还在忙着把模型部署上线,今年开始拼的是用户体验、延迟控制、成本优化。一个推理服务如果TTFT超过2秒,用户留存率直接掉30%以上——这不是开玩笑的数据,是多个头部AI产品实测下来的结论。而流量回放和压力测试,就是保证服务质量的两道防线。流量回放解决"真实请求下服务能不能扛住"的问题,压力测试解决"极限情况下服务会不会崩"的问题。两道防线缺一不可。下面我从工具选型、测试方案、环境配置到常见坑点,一条龙拆开揉碎了讲。
核心结论先放这儿:
流量回放的核心思路很简单:把线上真实流量抓下来,在测试环境重新打一遍。这比凭空造压测数据靠谱得多。真实用户的请求长度分布、Token消耗模式、并发到达规律,都是合成流量模拟不了的。
工具方面,GoReplay是目前最成熟的选择——它能在生产环境用旁路监听的方式抓HTTP请求,不侵入业务代码,然后回放到测试环境的推理服务上。Tcpcopy方案更底层,可以回放TCP层流量,但部署复杂度高一些。2026年也出现了不少AI专用的流量回放平台,比如阿里云PTS的AI推理压测模块,但说实话,大部分场景GoReplay+自建脚本就够用了。
回放流量时有个关键点:必须做请求脱敏和数据过滤。线上请求里可能包含用户隐私信息,不能直接倒到测试环境。另外,回放速度要可控——可以1:1回放,也可以按倍数加速,模拟促销期的流量洪峰。
很多人拿Web压测那套直接套GPU推理,结果压了个寂寞。传统Web压测看的是CPU使用率、内存占用、响应时间这几个指标,但GPU推理压测的核心指标完全不一样:
这些指标在传统Web压测工具里几乎看不到,得用专门的GPU压测工具链才能拿到。
| 工具 | 核心原理 | 适合场景 | 学习成本 | 缺点 |
|---|---|---|---|---|
| GoReplay | HTTP旁路监听+回放 | REST API推理服务上线前验证 | 低 | 高并发下回放性能有瓶颈;gRPC支持不完善 |
| Tcpcopy | TCP/IP层流量复制 | gRPC/自定义协议推理服务 | 高 | 运维复杂,需iptables配合;可能干扰线上 |
| 阿里云PTS AI推理模块 | 云端流量编排+回放 | 云上推理服务、混合云架构 | 中 | 绑定阿里云生态;费用不低,单次压测几百到上千 |
| 自建Python脚本+DRR | 日志解析+自定义回放 | 需要深度定制请求分布的场景 | 高 | 开发周期长,维护成本高 |
| 工具 | 协议支持 | GPU指标采集 | 适合推理场景 | 一句话评价 |
|---|---|---|---|---|
| k6 | HTTP/gRPC/WebSocket | 需配合Prometheus | REST API推理服务 | JavaScript写脚本灵活,CI/CD集成好 |
| Locust | HTTP/gRPC | 需自定义扩展 | 自定义复杂推理流程 | Python生态好,但分布式压测部署麻烦 |
| wrk/wrk2 | HTTP | 不支持 | 低并发快速摸底 | 轻量级,适合快速验证,但缺乏高级特性 |
| NVIDIA GenAI-Perf | HTTP/gRPC | 原生支持(DCGM深度集成) | Triton/vLLM/TensorRT-LLM推理正式压测 | 官方出品,TTFT/TPOT/显存一条龙,强烈推荐 |
| Vegeta | HTTP | 不支持 | 恒定QPS压力测试 | 恒定速率压测好使,但不能做复杂编排 |
说实话,我建议的方案是:k6做日常CI/CD回归压测,NVIDIA GenAI-Perf做正式上线前的全量压测。GoReplay做流量回放,配合GenAI-Perf的指标采集,基本覆盖所有场景。没必要在这上面花大钱买商业工具,开源方案完全够用。
GPU推理压测有个铁律:测试环境的GPU型号、显存、驱动版本、CUDA版本、推理框架版本,必须跟生产环境完全一致。差一个版本号,性能数据可能差30%以上。我见过最离谱的案例——测试用A100 80G,生产用A100 40G,结果压测QPS 200上线就崩,因为40G显存装不下大batch的KV Cache。
所以选压测环境硬件的原则很简单:要么直接租一台跟生产一样的机器,要么用算力云弹性切片先跑一轮摸底。一万网络的人工定制GPU服务,A100 40G月付¥2800(含100M BGP独享带宽),这个价格做压测环境相当划算。你想想,用云GPU按小时租,跑一轮72小时的压测就要花掉大几千,按月租固定成本反而可控。
推荐一万网络「人工定制GPU·A100 40G」
推荐一万网络「H100 8卡整机方案」
同样的硬件,软件栈不同性能差很多。我列一个经过验证的推理压测环境软件栈:
这套栈在A100上跑7B模型,QPS 150+没问题,TTFT稳定在300-500ms。一万网络的工程师可以帮你全套部署好,开机即用,不需要自己折腾CUDA和框架的版本兼容问题。
为什么坑:QPS高不代表用户体验好。很多压测工具只看请求级别的响应时间,但推理服务一个请求可能产生几百个Token,平均响应时间好不代表用户感知快。我见过一个团队压测显示QPS 300,但TTFT平均3.5秒——用户发一条消息要等3秒多才看到第一个字,谁受得了?
怎么避:必须用NVIDIA GenAI-Perf这类能区分TTFT和TPOT的工具。设置TTFT的SLO(服务等级目标),比如P95 TTFT不超过1秒,P99 TTFT不超过2秒。QPS可以往后放,先把TTFT达标再说。
为什么坑:合成流量通常是固定长度的请求、均匀的并发模式。但真实用户的请求长度分布是长尾的——大部分请求很短,但偶尔有几个超长请求(比如上传一整篇文档让AI总结)。这些超长请求才是压垮推理服务的元凶。
怎么避:上线前至少做一轮流量回放,用GoReplay抓取线上1-2小时的真实流量,按1:1比例回放。如果条件不允许,也要按真实分布生成合成流量——短请求占70%、中等长度20%、超长请求10%,并发模式也要模拟真实的波峰波谷。
为什么坑:GPU推理服务对网络延迟很敏感,尤其是分布式推理场景。测试环境用内网万兆,生产环境走公网BGP,延迟和丢包率完全不同。压测出来的数据好看,一上生产就拉胯。
怎么避:测试环境的网络配置尽可能跟生产一致。一万网络的服务器支持BGP多线+CN2 GIA回国优化,压测时可以直接用跟生产相同的线路配置,确保网络层面不产生偏差。
为什么坑:推理服务的显存占用不是固定的——随着并发数上升,KV Cache会急剧膨胀。一个7B模型,batch size 1时可能只占12GB显存,batch size 64时可能飙到40GB以上。不测OOM边界,并发一上来服务直接挂。
怎么避:做阶梯式并发压测,从1并发开始,每次翻倍,直到服务返回OOM错误或TTFT超过SLO阈值。记录下每个并发级别的显存占用和KV Cache大小,找到服务的"安全并发上限"。A100 40G跑7B模型,安全并发通常在48-64之间,超过这个数就要考虑上A100 80G或多卡分布式。
为什么坑:GPU推理服务的性能受多种因素影响——GPU温度、功耗墙、其他租户的干扰(如果是共享物理机)、网络波动。一次压测的数据代表性有限。
怎么避:至少做三轮压测,每轮间隔4小时以上,取平均值。如果用的是共享算力云,要确保测试时拿到的是独享资源。一万网络的人工定制GPU是物理机独享,没有邻居干扰,压测结果更稳定可靠。
不能替代。CPU跑推理跟GPU跑推理,性能差距是两个数量级。一个7B的Qwen模型,用A100推理TTFT大约300ms,用顶级Xeon CPU跑可能要十几秒——这还怎么测?CPU压测只能验证API层的逻辑正确性,比如请求格式、鉴权、路由这些,真正看性能必须上GPU。而且推理框架的优化(比如FlashAttention、PagedAttention)都是针对GPU架构设计的,CPU上跑出来的数据对生产毫无参考价值。我建议的做法是:用CPU做功能验证和回归测试,用GPU做性能压测和容量规划。一万网络的T4整卡月付才¥900,拿来当CPU压测的补充也完全划得来。
这种情况很常见,原因通常出在几个地方:一是CPU预处理成了瓶颈——Tokenization、图像预处理这些操作如果在CPU上跑,会拖慢整个流水线,GPU大部分时间在等数据。用vLLM或TensorRT-LLM的时候,检查一下数据加载管道的batch size是否匹配。二是推理框架的优化没打开——比如TensorRT-LLM没启用inflight batching,并发请求的处理效率会差很多。三是模型太大了装不下——如果模型显存占用量接近物理显存上限,GPU的显存交换会严重拖慢速度。解决办法是:先排查CPU利用率,如果CPU一直跑满,说明预处理瓶颈,考虑增加预处理worker或优化数据管道。如果CPU空闲但GPU利用率低,检查推理框架配置和模型大小。A100跑7B模型,正常推理场景GPU利用率应该在70-90%。
GoReplay的旁路监听模式对线上服务基本无影响——它通过复制网络接口的流量包来抓取请求,不经过业务进程的栈。但要注意几点:一是回放时不要直接往线上环境回放,必须搭一套独立的测试环境。二是抓取流量时如果磁盘IO成为瓶颈,可能会影响线上服务的日志写入,建议把抓取流量写到独立的磁盘或使用内存缓冲。三是高并发场景下(万级QPS),GoReplay本身的CPU和内存开销会上升,建议在单独的机器上部署抓取端。如果对线上稳定性有严格要求,可以用Tcpcopy的流量采样模式,只抓取1%或10%的流量做样本,降低风险。
这个问题没有统一答案,取决于你的业务量级。但有个基本公式:压测目标QPS = 预估峰值QPS × 1.5 ~ 2倍的安全系数。比如你的推理服务日常QPS是500,大促峰值可能到1500,那压测目标就要做到3000 QPS以上。另一种思路是按用户数推算:如果推理服务有10万DAU,每个用户平均每天发20条请求,集中在8小时内,那平均QPS大约是70,峰值至少是平均的5-10倍,所以压测要做到700-1400 QPS。建议从低到高做阶梯式压测,记录每个并发级别的TTFT和TPOT,找到性能拐点。这个拐点通常就是服务的"安全容量上限"。
核心就盯四个指标:TTFT、TPOT、显存占用、GPU利用率。TTFT的P95超过1秒就要警惕,超过2秒必须优化。TPOT如果超过100ms,用户会感觉"打字慢",体验明显下降。显存占用如果接近物理显存上限的90%,说明安全余量不够,并发再涨一点就可能OOM。GPU利用率如果一直低于50%,说明要么配置不合理,要么模型太小不值得用这张卡。另外还有一个容易被忽略的指标——显存带宽利用率。A100的HBM2e带宽是2TB/s,如果实际利用率不到30%,说明推理框架的显存访问优化没做好。可以用nvidia-smi或DCGM查看这些指标,配合Grafana做成可视化看板,一眼就能看出问题。
差别很大。7B模型属于小模型,单卡A100就能跑,压测重点在QPS和并发吞吐量,关注CPU预处理和网络IO是否能跟上。70B模型属于大模型,单卡显存放不下,需要多卡张量并行或流水线并行,压测的重点就变成了卡间通信效率(NVLink带宽)、显存分配策略、以及KV Cache的内存管理。举个例子,7B模型压测时TTFT主要受请求长度影响,而70B模型压测时TTFT不仅受请求长度影响,还受张量并行度影响——并行度从4卡降到2卡,TTFT可能翻倍。所以压70B+的模型,一定要在测试环境验证多卡拓扑结构是否跟生产一致。一万网络的H100 8卡整机采用NVLink+NVSwitch全互连,卡间通信带宽900GB/s,是压测大模型的理想环境。
这个看你的生产环境配置。如果生产用的是物理机独享GPU,那测试环境也必须是物理机,MIG或vGPU虚拟化会引入额外的调度开销,压测数据不准。如果生产用的是MIG切分或算力云弹性切片,那测试环境也要用同样的虚拟化方案。H100支持MIG 1:7切分,每份约10GB显存,适合跑小模型或做多租户隔离验证。A100也支持MIG,但最大只能切7份,每份5GB起。一万网络的AI算力云支持A100 1/20切片(4G显存,¥900/月),适合做极低成本的接口验证压测。但正经的性能压测,我建议还是上物理机独享,别省那点钱。
分三步走。第一步看GPU利用率,如果利用率低(<50%),大概率是CPU预处理或网络IO瓶颈。用perf top或py-spy看CPU热点,如果是Tokenization占太多,考虑用更快的分词器(比如rust版本的tokenizers)。第二步看显存带宽利用率,如果利用率高(>80%)但TTFT仍然超标,说明模型本身的计算密度太高,需要升级显卡或做模型量化。A100跑BF16的7B模型如果TTFT超标,换成INT4量化通常能降30-50%的延迟。第三步看是否有多卡通信瓶颈——如果是分布式推理,检查NVLink带宽利用率,如果接近上限,考虑调整张量并行度或改用流水线并行。一万网络的工程师可以在部署时帮你做一键性能诊断,从CUDA kernel profiling到网络延迟探测一条龙搞定。
GPU推理服务的流量回放和压力测试,不是传统Web压测的简单延伸,而是一个全新的技术栈。TTFT、TPOT、显存KV Cache管理、CUDA kernel调度——这些指标做不好,服务上线就是赌命。我做了这么多年IDC和算力服务,看到太多团队在这个环节栽跟头。说句实在话,大部分推理服务的性能问题,不是硬件不够好,而是压测没做透。一个靠谱的压测流程,应该包括:GoReplay流量回放摸清真实请求分布 → GenAI-Perf全量压测拿到TTFT/TPOT基线 → 阶梯并发找OOM边界 → 三轮以上验证取均值。测试环境配置上,一万网络的A100 40G ¥2800/月或H100 8卡整机方案,都是验证过的、性价比高的选择。别在这上面省钱——压测省下的钱,最后都会加倍赔在生产事故上。
数据来源:本文价格数据来自一万网络(idc10000.net)官网产品页及行业公开报价,部分对比数据来自NVIDIA官方文档与社区实测。具体配置与价格以签约时最新报价与合同为准,参考链接:https://www.idc10000.net/ 人工定制GPU、H100方案、AI算力云页面。
Copyright © 2013-2020 idc10000.net. All Rights Reserved. 一万网络 科技有限公司 版权所有 深圳市科技有限公司 粤ICP备07026347号
本网站的域名注册业务代理北京新网数码信息技术有限公司的产品