新闻详情

新闻详情

首页 / 资讯中心 / 详情

我把推理服务的并发调到 64,结果延迟从 800ms 飙到 6 秒——聊聊吞吐和延迟这笔账

发布时间:2026/10/1 19:47:58来源:尧图网络
我把推理服务的并发调到 64,结果延迟从 800ms 飙到 6 秒——聊聊吞吐和延迟这笔账
上礼拜五快下班那会儿我的后台监控突然开始报警P99 延迟一路从平时的八百毫秒冲到了快六秒。我心想坏了是不是哪段代码又炸了赶紧拉日志看。结果日志干干净净一个错误都没有就是单纯的慢。我盯着那个数字看了半天突然反应过来——是我手贱早上把服务的最大并发数从 8 调到了 64。先说清楚我说的这个服务是指把大模型封装成一个对外能调的推理服务比如用 vLLM 或者 Triton 这类推理引擎架起来的。模型本身没变参数没动就改了一个并发配置性能就崩成这样。你可能觉得这事有点反直觉——并发开大点不是应该吞吐更高、大家更快吗我也是这么想的结果现实给我上了一课。这里头有个特别关键的误区很多人以为推理服务的瓶颈在算得快不快其实瓶颈在怎么把活排队排好。模型推理不像普通的 Web 接口你请求一个就开一个线程去处理就行。GPU 上的计算是串行的一次只能真正跑一个前向过程你并发开高了请求全堆在 GPU 上排队等着谁也没法插队。这就好比一个只开了一个收费窗口的收费站你把来车从 8 辆放宽到 64 辆结果就是排队的车从一长条变成一眼望不到头单车的通过时间反而被拉长了。我第一次调这个参数的时候其实就踩过这个坑但当时没当回事以为只是偶发。真正让我疼的是这次线上事故。我把并发从 8 调到 64本意是想趁着流量上来之前多扛点并发结果恰恰相反——吞吐不升反降因为单请求延迟翻了好几倍坏请求触发的重试又多了一批雪球越滚越大。有句话怎么说的来着你在本地最多测出个寂寞线上高并发一压那些你以为稳如老狗的东西全现原形了。那是不是并发越开越低越好也不是。并发太低GPU 喂不饱白白浪费算力。这里头有个平衡点跟一个叫批处理batching的机制强相关。现代推理引擎会在同一时刻把多个请求拼成一个 batch 一起喂给 GPU这样虽然单条请求还是串行但多条请求能共享权重加载、共享显存里的KV 缓存key-value cache就是模型算过的中间结果摊下来每条的成本反而低了。所以并发太低吃不到批处理的甜头太高又把排队搞炸中间那一段才是黄金区间。你可能会问那到底开多少合适我没法给你一个万能数字因为它跟你的模型大小、显存、吞吐目标全绑在一起。但有个笨办法挺管用——直接压测把并发从 1 往上慢慢加每次盯着两个指标看一个是 P99 延迟一个是每秒钟能跑多少个 token输出token数/秒。你会发现一个神奇的拐点在拐点之前并发上去吞吐也上去过了拐点并发再上延迟开始断崖式上涨吞吐反而开始回缩。那个拐点就是你这个服务现实的承载力。打岔说一句我那台机器是双卡 A100内存 80G听起来很唬人实际上并发过 16 就开始明显吃紧了。别被显卡的规格唬住以为显存大就能扛住一切显存是能装下模型但不代表能装下同时排队的一堆请求的中间结果。这也是我这次事故里学到最深刻的一课。现在回头想我真正缺的不是并发配置是一套限流和熔断机制。限流rate limiting就是提前规定好这个服务一秒最多接多少个请求超了就排队或者直接拒绝宁可让部分请求快速失败也不让所有请求一起卡死。熔断circuit breaker更狠一旦发现连续失败率超过阈值直接把流量切走先保服务不崩。这两样东西听起来像是后端工程师的活儿但你做 AI 推理服务早晚都得会因为模型推理比普通接口更娇气一堵就是灾难级的。还有个小坑我得提一嘴就是压测的时候别用异步客户端的默认配置去测很多库的重试策略是失败就重试在高延迟下会把请求数又翻个好几倍测出来的延迟是虚高的。我自己就上过这个当测出来的曲线惨不忍睹后来才发现是重试把服务又打了一层。关于吞吐和延迟这笔账我现在的态度是别再盯着并发开到 64这种数字自我感动了先想想你的业务到底要的是低延迟还是高吞吐。如果你的场景是客服问答这种对响应时间敏感、但对量要求没那么极限的那低并发、稳延迟更实在如果是批量生成、离线跑任务这种不着急要结果的那高吞吐、能排队才是你该追求的。那你现在在用的推理服务并发到底开的多少你是靠压测拍出来的还是拍脑袋定的评论区聊聊你的拐点在哪我挺好奇的。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

从Figma到Neovim:theSVG 10+插件与扩展生态全景清单 2026/10/1 20:36:47

从Figma到Neovim:theSVG 10+插件与扩展生态全景清单

从Figma到Neovim:theSVG 10插件与扩展生态全景清单 【免费下载链接】thesvg 7,400 brand SVG icons for developers. Tree-shakeable, typed, open source. npm i thesvg 项目地址: https://gitcode.com/gh_mirrors/th/thesvg theSVG 是一个开源的品牌 SVG 图…

阅读更多 →
机器学习大作业救星:Python+Streamlit算法可视化平台实战 2026/10/1 20:36:46

机器学习大作业救星:Python+Streamlit算法可视化平台实战

简介:这份资源是面向计算机、电子信息工程、数学等专业大学生的机器学习课程设计、期末大作业与毕业设计参考方案,核心为一个机器学习算法可视化平台,配套完整源代码与文档说明,帮助读者快速理解算法原理并完成可运行的项目交付。…

阅读更多 →
IAP升级死机?中断向量表重映射的绝对禁忌与正确实操 2026/10/1 20:36:40

IAP升级死机?中断向量表重映射的绝对禁忌与正确实操

做过IAP升级的嵌入式工程师,十有八九都遇到过这种场面:固件下载完成、校验通过,一复位,板子直接“睡死”——灯不闪、串口无输出、按复位键也没反应。更诡异的是,有些机器第一次升级后一切正常,第二次再升就…

阅读更多 →
RTC实时时钟驱动开发实战:从初始化到低功耗唤醒与校准 2026/10/1 20:36:39

RTC实时时钟驱动开发实战:从初始化到低功耗唤醒与校准

简介:面向嵌入式驱动开发者的RTC(实时时钟)驱动开发参考包,围绕实时时钟芯片的驱动实现展开,覆盖初始化、时间读取与设置、中断处理、电源管理、闰年与月份天数更新等关键环节,适合需要基于嵌入式平台实现或…

阅读更多 →
AI编程工具经验分享:把 Cursor Base URL 改到 TaoToken 的完整配置与验证 2026/10/1 20:36:39

AI编程工具经验分享:把 Cursor Base URL 改到 TaoToken 的完整配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
笑死人不偿命:最新经典MSN签名档里藏着哪些AI工具配置梗——TaoToken统一Key接入Cline与CC Switch的settings.json骨架 2026/10/1 20:36:39

笑死人不偿命:最新经典MSN签名档里藏着哪些AI工具配置梗——TaoToken统一Key接入Cline与CC Switch的settings.json骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉