配置中心提供 TokenWorks 工作站各项核心配置的热更新能力,支持调度策略、模型路由、分流代理、请求限流、流量镜像和全球调度的在线配置,修改后无需重启服务即可生效。
调度策略
调度策略分三部分配置:
主调度策略:核心路由管线,按三层优先级(会话亲和 → 前缀缓存 → 负载均衡)将请求路由到推理实例,逐层匹配,命中即路由。
前缀索引:调度器内常驻的前缀索引树,追踪各实例的 Prompt 前缀缓存状态,用于估算理论命中率上限;开启前缀缓存时还同时作为路由匹配依据。在此配置其内存边界与清理周期。
PD 分离:仅在 PD 分离部署模式下生效,为 Decode 阶段单独配置调度策略。
主调度策略
主调度策略按优先级分三层执行,请求依次经过各层匹配,命中即路由,未命中则下沉到下一层。会话亲和、前缀缓存为可选配置,可通过开关按需启用;负载均衡策略为必选配置。
主调度策略的作用域与部署模式相关:在 PD 一体模式下,作为全局调度管线对所有请求生效;在 PD 分离模式下,仅作用于 Prefill 角色,Decode 阶段的调度策略在下方"PD 分离"区单独配置。
第 1 层:会话亲和(Session Aware)
将相同会话的请求优先路由到同一推理实例,避免因实例切换导致上下文丢失。适用于多轮对话、有状态推理等场景。
开启后,请求须携带指定的会话 Header 才能生效;未命中时下沉到前缀缓存层。
参数 | 说明 |
亲和模式 | 选择亲和路由的强度。
|
会话 Header | 用于识别会话 ID 的 HTTP 请求头字段名,默认为 说明 已知会自带 session header 的客户端: • Claude Code:X-Claude-Code-Session-Id(每个会话一个) 其它主流 LLM 客户端(OpenAI/Anthropic SDK、LangChain 等)默认不带任何 session header,需要调用方在请求里显式注入。不带此 Header 的请求会按普通调度策略处理。 |
会话 TTL | 会话绑定关系的存活时间(秒),过期后自动清除。默认值为 1800 秒。 |
最大条目数 | 会话亲和缓存可保存的最大会话记录数。超出上限后,最早的记录将被淘汰。默认值为 100000。 |
软最大负载比 | 仅在 Soft 模式下生效。当首选实例的负载超过平均负载 × 软最大负载比时,放弃亲和路由,选择负载更低的实例。默认值为 1.5。 |
第 2 层:前缀缓存(Prefix Cache)
优先选择已缓存相同前缀的实例,减少重复计算,提升缓存命中率。适用于系统提示词固定、批量文档处理等输入前缀高度重复的场景。未命中时下沉到负载均衡策略层。
参数 | 说明 |
负载容忍因子 | 缓存命中的实例负载超过平均负载 ×(1 + 容忍因子)时,不再优先路由到该实例。默认值为 0.3。 |
等待请求阈值 | 实例等待中的请求数超过此值时,认为实例过载。即使该实例有缓存命中,也不再优先向其路由,避免单实例过载。默认值为 2。 |
命中率阈值 | 前缀匹配长度占 Prompt 总长度的比例低于此值时,视为未命中。默认值为 0.50。 |
第 3 层:负载均衡策略
在会话亲和与前缀缓存均未命中时,按所选算法在推理实例间分配请求。支持以下算法:
算法 | 适用场景 |
| 选择当前正在处理 Token 数最少的实例。适合 Token 长度差异大的场景,可有效均衡计算压力。 |
| 选择当前请求数最少的实例。适合请求处理时长相近的场景。 |
| 轮询,依次将请求分配到各实例。适合实例性能均匀、负载相对稳定的场景。 |
前缀索引
调度器内常驻的前缀索引树,用于计算理论字符缓存命中率上限。开启前缀缓存调度策略时,索引数据同时作为路由匹配依据,优先将请求调度到缓存命中率最高的实例。以下参数控制索引的内存边界与清理周期。
参数 | 说明 |
缓存 TTL | 前缀索引条目的存活时间(秒),过期后自动清除。默认 259200 秒(3 天)。若业务会话通常在 1 小时内结束且显存紧张,可缩短至 3600 秒以加快冷数据回收。 |
维护间隔 | 后台扫描并清除过期索引条目的执行周期(秒)。默认 60 秒,适合大多数场景;仅当集群 CPU 负载持续偏高时,可酌情调大。 |
内存门限比例 | 与预留内存共同决定调度器进程的内存驱逐触发点,以先触发者为准。 调度器进程内存超过容器内存 × 该比例时,按 LRU 驱逐最久未使用的索引条目。0表示用默认值0.70。 调度器容器频繁 OOM 时可调低;索引条目频繁过早被清除、影响路由决策时可酌情调高。 |
预留内存 | 为容器系统和运行时保留的最低可用内存(GB),与内存门限比例共同决定内存驱逐触发点。 调度器进程内存超过容器内存 − 预留内存时,按 LRU 驱逐最久未使用的索引条目。0表示用默认值 1.50 GB。 调度器容器被系统 OOM Kill 时可调大;索引条目频繁过早被清除时可酌情调小。 |
PD 分离
在 Prefill-Decode(PD)分离部署模式下,Prefill 和 Decode 阶段分别在独立的实例上执行,可为 Decode 阶段配置独立的调度策略。
参数 | 说明 |
PD 分离模式 | 选择 PD 分离的实现方式,需与部署时使用的推理引擎保持一致,例如 |
Decode 调度策略 | PD 分离启用时 Decode 角色的独立调度策略;Prefill 角色沿用主调度策略。可选算法与主调度策略的负载均衡层一致( |
模型路由
根据请求中的 model 字段将请求路由到工作站内对应的推理服务实例。启用后,可通过"默认模型"配置项指定无匹配时的兜底行为。
默认模型 | 说明 |
严格匹配(未配置默认模型) | 仅当请求的 |
指定模型 | 当请求的 |
分流代理
将工作站接收的请求按配置规则转发到外部上游 API 服务(如PAI Token服务),实现本地推理服务与外部服务的流量协同,提升服务整体的稳定性。
启用后,需选择分流策略,并在代理列表中配置各代理条目。
分流策略
策略 | 说明 |
Weight(权重分流) | 按各代理配置的权重比例分配请求。适合灰度发布、A/B 测试等需要按比例控制流量的场景。 |
Prefix(模型前缀匹配) | 按请求的 |
代理列表
代理列表中至少包含一条"本地服务"条目,代表工作站自身的推理服务。可添加外部上游服务作为额外代理。各列含义如下:
列 | 说明 |
状态 | 该代理条目是否启用。禁用后请求不再转发至该代理。 |
代理地址 | 上游 API 服务的访问地址。"本地服务"为固定条目,表示工作站自身的推理服务。 |
模型 | 外发到上游时会用此 Model 名覆盖请求里的 model 字段。本地服务无需填写。 |
密钥 | 访问该代理所需的 API 密钥。本地服务无需填写。 |
权重 | Weight 策略下分配给该代理的流量权重,各代理按权重比例承接请求。Prefix 策略下显示为"未启用"。 |
前缀 | Prefix策略下请求里 model 字段匹配方式;后缀 * 为通配;多条命中取最长前缀;用单个 * 作为兜底。 |
故障转移 | 设置为"参与"时,当其他代理不可用或调用失败时,系统按列表顺序切换至此代理重试。本地服务不支持故障转移。 |
外部代理服务遵循其自身的限流规则,不受工作站请求限流配置的影响。
请求限流
对工作站的并发请求进行限制,防止后端推理实例因流量过大而过载。超限时可选择直接拒绝或排队等待,支持按整体生命周期、Prefill 阶段和 Decode 阶段分别设置并发上限。
参数 | 说明 |
超限处理 | 超出并发上限时的处理方式:直接拒绝(立即返回错误)或排队等待(请求进入等待队列)。 |
限流作用域 | 限流计数的粒度:
|
整体并发限流 | 请求从派发到响应结束全程占用配额(占用一个并发位直至请求完成)。仅 PD 一体部署生效,PD 分离部署下不计入。 |
Prefill 并发限流 | 观测窗口:从派发到收到首 token 之前。该阶段含引擎排队 + prefill 计算,二者无法区分,统一记为 prefill 阶段占用。PD 一体的 prefill 阶段、PD 分离的 prefill 节点 均生效。 |
Decode 并发限流 | 观测窗口:从收到首 token 到响应结束。仅 PD 分离部署生效,限制 decode 节点;PD 一体部署下不计入。 |
流量镜像
将线上真实请求按采样比例复制到目标地址,目标服务独立处理镜像流量,不影响正常请求的响应结果。适用于新版本灰度验证、性能对比和数据采集场景。
参数 | 说明 |
目标地址 | 接收镜像流量的服务地址。 |
目标模型 | 镜像请求中替换的模型名,留空则保持原始请求的模型 |
采样像比例 | 被镜像的流量占总流量的比例(0%~100%)。 |
认证 Token | 访问目标地址所需的鉴权 Token。 |
超时时间 | 镜像请求的超时时间(毫秒),超时后自动放弃该镜像请求,不影响正常请求的处理。 |
记录日志 | 是否记录镜像请求的详细日志,便于后续分析和对比。 |
全球调度
当前地域工作站推理资源紧缺时,可将业务流量调度至其他空闲地域的推理服务实例,实现全球算力统筹调配与资源高效复用。
启用全球调度后,在成员列表添加其他地域的TokenWorks服务,从而实现多地域调度:
成员名称:自定义成员名。
URL / Token :填写其他地域部署的TokenWorks服务的Base URL与 API 密钥。