news 2026/10/28 15:24:28

显存高不等于该扩容:推理服务需要排队与预热联合信号

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
显存高不等于该扩容:推理服务需要排队与预热联合信号

模型加载完后,即使一条请求也没有,显存占用也可能很高。反过来,显存还没满,排队的长提示已经能把首字延迟拖垮。用一个显存百分比控制扩容,很容易在这两种场景里做反决定。

10 月 19 日 vLLM 的 Elastic EP 介绍了把背景准备与拓扑提交分开的做法。它提醒我们:扩容命令发出,与新容量真正可以接单,是两个时间点。新增实例正在加载权重时,不能把它当作已经可用的吞吐。Elastic EP 原文

先定义还缺多少可用容量

至少需要同时看三类量:尚未处理的工作、缓存余量、已就绪的执行资源。队列请求数不够精确,十条短请求和十条十万 Token 提示不是同一份工作。排队 Token 仍只是近似,还要区分 prefill、decode、模型与服务等级。

图里的服务器数量与柱形只是概念示意。下面给出一个离线策略函数:阈值全是教学参数,用来说明“已申请”不能重复计为“缺口”。

from dataclasses import dataclass from math import ceil @dataclass(frozen=True) class Signals: queued_tokens: int free_kv_blocks: int ready: int warming: int def desired(s, tokens_per_worker=1000, kv_reserve=10, maximum=8): values = (s.queued_tokens, s.free_kv_blocks, s.ready, s.warming) if any(x < 0 for x in values) or tokens_per_worker <= 0: raise ValueError("invalid signal") if maximum < s.ready + s.warming: raise ValueError("capacity exceeds configured maximum") extra = ceil(s.queued_tokens / tokens_per_worker) if s.free_kv_blocks < kv_reserve: extra = max(extra, 1) target = min(maximum, max(1, s.ready + extra)) launch = max(0, target - s.ready - s.warming) return target, launch assert desired(Signals(2500, 20, 2, 1)) == (5, 2) assert desired(Signals(0, 50, 2, 0)) == (2, 0) assert desired(Signals(0, 5, 2, 1)) == (3, 0) print("target and new launches:", desired(Signals(2500, 20, 2, 1)))

这个函数只计算扩容建议,没有自动缩容。当前实例数与瞬时队列共同决定目标值,队列抖动会让建议抖动;生产控制器还需要观测窗口、冷却时间、最大变化率,以及对长时间预热失败的处理。tokens_per_worker不是显卡的固定额定值,应来自该模型和负载下的可持续处理能力。

指标没有值,不能解释成没有负载

如果用 Prometheus 驱动扩缩容,查询必须先聚合成控制器可消费的单值,并明确缺失序列如何处理。KEDA 2.18 的 Prometheus scaler 文档解释了单元素结果、阈值与空结果的相关选项;这是已归档版本的机制参考,部署时应核对实际安装版本。

监控断流时直接得到零,会把故障误认为空闲。新实例数增加、就绪数不增,则可能是模型加载、配额或健康检查出了问题,继续指数式申请实例未必有用。缩容更需要单独路径:停止接单、等待在途请求、迁移或放弃可重建缓存,最后再释放资源。

最后要把“目标实例数”与用户结果对账。若队列下降只是因为大量请求被拒绝,不能把它记成扩容成功;若预热占满网络使旧实例延迟变差,也需要降低准备并发。本文没有连接 Kubernetes、KEDA 或推理集群,代码只验证单次建议的算术和输入约束,不能据此承诺扩容速度或 SLO。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/28 15:24:01

cloudflare-os:用 Rust/WASM 在浏览器里实现云桌面与文件系统

说实话&#xff0c;我第一次看到 cloudflare-os 这个项目名的时候&#xff0c;第一反应是“谁这么大胆&#xff0c;敢用 OS 来命名一个浏览器项目”。但深入了解之后发现&#xff0c;这恰恰是它最值得玩味的地方&#xff1a;它把操作系统的交互范式整体搬到了浏览器里&#xff…

作者头像 李华
网站建设 2026/10/28 15:21:00

PCB封装命名规范:尺寸编码、焊盘命名与库管理

简介&#xff1a;这是一份面向硬件工程师、PCB Layout 设计者及封装库管理人员的 PCB 封装命名规范文档&#xff0c;针对元器件库命名混乱、设计与生产衔接不一致等问题&#xff0c;提供可参照的标准化规则。压缩包共 1 个 docx 文件&#xff0c;约 1.63MB&#xff0c;以文字规…

作者头像 李华
网站建设 2026/10/28 15:20:45

印制电路手册:PCB设计制作与制造检测全流程解析

简介&#xff1a;《印制电路手册》第6版中文高清版面向电子工程师、PCB设计师与制造工程师&#xff0c;系统梳理从设计基础、布局布线原则到制造工艺、检测标准及应用趋势的完整知识框架&#xff0c;适合查阅规范、补齐概念与对照实际项目。包内为1个PDF文件&#xff0c;约246.…

作者头像 李华
网站建设 2026/10/28 15:18:35

MySQL事务原理与实战:ACID特性与高并发优化

1. MySQL事务的本质与核心价值从事数据库开发这些年&#xff0c;我处理过太多因为事务使用不当导致的数据灾难。记得有一次电商大促&#xff0c;由于未正确处理事务边界&#xff0c;导致库存超卖2000多件商品&#xff0c;直接损失超百万。这个惨痛教训让我深刻认识到&#xff1…

作者头像 李华
网站建设 2026/10/28 15:18:34

智能Agent记忆系统优化:从LangChain到MemOS图谱架构

1. 为什么需要为Agent构建专属记忆系统&#xff1f;在构建智能Agent时&#xff0c;开发者经常遇到一个关键瓶颈&#xff1a;LangChain提供的原生Memory模块功能有限&#xff0c;难以满足复杂场景下的记忆需求。传统Memory实现通常采用简单的键值对存储或固定长度的对话历史记录…

作者头像 李华