配置中心提供 InferX 工作站各项核心配置的热更新能力,涵盖请求路由、流量保护、调度优化等功能,修改后无需重启服务即可生效。
功能概览
配置中心的功能按使用场景分为以下几类:
使用场景 | 功能 | 说明 |
成本优化 | 根据请求难度自动选择 L1/L2/L3 档位的模型,简单问题用轻量模型、复杂问题用大模型,平衡成本与效果。 | |
服务稳定性 | 混合本地推理服务与外部 API 服务(如 PAI Token 服务),支持故障转移,提升服务可用性。 | |
跨地域调度推理资源,本地资源紧缺时将流量转发到其他地域。 | ||
流量保护 | 对工作站的并发请求进行限制,防止后端过载。 | |
按用户维度控制请求数、Token 用量和并发数。 | ||
路由优化 | 按会话亲和、前缀缓存、负载均衡多层优先级路由到最优实例。 | |
根据请求中的 model 字段匹配对应的推理服务实例。 | ||
灰度验证 | 复制线上请求到目标地址,用于新版本验证和性能对比。 | |
将流量按权重分配到不同的推理服务,实现灰度发布和 A/B 测试。 |
当您向 InferX 工作站发起请求时,请求会按照以下流程依次处理:
其中,降级转发需要在分流代理中配置故障转移,那么当其他代理不可用时自动切换重试。
调度策略
调度策略分三部分配置:
主调度策略:核心路由管线,按三层优先级(会话亲和 → 前缀缓存 → 负载均衡)将请求路由到推理实例,逐层匹配,命中即路由。
前缀索引:调度器内常驻的前缀索引树,追踪各实例的 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。 |
强制携带 Session ID | 开启后,不带 Session ID Header 的推理请求将在请求解析阶段被直接拒绝(HTTP 400),不进队列、不调度。 用于防止无亲和标识的大请求随机落到某个实例打爆 KV Cache。 仅在会话亲和开启时生效。 |
第 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 时可调大;索引条目频繁过早被清除时可酌情调小。 |
Block 大小 | 前缀索引分块的字节大小(默认 128)。运行时修改后旧索引不再与新分块交叉匹配,命中率会短暂下降至索引刷新;短于一个完整 Block 的前缀不会被索引。 |
PD 分离
在 Prefill-Decode(PD)分离部署模式下,Prefill 和 Decode 阶段分别在独立的实例上执行,可为 Decode 阶段配置独立的调度策略。
参数 | 说明 |
PD 分离模式 | 选择 PD 分离的实现方式,需与部署时使用的推理引擎保持一致,例如 |
Decode 调度策略 | PD 分离启用时 Decode 角色的独立调度策略;Prefill 角色沿用主调度策略。可选算法与主调度策略的负载均衡层一致( |
SGLang PD 独立配对 | 仅用于 SGLang Mooncake PD 分离场景(vLLM PD 不受影响)。开启后,调度器可以为 prefill 与 decode 实例独立、自由地配对,不再要求两侧实例编号相互对齐,从而在缓存亲和与负载均衡上获得更大的调度空间。
|
调度超时与熔断
网关等待调度结果的超时上限与熔断保护:超时回退本地轮询;持续超时达比例后熔断,冷却后由探针自动恢复。关闭熔断仅关闭快速回退保护,超时上限始终生效。
参数 | 说明 |
熔断器 | 关闭后退回纯超时回退行为(排障用);调度等待超时不受此开关影响。 |
调度等待超时 | 单次调度尝试的等待上限,超时即回退本地轮询。 |
开闸失败比例 | 10s 滚动窗口内调度失败占比(失败数/总尝试数)达到该比例即熔断开闸;样本量不足 10 时不判定,防低流量误判。 |
熔断冷却时长 | 开闸后保持熔断的时长,到期后由探针试探恢复。 |
探针等待上限 | 冷却到期后探针请求的等待上限;探针成功则闭闸恢复调度,失败则重新开闸。 |
模型路由
根据请求中的 model 字段将请求路由到工作站内对应的推理服务实例。启用后,可通过“默认模型”配置项指定无匹配时的兜底行为。
参数 | 说明 |
默认模型 |
|
近似匹配 | 未命中模型映射时,对实例的模型启用近似匹配: ① 同一模型名的不同写法可互相匹配(忽略大小写、分隔符与 Org 前缀,如 qwen2.5_72b_instruct 可匹配 Qwen2.5-72B-Instruct); ② 请求的模型名是部署模型名的简写时可匹配(如 qwen2.5-72b 可匹配 Qwen2.5-72B-Instruct); ③ 支持通配符 *。关闭时仅匹配同一模型名(允许大小写与分隔符等写法差异),不做简写与通配符匹配。 |
模型映射 | 将模型名称(支持通配符 *)与后端服务关联。匹配按从上到下顺序,首条命中即生效;命中后仅路由到所列服务,不再回退实例的模型匹配。锚定全串、大小写不敏感,纯字符串即精确匹配。 |
智能选模
智能选模通过外部分类服务自动评估请求难度,将请求路由到不同档位(L1/L2/L3)的候选模型,在保障回答质量的同时降低推理成本。
详细配置说明请参见智能选模。
weight 分流不区分模型名,与智能选模不兼容,无法同时开启。如需使用智能选模,请先将分流切换为 prefix 模式或关闭分流路由。
服务灰度
服务灰度用于将流量按权重分配到不同的推理服务,实现灰度发布和 A/B 测试。通过配置灰度规则,可以控制不同模型或所有模型的流量分配比例。
灰度规则
每条灰度规则包含模型选择和服务权重配置。匹配按从上到下顺序,首条命中即生效。
列 | 说明 | 示例 |
服务 | 选择要应用灰度规则的模型服务。支持通配符 *,如"所有模型 (*)"表示匹配所有模型。 | 所有模型 (*)、qwen-* |
权重 | 服务:选择或输入目标推理服务名称。 | 选择服务 |
权重:分配给该服务的流量权重。占比根据权重自动计算显示。 | 100、0 |
单击添加目标可为当前规则增加更多服务,实现流量按比例分配。
单击添加规则可创建新的灰度规则,匹配按从上到下顺序,首条命中即生效。
分流代理
将工作站接收的请求按配置规则转发到外部上游 API 服务(如PAI Token服务),实现本地推理服务与外部服务的流量协同,提升服务整体的稳定性。
适用场景:适合需要混合本地与外部服务、提升稳定性的场景,例如灰度发布、A/B 测试、故障转移等。通过分流代理可以将部分流量转发到外部 API 服务,实现服务的高可用和灵活切换。
分流代理和智能选模一般不同时启用。两者服务于不同的使用需求:分流代理用于服务稳定性和灰度发布,智能选模用于成本优化。
启用后,需选择分流策略,并在代理列表中配置各代理条目。
分流策略
策略 | 说明 |
Weight(权重分流) | 按各代理配置的权重比例分配请求。适合灰度发布、A/B 测试等需要按比例控制流量的场景。选择此策略时,代理列表中无需配置模型规则,只需设置权重值。 |
Prefix(模型前缀匹配) | 按请求的 |
代理列表
代理列表中至少包含一条"本地服务"条目,代表工作站自身的推理服务。可添加外部上游服务作为额外代理。各列含义如下:
列 | 说明 |
状态 | 该代理条目是否启用。禁用后请求不再转发至该代理。 |
代理地址 | 上游 API 服务的访问地址。"本地服务"为固定条目,表示工作站自身的推理服务。 |
密钥 | 访问该代理所需的 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。 |
超时时间 | 镜像请求的超时时间(毫秒),超时后自动放弃该镜像请求,不影响正常请求的处理。 |
记录日志 | 是否记录镜像请求的详细日志,便于后续分析和对比。 |
全球调度
当前地域工作站推理资源紧缺时,可将业务流量调度至其他空闲地域的推理服务实例,实现全球算力统筹调配与资源高效复用。
启用全球调度后,在成员列表添加其他地域的InferX服务,从而实现多地域调度:
成员名称:自定义成员名。
URL / Token :填写其他地域部署的InferX服务的Base URL与 API 密钥。
数据备份
数据备份用于定期备份管理数据,服务启动时从最新备份(自动或手动)恢复。备份目录在服务启动配置中设置(改后需重启);备份频率与轮转在配置中心修改后,下次备份后生效。
注意:工作站配置 Redis 的情况下该功能不适用。Redis 由自身持久化管理,无需本组件做周期备份。若曾使用内置存储并留下备份文件,可通过"导入到 Redis"完成迁移。
配置说明
工作站不配置 Redis 时,需先为工作站配置备份目录。在服务启动配置中添加以下 JSON 配置:
{
"llm_gateway": {
"persist_snapshot_dir": "/mnt/oss/persist-test/state_persist_llm_gateway/snapshots"
},
"storage": [
{
"mount_path": "/mnt/oss/persist-test/",
"oss": {
"path": "oss://pai-test-changjin/inferx/",
"read_only": false,
"type": "ossfs"
}
}
]
}默认使用智能路由内存作为持久化存储方法。这种用法不依赖外部组件,但稳定性不够好,在异常场景里如果智能路由所有的实例都挂了,数据会丢。因此需要额外挂载一个 OSS 来备份数据,防止丢数据:
在
storage里配置mount_path:挂载 OSS,来让程序能够读写外部存储。在
llm_gateway里添加persist_snapshot_dir的配置,这个配置必须是上面那个mount_path的子目录,程序运行过程中会定时在这个位置生成数据备份文件。
备份操作
配置备份目录后,可在本页执行以下操作:
操作 | 说明 |
导出 | 手动导出当前数据备份。需要时可随时手动导出。 |
导入 | 从备份文件导入数据,恢复服务状态。 |
导入到 Redis | 若曾使用内置存储并留下备份文件,可通过此功能完成迁移到 Redis。 |
用户流控
用户流控从用户维度控制请求数与 Token 用量,避免单用户资源消耗失控。与请求限流不同:请求限流针对单实例/单服务的并发保护;用户流控面向租户内各用户的流速、并发和周期性配额。
时区:IANA 时区,用于可调用时段与按天/周/月配额边界。
套餐模板:支持为不同用户组配置不同的限流套餐。
在配置中心创建套餐模板后,可在用户管理中为用户绑定。还可将某个套餐设为默认套餐,用户未绑定限流套餐时,使用默认套餐。
套餐模板支持配置以下四种限流能力,可独立启用或组合使用(关闭能力会保留已填写的配置,再次开启后仍可使用):
可调用时段:允许调用的本地时段(左闭右闭,精确到分钟)。可按星期限制;不配置或全选表示每天。空表示始终允许。全天请选 00:00–23:59。跨午夜须拆成两段,且星期分别写在对应那天(例如:周五 22:00–23:59 + 周六 00:00–02:00)。限制用户可发起请求的时间段。非可调用时段内的请求将被拒绝。
配额(Quota):请求数/Token 数的周期性配额,按周期窗口控制。
参数
说明
Token 权重
用于将 input/output/cached token 加权折算到配额。
Input:未命中缓存的 input token 的权重。
Output:Output token 的权重。
Cached:命中缓存的 input token 的权重。
配额窗口
设置周期性配额,包括周期(每 5 小时/每天/每周/每月)、请求数量上限和加权 Token 数上限。0 表示不限制。
并发限制:用户维度最大并发请求数限制。超出后新请求将被拒绝或排队等待。
速率限制(RPM/TPM):基于令牌桶算法,按每分钟请求数(RPM)和每分钟 Token 数(TPM)进行流速限制。
参数
说明
RPM
每分钟最大请求数,0 表示不限制。
TPM
每分钟最大 Token 数,0 表示不限制。
默认输出预估
当用户请求未指定 max_tokens 时,使用此值作为输出 token 的预估值进行 TPM 预扣;请求中已指定时按请求值预扣。仅在启用速率限制时生效。
重要预检模式下,限流规则照常计算并记录命中情况,但不会真正拦截任何请求。适合上线新限流规则前验证阈值是否合理——限流阈值配错可能导致线上流量被大面积误杀,而真实流量分布往往与预估不同,先观察再启用更安全。
高级配置
高级配置提供请求超时和协议与转换的精细化控制,满足特殊场景需求。
请求超时
配置网关到后端推理服务的请求超时,包括流式和非流式请求的超时时间,单位:秒(s)。0 表示不限制。
参数 | 说明 |
流式首包超时 | 流式响应首个数据包的超时时间。默认 300s。 |
流式帧间空闲超时 | 流式响应中两个数据包之间的最大空闲时间。默认 300s。 |
流式总超时 | 整个流式请求的总时长上限(秒),默认 0(不限制)。 |
非流式总超时 | 非流式响应的总超时时间。默认 900s。 |
协议与转换
配置 API 协议透传和消息格式转换,兼容不同客户端和模型。
参数 | 说明 |
Responses API 透传 |
|
Anthropic API 透传 |
|
保持 Anthropic System 消息位置 | 启用后,保持 Anthropic System 消息在请求中的原始位置,不移动到消息列表开头。 |
强制返回流式 Usage | 即使客户端未设置或显式关闭 |
推理力度映射模式 |
|