在大语言模型(LLM)应用中,用户请求与模型响应的长度差异、模型在Prompt和Generate阶段生成的Token数量的随机性,以及GPU资源占用的不确定性,使得传统负载均衡策略难以实时感知后端负载压力,导致实例负载不均,影响系统吞吐量和响应效率。EAS推出LLM智能路由组件,基于LLM特有的Metrics动态分发请求,均衡各推理实例的算力与显存分配,提升集群资源利用率与系统稳定性。
工作原理
架构概览
LLM智能路由是由LLM Gateway、LLM Scheduler以及LLM Agent三个核心组件构成,它们协同工作,为后端的大语言模型推理实例集群提供智能的流量分发和管理。
LLM Gateway:作为流量入口,负责接收所有用户请求,并根据
LLM Scheduler的决策将请求转发到指定的后端推理实例。它支持HTTP(HTTP_SSE)和WebSocket协议,并在后端推理实例高负载时可缓存请求。LLM Scheduler:作为智能路由的大脑,负责执行调度算法。它从所有
LLM Agent处汇集实时指标,并根据预设的调度策略(如基于前缀缓存)为每个到来的请求计算出最优的目标实例。LLM Agent:作为Sidecar容器与每个推理实例一同部署。它负责采集推理引擎的性能指标,与
LLM Scheduler保持心跳,并上报实例的健康状况和负载数据。
实现流程
LLM智能路由本质上是一种特殊的EAS服务,必须和推理服务部署在同一个服务群组下,才能正常工作。部署LLM智能路由和推理服务后,LLM智能路由能够将请求智能调度给后端推理服务,具体实现流程如下:
实例注册:推理服务启动后,
LLM Agent等待推理引擎就绪,然后向LLM Scheduler注册该实例,并开始周期性上报健康状况和性能指标。流量接入:用户的请求首先到达
LLM Gateway。Gateway支持HTTP(SSE)和WebSocket协议。调度决策:
LLM Gateway向LLM Scheduler发起调度请求。智能调度:
LLM Scheduler基于调度策略,根据从各LLM Agent收集的实时指标,选择一个当前最优的后端实例。请求转发:
LLM Scheduler将决策结果返回给LLM Gateway,LLM Gateway随即把用户的原始请求转发到该目标实例进行推理。请求缓冲:当所有后端实例均处于高负载状态时,新请求会暂时缓存在
LLM Gateway的队列中,等待LLM Scheduler找到合适的转发时机,以避免请求失败。
Failover机制
系统设计了多层容错机制以保障服务稳定性:
LLM Gateway:作为无状态的流量接入层,建议部署至少2个实例。当某个实例故障时,流量会自动切换至其他健康实例,保证服务的持续可用性。
LLM Scheduler:作为请求调度组件,单实例运行以实现全局调度。
LLM Scheduler发生故障时,LLM Gateway会在心跳失败后自动降级,采用轮询策略将请求直接转发给后端实例。这保证了服务的可用性,但会牺牲调度性能。待LLM Scheduler恢复后,LLM Gateway会自动切换回智能调度模式。推理实例或LLM Agent:当某个推理实例或其伴生的
LLM Agent发生故障时,LLM Agent与LLM Scheduler之间的心跳会中断。LLM Scheduler会立即将该实例从可用服务列表中移除,不再向其分配新流量。待实例恢复并重新上报心跳后,它将自动重新加入服务列表。
多推理引擎支持
由于不同LLM推理引擎的/metrics接口返回的指标信息存在差异,LLM Agent负责对这些指标进行采集并统一格式化处理后上报。LLM Scheduler无需关注具体推理引擎的实现细节,只需基于统一化指标进行调度算法的编写。目前支持的LLM推理引擎及其对应的采集指标如下:
LLM推理引擎 | 指标 | 说明 |
Blade_LLM | decode_batch_size_mean | 正在运行的请求数。 |
wait_queue_size_mean | 在排队等待的请求数。 | |
block_usage_gpu_mean | GPU KV Cache的使用率。 | |
tps_total | 每秒总共处理的Token数。 | |
tps_out | 每秒生成的Token数。 | |
vLLM | vllm:num_requests_running | 正在运行的请求数。 |
vllm:num_requests_waiting | 在排队等待的请求数。 | |
vllm:gpu_cache_usage_perc | GPU KV Cache的使用率。 | |
vllm:prompt_tokens_total | 总Prompt的Token数。 | |
vllm:generation_tokens_total | 生成的总的Token数。 | |
SGLang | sglang:num_running_reqs | 正在运行的请求数。 |
sglang:num_queue_reqs | 在排队等待的请求数。 | |
sglang:token_usage | KV Cache的使用率。 | |
sglang:prompt_tokens_total | 总Prompt的Token数。 | |
sglang:gen_throughput | 每秒生成的Token数。 |
使用限制
不支持更新时添加:LLM智能路由功能仅能在创建新服务时配置。对于一个已存在的、未使用智能路由的推理服务,无法通过更新服务操作来为其添加智能路由。
推理引擎限制:目前仅支持 PAI-BladeLLM、vLLM 或 SGLang。
推荐部署多推理实例:在部署多个推理实例的场景下,LLM智能路由的功能价值才能得以发挥。
部署服务
步骤一:部署LLM智能路由服务
支持以下两种部署方式:
方式一:通过控制台部署
登录PAI控制台,在页面上方选择目标地域,并在右侧选择目标工作空间,然后单击进入EAS。
在模型在线服务(EAS)页面,单击部署服务,选择场景化模型部署>LLM智能路由部署。
在LLM智能路由部署页面,配置以下关键参数,然后单击部署。
参数
描述
基本信息
服务名称
自定义服务名称,例如llm_gateway。
部署资源
LLM Gateway的资源配置。为确保高可用,最小实例数默认为2,建议保持。默认 CPU 为4核,内存 为8 GB。调度配置
LLM Scheduler调度资源。默认为 CPU 2核,内存 4 GB。调度策略
系统基于调度策略选择后端最佳推理实例,支持的调度策略如下:
基于前缀缓存:KV Cache亲和性调度,是一种综合性调度策略,基于多项指标进行决策。将请求转发到已缓存相应KV Cache的实例中处理,从而使请求的处理效率最大化。使用时,需将引擎的前缀缓存(Prefix Caching)功能打开。
基于LLM指标:基于LLM服务的各项监控指标,智能分配服务流量,保证资源利用效率最大化。
最少请求:优先选择当前请求数最少的实例来分配新请求。
最少token:优先选择当前处理token数量最少的实例来分配新请求。
静态PD分离:在Prefill-Decode分离的LLM部署方案中,选择该策略可最大化提升调度效率。选择之后需要分别设置Prefill和Decode的调度策略。
动态PD分离:根据实际服务负载、KVCache缓存以及GPU利用率等关键指标,智能地实现Prefill实例与Decode实例的自动动态切换。在使用动态PD分离的LLM部署方案中,选择该策略可最大化提升调度效率。
部署成功后,系统会自动创建一个群组服务,命名格式为group_LLM智能路由服务名称。您可以前往模型在线服务(EAS)页面的灰度发布页签进行查看。
由于智能路由与服务队列存在冲突,同一服务群组中两者不可同时存在。
方式二:通过JSON独立部署
登录PAI控制台,在页面上方选择目标地域,并在右侧选择目标工作空间,然后单击进入EAS。
在模型在线服务(EAS)页面,单击部署服务,然后在自定义模型部署区域,单击JSON独立部署。
JSON配置示例和参数说明如下,配置完成后单击部署。
配置示例:
基础配置
使用基础配置可快速部署LLM智能路由服务,未配置的参数将使用默认值。
LLM Scheduler默认资源配置为4核CPU和4 GB内存,调用策略默认为基于前缀缓存。
{ "metadata": { "type": "LLMGatewayService", "cpu": 4, "group": "group_llm_gateway", "instance": 2, "memory": 8000, "name": "llm_gateway" } }高阶配置
{ "cloud": { "computing": { "instance_type": "ecs.c7.large" } }, "llm_gateway": { "max_queue_size": 128, "retry_count": 2, "wait_schedule_timeout": 5000, "wait_schedule_try_period": 500 }, "llm_scheduler": { "cpu": 2, "memory": 4000, "policy": "prefix-cache" }, "metadata": { "group": "group_llm_gateway", "instance": 2, "name": "llm_gateway", "type": "LLMGatewayService" } }参数说明:
参数
说明
metadata
type
配置为LLMGatewayService,即可部署LLM智能路由服务。服务部署成功后,EAS会自动创建一个组合服务,包含
LLM Gateway和LLM Scheduler。instance
LLM Gateway实例数,建议至少设置为2,以防止单点故障。cpu
LLM Gateway的CPU。memory
LLM Gateway的Memory。group
LLM智能路由服务归属的服务群组。
cloud.computing.instance_type
指定
LLM Gateway使用的资源规格。此时无需配置metadata.cpu与metadata.memory。llm_gateway
max_queue_size
LLM Gateway缓存队列的最大长度,默认是512。当超过后端推理框架处理能力时,多余的请求会缓存在该队列,等待调度。
retry_count
重试次数,默认是2。当后端推理实例异常时,进行请求重试并转发到新的实例。
wait_schedule_timeout
当后端引擎处于满负荷时,请求会间隔尝试进行调度。该参数表示尝试调度的时间,默认为10秒。
wait_schedule_try_period
表示每次尝试调度的间隔时间,默认为1秒。
llm_scheduler
cpu
LLM Scheduler的CPU,默认为4核。memory
LLM Scheduler的Memory,默认为4 GB。policy
调度策略(详见控制台部署说明),默认值为prefix-cache。可取值:
prefix-cache:基于前缀缓存。
llm-metric-based:基于LLM指标。
least-request:最少请求。
least-token:最少token。
pd-split:静态PD分离。
dynamic-pd-split:动态PD分离。
prefill_policy
policy选择pd-split时,需分别设置Prefill和Decode的调度策略。可取值:prefix-cache、llm-metric-based、least-request、least-token。
decode_policy
步骤二:部署大语言模型(LLM)服务
部署LLM服务时,需将其关联到已创建的智能路由服务。本文以EAS场景化部署LLM为例,具体操作步骤如下:
登录PAI控制台,在页面上方选择目标地域,并在右侧选择目标工作空间,然后单击进入EAS。
在推理服务页面,单击部署服务,选择LLM大语言模型部署。在服务功能区域找到并打开LLM智能路由开关,从下拉列表中选择在步骤一部署的LLM智能路由服务。其他参数参见LLM大语言模型部署。
说明当使用vLLM加速部署,并且LLM智能路由服务的调度策略选择基于前缀缓存时,需将引擎的前缀缓存功能打开。
参数配置完成后,单击部署。
调用与测试
所有请求都应发送到LLM智能路由服务的访问地址,而不是后端的具体推理服务。
获取访问凭证
在模型在线服务(EAS)页面,找到部署的LLM智能路由服务。
单击服务名称进入概览页面,在基本信息区域单击查看调用信息。
在调用信息页面,复制服务独立流量入口下的公网调用地址和Token。

构建与发送请求
最终的请求URL由LLM智能路由的访问地址和模型服务的API路径拼接而成。
URL结构:
<LLM智能路由访问地址>/<LLM服务请求接口>示例:
http://********.pai-eas.aliyuncs.com/api/predict/group_llm_gateway.llm_gateway/v1/chat/completions
请求示例
# 将 <YOUR_GATEWAY_URL> 和 <YOUR_TOKEN> 替换为您的实际信息
# <model_name> 替换为实际的模型名称
curl -X POST "<YOUR_GATEWAY_URL>/v1/chat/completions" \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-N \
-d '{
"model": "<model_name>",
"messages": [{"role": "user", "content": "你好"}],
"stream": true
}'返回结果示例如下:
data: {"id":"chatcmpl-9a9f8299*****","object":"chat.completion.chunk","created":1762245102,"model":"Qwen3-8B","choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}
data: {"id":"chatcmpl-9a9f8299*****","object":"chat.completion.chunk","created":1762245102,"model":"Qwen3-8B","choices":[{"index":0,"delta":{"content":"<think>","tool_calls":[]}}]}
...
data: [DONE]查看服务监控指标
部署服务后,可以在EAS控制台查看服务的核心性能指标,以评估智能路由的效果。
在模型在线服务(EAS)页面,单击已部署的LLM智能路由服务进入服务详情。在监控页签,关注以下核心指标:
Token Throughput LLM输入和输出Token的吞吐量
| GPU Cache Usage LLM Engine GPU KV Cache的使用率
|
Engine Current Requests LLM Engine实时请求并发数
| Gateway Current Requests LLM智能路由实时请求数
|
Time To First Token 请求的首包延时
| Time Per Output Token 请求的每包延时
|





