为什么大模型的性能瓶颈,最后都会变成调度问题

Kevin Di

Hatched by Kevin Di

May 01, 2026

1 min read

88%

0

你以为你在优化模型,其实你在优化一台复杂工厂

如果一个大模型推理系统的吞吐量不够,直觉上最该做的事情是什么?很多人会回答:换更快的 GPU,做量化,改 attention 结构,或者继续压缩 KV cache。这个答案没错,但它只说对了一半。真正决定系统上限的,往往不是某一个“更强的算法技巧”,而是整个系统如何把算力、内存、网络、存储和设备组织起来

这就是一个容易被忽略的事实:大模型推理不是单点性能竞赛,而是调度艺术。当批大小从 1 增加到 256 时,吞吐量和时延会沿着不同曲线变化,这不是一个孤立的模型现象,而是系统在做资源分配时暴露出来的真实物理规律。你看到的“模型慢”,常常其实是“系统没有把资源用对”。

同样,在云原生平台里,CNI 管网络,kubelet 保证容器健康运行,CRI 连接运行时,CSI 管持久化存储,Device Plugin 负责把硬件设备分配给容器。看上去这些组件属于基础设施的不同层次,但它们共同回答的是同一个问题:如何让有限资源在正确的时间,以正确的方式,服务正确的任务

大模型推理和云原生调度,看似两个世界,实际上共享一条底层逻辑:性能从来不是“算出来的”,而是“编排出来的”


从“模型能力”到“系统行为”:真正的瓶颈在哪里

很多推理优化讨论会落入一个窄视角:模型结构是否高效,算子是否融合,权重是否量化,显存是否够大。它们都重要,但如果忽略系统行为,就会出现一种典型错觉:局部更快,整体却更慢。

想象一家餐厅。厨师再强,如果传菜员动线混乱,后厨与前厅沟通不畅,桌号分配错误,最后顾客仍然等很久。大模型推理系统就是这家餐厅。GPU 是厨师,KV cache 是备菜区,调度器是总控台,而 batch size 则像订单合并策略。把菜做快只是第一步,真正决定翻台率的,是订单如何聚合、何时出菜、谁先服务、资源是否被空转。

这里最关键的张力在于:吞吐量和时延天然冲突。批大小增大通常能提高吞吐,因为硬件更容易被喂饱;但批越大,请求等待越久,时延就越高。于是系统优化的核心任务不是盲目追求“更大 batch”,而是找到某个业务约束下的最优点。对于客服问答、实时助手、批处理生成、离线评测,这个点完全不同。

这也是为什么“模型质量”与“系统质量”不能分开看。一个经过量化的模型,如果 KV cache 压力下降,理论上更省显存,甚至能让系统接纳更大的并发。但量化可能带来精度损失,所以必须用更全面的基准来评估,不只是看模型单测,而是看端到端推理质量。模型是组件,系统才是产品。

当你把注意力只放在模型参数上时,你优化的是“聪明程度”;当你把注意力放到资源组织上时,你优化的是“可服务能力”。


云原生调度教会我们的,不只是“放哪儿跑”,而是“怎样才算被正确服务”

云原生最强的地方,不是把服务简单搬上 Kubernetes,而是把“运行”拆解成一组可管理的责任。节点上运行的 CNI、kubelet、CRI、CSI、Device Plugin,看似都是基础设施插件,实际上它们共同组成了一套资源可见性语言。网络是否连通,容器是否存活,存储是否就绪,设备是否可分配,这些状态被显式表达出来,调度器才知道如何决策。

这套语言对大模型推理非常重要,因为大模型推理的资源约束比传统微服务更复杂。一个请求不只是占 CPU,它可能需要:

  1. GPU 计算资源,决定解码速度;
  2. 显存资源,决定能否容纳权重和 KV cache;
  3. 网络带宽,决定跨节点通信是否成为瓶颈;
  4. 存储性能,决定模型加载和热更新是否平滑;
  5. 设备拓扑感知,决定多卡并行是否高效。

如果说云原生调度解决的是“容器跑在哪个节点上”,那么大模型推理调度解决的是“每个 token 应该在什么资源结构里诞生”。这两者的难度差异并不在于问题本身,而在于约束密度。一个普通 Web 服务的瓶颈可能主要是 CPU 或连接数,而一个 LLM 推理服务则经常同时受制于显存、KV cache、batch 组装、排队延迟、设备拓扑和模型质量损耗。

所以,真正成熟的推理平台,不能只像传统服务那样做粗粒度扩缩容,而必须像云原生调度那样,理解每个节点的能力边界,并把资源类型表达得足够细。没有资源画像,就没有精确调度。没有精确调度,就没有稳定性能。


KV cache 不是缓存而已,它是“系统记忆”,也是瓶颈放大器

在大模型推理里,KV cache 常常被当作一个显存优化对象,但它的意义远不止节省内存。更准确地说,KV cache 是系统的短期记忆层。每生成一个 token,系统都要维持这份记忆,记忆越长,成本越高。于是上下文越长,缓存越大,显存越紧,系统越容易进入资源挤压状态。

这时,量化和 GQA 就不只是“模型技巧”,而是资源重构策略。量化让 KV cache 更高效,GQA 通过共享键值减少缓存大小,甚至在某些情况下,GQA 的头数极少时就接近 MQA 的行为。它们共同做了一件事:把“每个请求都要独占一大块记忆”的模式,改造成“多个请求共享更紧凑的结构”。

这里可以用一个非常直观的比喻。假设你在组织一场会议,传统做法是每个参会者都带一套完整笔记,重复内容堆满桌面。GQA 和量化就像把笔记压缩成共享提纲,既保留关键信息,又减少桌面占用。桌面变大了,会议人数就能增加,讨论速度也能提高。

但这又带来一个重要启示:内存优化不是孤立的存储问题,而是排队问题和服务等级问题。因为 KV cache 省下来的不是“抽象的空间”,而是能否多接一个请求,能否把 batch 做得更合理,能否在时延约束内容纳更多并发。换句话说,KV cache 的优化最终会反映为调度自由度的提升。

这也解释了为什么评估不能只看模型输出质量。一个量化策略即便让模型单项指标略降,只要它显著改善 KV cache 利用率,并在端到端基准中保持整体可接受,就可能是系统层面的胜利。局部最优不等于全局最优,特别是在资源受限的推理场景里。


一个统一框架:把推理系统看作“多层资源协商”

如果把大模型推理和云原生编排放在一起看,可以得到一个更有解释力的框架:推理系统本质上是一场多层资源协商

这个协商至少有四层:

1. 计算协商

GPU 或其他加速器的计算能力如何被利用,批大小如何设定,算子如何融合,解码阶段如何分配时间片。这里的核心矛盾是吞吐和时延的平衡。

2. 记忆协商

KV cache、权重、激活值如何占用显存,是否通过量化、共享、分块、卸载等方式降低压力。这里的核心矛盾是容量和精度的平衡。

3. 拓扑协商

设备是否在同一节点,跨卡通信是否会拖慢性能,网络路径是否稳定,数据是否容易就近访问。这里的核心矛盾是局部效率和全局协调的平衡。

4. 服务协商

系统是面向实时交互还是批处理生成,是优先低时延还是高吞吐,是追求稳定尾延迟还是平均性能。这里的核心矛盾是业务体验和资源利用率的平衡。

这个框架的价值在于,它提醒我们不要把性能问题简化成“买更好的卡”或“换更激进的算法”。一旦把系统视为协商结构,很多现象就解释通了。为什么 batch size 需要在不同延迟限制下重新寻找最优值?因为服务协商变了。为什么 Device Plugin 很重要?因为硬件不再只是“存在”,而是要被精确纳入协商。为什么要看端到端质量基准?因为局部组件的变化,可能改变的是整个协商结果。

性能调优的本质,不是消灭约束,而是让约束彼此兼容。


可操作的启发:别再问“怎么让模型更快”,先问这四个问题

真正有效的优化,不是从某个技巧开始,而是从问题定义开始。你需要先弄清楚:

  • 你要优化的是平均吞吐,还是尾延迟
  • 你允许的质量损失有多大?
  • 你的瓶颈主要在计算、显存、网络,还是设备拓扑
  • 你的请求模式是低并发长对话,还是高并发短请求

这四个问题的答案,会直接决定你应该优先做什么。如果是低并发、高时延敏感场景,盲目加大 batch 往往适得其反。如果是显存紧张而质量容忍度较高的场景,量化和 GQA 可能是高收益策略。如果是多卡部署中通信开销明显,拓扑感知调度和设备亲和性就比单纯算子优化更重要。

一个简单但实用的判断标准是:先找到系统中最贵的那种等待。等待 CPU 调度,等待 GPU 空闲,等待 KV cache 释放,等待网络包传输,等待存储加载,等待请求排队。每一种等待都对应不同的优化路径。很多团队之所以优化无效,不是因为方法不够高级,而是因为他们改错了等待类型。


Key Takeaways

  1. 不要把大模型推理当作纯算法问题。它本质上是资源编排问题,性能来自系统协作,而不是单点技巧。
  2. 先定义业务约束,再选择 batch 策略。吞吐和时延天然冲突,最优批大小必须围绕服务目标确定。
  3. 把 KV cache 视为系统级资源,而不是普通缓存。量化和 GQA 的价值,最终体现在调度自由度上。
  4. 用端到端质量基准评估优化效果。不要只看模型单项指标,要看推理系统整体是否更好。
  5. 优先找出最贵的等待。性能瓶颈可能在计算、显存、网络、存储或设备拓扑,先定位再优化。

结语:未来的模型竞争,可能越来越像操作系统竞争

如果说过去的大模型竞赛像是在比谁的模型更大、更聪明,那么接下来的竞争更像是在比谁能把复杂资源组织得更优雅。模型本身当然仍然重要,但它越来越像一颗引擎,真正决定车速的,是底盘、变速箱、路线规划和交通调度。

这也是云原生和推理工程真正交汇的地方。它们共同提醒我们:智能不是单独存在的,智能总是嵌在系统里运行的。当系统能够感知资源、表达约束、协调设备、平衡质量与效率时,模型才能真正发挥出它该有的能力。

所以,下次当你看到一个大模型推理系统慢,不妨先别急着问“模型是不是不够强”。更值得问的是:这套系统有没有学会像一个成熟的调度器那样思考? 因为在现实世界里,性能的上限,往往不是算力决定的,而是编排能力决定的。

Sources

← Back to Library

Hatch New Ideas with Glasp AI 🐣

Glasp AI allows you to hatch new ideas based on your curated content. Let's curate and create with Glasp AI :)

Start Hatching 🐣