跳转至

调度器

FastDeploy 目前支持两种调度器: 本地调度器全局调度器 。 全局调度器专为大规模集群设计,能够基于实时工作负载指标在节点间实现二级负载均衡。

调度策略

本地调度器

本地调度器可以等效于内存管理器,根据 任务队列长度TTL 的配置进行内存淘汰。

全局调度器

全局调度器基于 Redis 实现,各个节点根据自身 GPU 负载情况,空闲时主动从其他节点窃取任务,然后将任务的执行结果推送回原节点。

PD分离调度器

基于全局调度器,FastDeploy 引入了专为大语言模型推理场景优化的 PD 分离调度策略。该策略将推理流程解耦为两个独立阶段: - Prefill 阶段 :构建 KV 缓存,该过程计算密集度高、显存占用大,但延迟低;

  • Decode 阶段:进行自回归解码,该过程串行执行、时延高,但显存占用低。

通过角色分离(prefill 节点负责接收并处理请求,decode节点完成后续生成),可以更细粒度地控制资源分配、提高吞吐量与 GPU 利用率。

配置参数

字段名 字段类型 是否必填 默认值 生效范围 说明
scheduler_name str local local,global,splitwise 调度器名:localglobalsplitwise
scheduler_max_size int -1 local 任务最大队列长度
scheduler_ttl int 900 local,global,splitwise 任务最大存活时间(秒)
scheduler_host str 127.0.0.1 global,splitwise redis服务地址
scheduler_port int 6379 global,splitwise redis服务端口
scheduler_db int 0 global,splitwise redis数据库序号
scheduler_password str "" global,splitwise redis访问密码
scheduler_topic str default global,splitwise 在同一个主题下的节点之间才会发生任务调度
scheduler_min_load_score float 3 global 当节点的负载大于最小阈值时,若其他节点空闲则可以窃取该节点的任务
scheduler_load_shards_num int 1 global 集群负载信息表的分片数
scheduler_sync_period int 5 splitwise 节点负载同步周期(秒)
scheduler_expire_period int 3000 splitwise 节点信息失效时间(秒),用于心跳机制
scheduler_release_load_expire_period int 600 splitwise 请求失效释放负载时间(秒)
scheduler_reader_parallel int 4 splitwise 输出读取线程数
scheduler_writer_parallel int 4 splitwise 写入线程数
scheduler_reader_batch_size int 200 splitwise 每次从 Redis 获取结果的 batch 大小
scheduler_writer_batch_size int 200 splitwise 每次向 Redis 写入结果的 batch 大小