返回 S01~S90 教材库
S24 · 总 Day 114教材已备 ≠ 学习已完成

S24:FIFO、Priority 与 Fair-Share 的策略比较

调度策略决定有限 serving 容量先服务谁、等待多久以及谁可能被饿死;低平均延迟、公平、优先级与吞吐通常不能同时最大化。

2026-12-16scheduling、priority、fairness、starvation

内容类型:预习教材(不代表已完成)
日期:2026-12-16
阶段:P2 · AI Systems Engineering 90
总路线:Day 114 / 360
周次 / 节奏:W4 · 周三引导练习
状态:教材已备;学习未完成
主题:scheduling、priority、fairness、starvation

一句话定义

调度策略决定有限 serving 容量先服务谁、等待多久以及谁可能被饿死;低平均延迟、公平、优先级与吞吐通常不能同时最大化。

学习目标

  1. 能在同一 fixture 上比较 FIFO 与 priority 或 fair-share 中的一种策略。
  2. 能定义请求级、租户级和 token/工作量级公平的差别。
  3. 能观察 priority inversion、starvation 与 head-of-line blocking。
  4. 能提出 aging、quota、weighted fair queue 等缓解思路,但保持实现轻量。

核心知识

FIFO 按到达顺序,规则透明,但长请求会阻塞后来短请求。Priority 允许高风险或交互请求优先,却可能让低优先级永久等待;若任务不可抢占,已经运行的长低优先级请求仍会阻塞高优先级,形成一种 priority inversion。Fair-share 在租户间分配服务份额,可避免大租户独占,但实现需估计工作量并维护状态。

公平的分母很重要:每租户相同请求数不等于相同 token/compute;长上下文请求消耗更多 KV 与 prefill。按 token 配额更接近资源,却可能惩罚合法复杂任务。Weighted fair share 可按服务等级、风险或付费权重分配,但权重是一项治理决策,不是纯技术参数。

Scheduler 还需处理取消、超时、最大等待和 aging。Aging 随等待时间提高优先级,降低 starvation。Admission 应在无法满足硬约束时提前拒绝,而不是让请求在队列中无限等待。

机制与推导

可定义优先级分数:

[ score_i=basePriority_i+\alpha\cdot wait_i-\beta\cdot estimatedWork_i ]

这只是教学形式:α 控制 aging,β 偏好短作业。Estimated work 误差会影响公平,也可能被用户操纵。租户公平可观察服务份额 share_t = served_work_t / total_served_work 与目标权重差,而不仅是请求完成数。

比较时固定到达和 service time,报告 mean/p95 wait、每租户完成量、最大等待及是否 starvation。一个策略平均更快不代表每租户更公平。

最小练习或观察步骤

  1. 给 S23 fixture 增加 tenant、priority 与 estimated work 字段。
  2. 保持 FIFO 为 baseline,只实现 priority 或轮转 fair-share 一种策略。
  3. 用完全相同到达/service 输入运行两种策略。
  4. 比较整体 mean/p95、每租户等待、最大等待和完成工作量。
  5. 加一串持续高优先级请求,观察低优先级是否 starvation,再写一个轻量缓解思路。

常见误区与边界

  • Priority 等同紧急程度,却没有租户配额与防滥用。
  • 只按完成请求数评估公平,忽略 token/工作量差异。
  • 比较策略时改变了 fixture 或服务时间。
  • 平均延迟降低就称所有用户体验改善。
  • 在非抢占模型中假设高优先级能立即中断当前任务。

系统场景连接

欺诈实时授权、客服交互和夜间报告可能共享模型服务。全部 FIFO 会让批量长任务阻塞实时流;绝对 priority 又可能让分析任务长期无法完成。平台需把业务临界性、租户预算和最小服务份额编码成明确策略,并把实际等待/拒绝记录给后续 SLO 与 FinOps。

自检问题

  1. 请求数公平与计算资源公平有何不同?
  2. 非抢占 scheduler 中 priority inversion 怎样出现?
  3. Aging 能缓解什么,又可能引入什么取舍?
  4. 为什么 estimated work 本身可能造成新不公平?

专业课程对齐

  • 阅读 vLLM 官方文档 中 scheduler、priority scheduling 或 serving 配置相关内容,观察真实调度器维护 sequence 状态与 token budget 的方式。
  • 阅读 MIT 6.5840 的并发、负载和容错课程视角,连接单节点策略与分布式 worker 失效后的再调度问题。
  • 阅读 Stanford CS329S 的 ML system design 和 responsible deployment 主题,把公平定义连接到业务用户与运营目标。

深入学习提示

用同一组请求画 Gantt 图,策略差异会比汇总数字更直观。对“公平”写出主体、资源与时间窗口,例如“每租户每分钟获得目标 token 份额”。再构造反例:短请求优化降低总体均值,却让一个重要长请求超时。调度没有价值中立的唯一答案,能力在于说明目标和牺牲。

学后填写区

  • 选择比较的两种策略:
  • 公平的具体定义:
  • 整体与分租户观察:
  • starvation 反例:
  • 一个仍需业务决定的权重:
重点主线 · H02 · Harness 循环、状态与恢复本周配套机制实验 · W4 · 推理服务:吞吐、等待与长尾的交换 →详细讲义、离线示例与源码;按需要选读,不新增必交任务。
本页是未来 P2 的预习教材。等 P1 完成并正式进入 P2 后,再填写真实理解、练习结果和不确定项;现在阅读不会改变P1 唯一进度账本