全部产品
Search
文档中心

人工智能平台 PAI:服务监控说明

更新时间:Sep 08, 2026

EAS服务部署成功后,您可以在服务详情页的监控页签查看QPS、延迟、错误率、资源使用率等指标,了解服务的调用和运行情况。

查看服务监控信息

进入监控页面

  1. 登录PAI控制台,在页面上方选择目标地域,并在右侧选择目标工作空间,然后单击进入EAS

  2. 单击目标服务名称进入详情页面,切换到监控页签。

选择维度与仪表盘

监控页面左上方提供两级选择:先通过下拉框选择监控维度(ServiceInstance),再选择对应的监控仪表盘。

说明
  • LLM相关仪表盘面向使用 vLLM 或 SGLang 引擎的 LLM 推理服务,需使用 PAI-EAS 官方镜像服务,或标签中配置ServiceEngineTypesglangvllm(详见LLM监控指标说明 > 前提条件)。

  • GPU 相关仪表盘仅在使用 GPU 的服务中提供。

  • Service 维度:以整个服务为粒度查看监控指标。下拉框选择 Service 后,可选以下仪表盘:

    • Service-<service_name>(其中<service_name>是EAS服务的名称):服务监控仪表盘。展示服务的通用监控指标(QPS、RT、CPU、Memory 等)。

    • LLM:根据 LLM 服务使用的推理引擎(sglang/vllm)展示不同的服务监控指标(如请求吞吐、Token 用量等)。

    • GPU:展示 GPU 硬件指标(如 SM 利用率、显存带宽、NVSwitch 错误等)。

  • Instance 维度:以单个实例为粒度查看监控指标。下拉框选择 Instance 后,可选以下仪表盘:

    • Single Instance:单实例监控仪表盘。每次只能选择一个实例,仅提供分钟级监控指标。

    • Multiple Instance:多实例监控仪表盘。可同时选择多个实例进行对比,提供分钟级和秒级监控指标。

    • LLM Instance:LLM 实例监控仪表盘。支持选择单个或多个实例对比,展示大模型推理相关的实例级监控指标。

    • GPU Instance:GPU 实例监控仪表盘。支持选择单个或多个实例对比,展示细粒度 GPU 硬件的实例级监控指标。

各仪表盘对应的指标说明章节如下:

仪表盘

指标说明章节

Service-<service_name>

通用监控指标说明 > 服务监控仪表盘

Single Instance

通用监控指标说明 > 单实例监控仪表盘(分钟级)

Multiple Instance

通用监控指标说明 >多实例监控仪表盘

GPU / GPU Instance

通用监控指标说明 > GPU监控仪表盘

LLM / LLM Instance

LLM监控指标说明

切换时间范围

单击监控区域右侧的image,切换仪表盘展示的时间范围。

在弹出的时间选择器面板中,可通过左侧 Absolute time range 自定义起止时间(From / To),或在右侧 Relative time ranges 列表中选择预设范围(Last 5 minutes 至 Last 7 days 等),当前选中项会显示 ✓ 标记。

重要

目前分钟级监控指标最多保留1个月,秒级监控指标最多保留1个小时。

通用监控指标说明

服务监控仪表盘(分钟级)

您可以在该仪表盘监控以下指标:

指标

说明

QPS

服务每秒的请求数。不同返回码的请求数会分开计算。如果服务包含多个实例,则此处的指标为所有实例之和。其中,1d offset表示前一天同一时间的QPS数据,可用于分析环比数据。

Response

服务在选定时间范围内接收的响应总数。不同返回码的响应数会分开计算。如果服务包含多个实例,则此处的指标为所有实例之和。

RT

请求的响应时间。

  • Avg:表示该时间点所有请求的平均响应时间。

  • TPXX:表示将该时间点所有请求时间从低到高排序后,前百分之XX请求的最大响应时间。

    例如:TP5表示前百分之五请求的最大响应时间;TP100表示所有请求的最大响应时间。

    如果服务包含多个实例,TP100表示所有实例的请求最大响应时间;其他TPXX为所有实例TPXX的均值,如TP5表示所有实例TP5的均值。

Daily Invoke

服务每天的调用量,不同返回码的调用量会分开计算。如果服务包含多个实例,则此处的指标为所有实例之和。

更多指标(CPU | Memory | GPU | Network | Resources)

指标

说明

CPU

CPU

服务在该时间点的CPU平均使用量。单位为核数。如果服务包含多个实例,则此处的指标为所有实例的平均值。

CPU Utilization

服务在该时间点CPU平均使用率。计算方法:CPU平均使用量 ÷ 最大可用核数。如果服务包含多个实例,则此处的指标为所有实例的平均值。

CPU Total

服务在该时间点可用的CPU总核数。计算方法为:单实例可用CPU核数 × 服务实例数。

Memory

Memory

服务在该时间点的内存平均使用量。如果服务包含多个实例,则此处的指标为所有实例的平均值。

  • RSS:表示常驻物理内存大小。

  • Cache:表示缓存大小。

  • Total:表示单个实例最大可用的物理内存大小。

Memory Utilization

服务在该时间点的内存平均使用率。计算方法为:内存RSS ÷ 内存Total。如果服务包含多个实例,则此处的指标为所有实例的平均值。

GPU

GPU Utilization

服务在该时间点的GPU平均使用率。仅在服务使用GPU时展示。如果服务包含多个实例,则此处的指标为所有实例的平均值。

GPU Memory

服务在该时间点的GPU显存使用量。仅在服务使用GPU时展示。如果服务包含多个实例,则此处的指标为所有实例的平均值。

GPU Total

服务在该时间点的GPU总量。仅在服务使用GPU时展示。如果服务包含多个实例,则此处的指标为所有实例的GPU总和。

GPU Memory Utilization

服务在该时间点的GPU显存使用率。仅在服务使用GPU时展示。如果服务包含多个实例,则此处的指标为所有实例的平均值。

Network

Traffic

服务接收和发出的流量大小,单位为比特每秒。如果服务包含多个实例,则此处的指标为所有实例的平均值。

其中:

  • In:表示服务接收的流量。

  • Out:表示服务发出的流量。

TCP Connections

TCP连接数。

Resources

Replicas

服务在该时间点不同状态的实例数,分为Total、Pending、Available。

Replicas By Resource

服务在该时间点不同资源类型的实例数,分为Total、Dedicated(专属资源)、Public(公共资源)。

实例监控仪表盘(分钟级)

您可以在该仪表盘监控以下指标:

指标

说明

QPS

该实例每秒接收的请求数。不同返回码的请求数会分开计算。

RT

该实例请求的响应时间。

Response

该实例在选定时间范围内接收的响应总数。不同返回码的响应数会分开计算。

更多指标(CPU | Memory | GPU | Network | Resources)

指标

说明

CPU

CPU

该实例的CPU使用量,单位为核数。

CPU Utilization

该实例在该时间点CPU平均使用率。计算方法为:CPU平均使用量 ÷ 最大可用核数。

Memory

Memory

该实例的内存使用量。

  • RSS:表示常驻物理内存大小。

  • Cache:表示缓存大小。

  • Total:表示单个实例最大可用的物理内存大小。

Memory Utilization

该实例在该时间点的内存平均使用率。计算方法为:内存RSS ÷ 内存Total

GPU

GPU Utilization

该实例的GPU使用率。

GPU Memory

该实例的GPU显存使用量。

GPU Memory Utilization

该实例的GPU显存使用率。

Network

Traffic

该实例接收和发出的流量大小,单位为比特每秒。

其中:

  • In:表示该实例接收的流量。

  • Out:表示该实例发出的流量。

TCP Connections

TCP连接数。

多实例监控仪表盘

提供分钟级、秒级监控指标如下。

  • Minute-Level(分钟级)

    指标

    说明

    Instance QPS

    每个实例每秒的请求数。不同返回码的请求数会分开计算。

    Instance RT

    每个实例的平均响应时间。

    Instance CPU

    每个实例的CPU使用量,单位为核数。

    Instance Memory -- RSS

    每个实例常驻物理内存大小。

    Instance Memory -- Cache

    每个实例缓存大小。

    Instance GPU

    每个实例GPU使用率。

    Instance GPU Memory

    每个实例GPU显存的使用量。

    Instance TCP Connections

    每个实例TCP连接数。

  • Second-Level(秒级)

    重要

    数据精度精确到5秒级别,只保留最近1个小时的数据。

    指标

    说明

    Instance QPS Fine

    每个实例每秒接收的请求数。不同返回码的请求数会分开计算。

    Instance RT Fine

    每个实例接收到请求的平均响应时间。

GPU监控仪表盘

支持在服务和实例级别监控以下GPU指标。如果是服务级别,则指标是所有实例的平均值。

指标

说明

GPU Utilization

服务在该时间点的GPU使用率。

GPU Memory

服务在该时间点的GPU显存使用量与显存总量。

  • Used:表示该时间点的GPU显存使用量。

  • Total:表示该时间点的GPU显存总量。

Memory Copy Utilization

服务在该时间点的GPU显存复制利用率。

GPU Memory Utilization

服务在该时间点的GPU显存使用率,计算方法为:显存使用量 ÷ 显存总量。

PCIe

通过DCGM测量的PCIe(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)速率。

  • PCIe Transmit:表示该时间点的PCIe传输速率。

  • PCIe Receive:表示该时间点的PCIe接收速率。

Memory Bandwidth

服务在该时间点的GPU显存带宽指标。

SM Utilization and Occupancy

服务在该时间点的SM(Streaming Multiprocessor,流式多处理器)相关指标,SM是GPU的核心组成部分,负责执行和调度并行计算任务。

  • SM Utilization:表示该时间点的SM利用率。

  • SM Occupancy:表示该时间点的SM上驻留的Warp线程数比例。

Graphics Engine Utilization

服务在该时间点的GPU图形引擎利用率。

Pipe Active Ratio

服务在该时间点的GPU运算管道的活跃率。

  • Pipe Fp32 Active Ratio:表示该时间点的FP32管道活跃率。

  • Pipe Fp16 Active Ratio:表示该时间点的Fp16管道活跃率。

  • Pipe Tensor Active Ratio:表示该时间点的Tensor管道活跃率。

Tflops Usage

服务在该时间点的GPU运算管道的Tflops(Tera floating-point operations per second,每秒万亿次浮点运算)运算量。

  • FP32 Tflops Used:表示该时间点的FP32管道Tflops运算量。

  • FP16 Tflops Used:表示该时间点的Fp16管道Tflops运算量。

  • Tensor Tflops Used:表示该时间点的Tensor管道Tflops运算量。

DRAM Active Ratio

服务在该时间点的GPU设备显存接口发送或接收数据的活跃率。

SM Clock

服务在该时间点的SM时钟频率。

GPU Temperature

服务在该时间点的GPU温度相关指标。

  • GPU Temperature:表示该时间点的GPU温度。

  • GPU Slowdown Temperature:表示该时间点的GPU降频温度阈值;当GPU温度达到该值时,GPU将自动降低其工作频率,以避免GPU设备过热。

  • GPU Shutdown Temperature:表示该时间点的GPU关机温度阈值;当GPU温度达到该值时,系统将强制关停GPU设备以防止GPU因过热而导致硬件损坏或引发更严重的系统故障。

Power Usage

服务在该时间点的GPU功耗。

以下是GPU健康状态与异常信息指标:

指标

说明

GPU Health Count

服务在该时间点的健康GPU卡数。

GPU Lost Card Num

服务在该时间点的GPU掉卡数。

ECC Error Count

服务在该时间点的ECC错误数。ECC(Error Correction Code,错误校验码)用于检测和纠正GPU显存数据传输或存储过程中的错误。

  • Volatile SBE ECC Error:表示服务在该时间点的单比特易失性ECC错误数。

  • Volatile DBE ECC Error:表示服务在该时间点的双比特易失性ECC错误数。

  • Aggregate SBE ECC Error:表示服务在该时间点的单比特持久性ECC错误数。

  • Aggregate DBE ECC Error:表示服务在该时间点的双比特持久性ECC错误数。

  • Uncorrectable ECC Error:表示服务在该时间点的无法纠正的ECC错误数。

NVSwitch Error Count

服务在该时间点的NVSwitch错误数。NVSwitch 提供高带宽和低延迟的通信通道,负责多GPU之间的高速通信。

  • NVSwitch Fatal Error:表示服务在该时间点的致命NVSwitch错误数。

  • NVSwitch Non-Fatal Error:表示服务在该时间点的非致命NVSwitch错误数。

Xid Error Count

服务在该时间点的Xid错误数。Xid错误是GPU驱动程序报告的错误代码,用于指示GPU在运行过程中遇到的问题,这些错误通常通过系统日志(如Linux的dmesg或Windows的事件查看器)记录,并以Xid代码的形式表示。

  • Xid Error:表示服务在该时间点的非致命Xid错误数。

  • Fatal Xid Error:表示服务在该时间点的致命Xid错误数。

Kernel Error Count

服务在该时间点的非Xid错误数。非Xid错误(Non-Xid Errors)指的是除了Xid错误之外,由内核日志中报告的其他类型错误。

Driver Hang

服务在该时间点的GPU驱动挂起次数。

Remap Status

服务在该时间点GPU在尝试重映射显存行时的状态。

LLM监控指标说明

无论服务使用 vLLM 还是 SGLang 引擎,LLM 监控指标均统一展示在 LLM 或 LLM Instance 仪表盘中。请根据引擎查看对应的监控指标说明。

前提条件

以下任一条件满足时,展示 LLM 相关仪表盘:

  • 使用 PAI-EAS 的官方镜像服务

  • 在标签中配置ServiceEngineTypesglangvllm,配置示例如下:

    {
      "labels": {
        "ServiceEngineType": "sglang"
      }
    }

注意:

  • EAS后端会定期(约10~15秒一次)调用引擎的/metrics接口采集Prometheus指标,因此服务日志中会规律性出现/metrics 200记录。

  • 分钟级监控指标最多保留1个月。

多实例聚合规则

如果服务包含多个实例,吞吐、计数、容量类指标为所有实例之和;比率、占用率、延迟均值类指标为所有实例的平均值

SGLang监控仪表盘

Requests(请求)

指标

说明

Prometheus指标

Running & Waiting Reqs

服务在该时间点的请求数。

  • Running:正在GPU上运行的请求数,即实时并发数。

  • Waiting:在等待队列中排队的请求数,持续大于0说明已过载。

如果服务包含多个实例,则此处的指标为所有实例之和。

sglang:num_running_reqs

sglang:num_queue_reqs

Prompt & Generation Token Rate

服务在该时间点的输入与输出Token速率。

  • TPS_IN:每秒处理的输入(Prefill)Token数。

  • TPS_OUT:每秒生成的输出(Decode)Token数。

如果服务包含多个实例,则此处的指标为所有实例之和。

sglang:prompt_tokens_total

sglang:generation_tokens_total

Request Rate (success/abort/fail)

服务在该时间点的请求速率,单位为请求每秒。

  • requests:处理完成的请求速率。

  • aborted:被中止(客户端断连、超时、显式abort)的请求速率。

  • transfer_failed:PD分离场景下KV缓存传输失败的请求速率。

  • failed_session_recoveries:PD分离场景下经探活恢复(解除黑名单)的Mooncake传输会话数速率。

如果服务包含多个实例,则此处的指标为所有实例之和。

sglang:num_requests_total

sglang:num_aborted_requests_total

sglang:num_transfer_failed_reqs_total

sglang:failed_session_recoveries_total

Latency(延迟)

指标

说明

Prometheus指标

Queue Time

服务在该时间点所有请求的排队等待延时,即请求进入等待队列到被调度器取出开始计算的时间。

  • Avg:所有请求排队延时的加权平均值。

  • P50/P95/P99:所有请求排队延时的各个分位点值。

sglang:queue_time_seconds

Time To First Token

服务在该时间点所有请求的首Token延时(TTFT),即从接收到请求到生成第一个Token的时间。

  • Avg:所有请求首Token延时的加权平均值。

  • P50/P95/P99:所有请求首Token延时的各个分位点值。

sglang:time_to_first_token_seconds

Time Per Output Token

服务在该时间点所有请求的每Token延时(TPOT/ITL),即生成第一个Token之后,后续每个输出Token所需的时间。

  • Avg:所有请求每Token延时的加权平均值。

  • P50/P95/P99:所有请求每Token延时的各个分位点值。

sglang:inter_token_latency_seconds

E2E Request Latency

服务在该时间点所有请求的端到端延时,即从接收到请求到返回所有Token的时间。

  • Avg:所有请求端到端延时的加权平均值。

  • P50/P95/P99:所有请求端到端延时的各个分位点值。

说明

该指标由SGLang引擎提供,服务监控仪表盘中的RT由EAS引擎(easworker)提供,LLM场景下建议使用本指标。

sglang:e2e_request_latency_seconds

Latency by PD Stage (Avg)

服务在该时间点请求在各处理阶段的平均耗时,按stage标签分曲线展示,用于定位延时具体消耗在哪一段。常见阶段包括:

  • tokenize(分词)、api_server_dispatch(API Server分发)、dpc_dispatch(DP控制器分发)、request_process(调度器接收处理)

  • prefill_waiting/decode_waiting(排队等待)

  • prefill_forward/prefill_chunked_forward/decode_forward/decode_loop(前向计算)

  • mm_encode(多模态编码)

  • spec_draft/spec_verify(投机解码草稿与验证)

  • PD分离各阶段:prefill_bootstrap/prefill_transfer_kv_cache/decode_prealloc/decode_bootstrap/decode_transferred

sglang:per_stage_req_latency_seconds

Token Length Distribution(Token长度分布)

指标

说明

Prometheus指标

Prompt Tokens Length

服务在该时间点所有请求的输入Token长度分布。

  • Avg:输入Token长度的加权平均值。

  • P50/P95/P99:输入Token长度的各个分位点值。

sglang:prompt_tokens_histogram

Uncached Prompt Tokens Length

服务在该时间点所有请求未命中缓存、需要实际计算的输入Token长度分布(等于输入Token长度减去命中前缀缓存的Token长度)。该指标才是Prefill阶段真实的算力开销来源。

  • Avg:未缓存输入Token长度的加权平均值。

  • P50/P95/P99:未缓存输入Token长度的各个分位点值。

sglang:uncached_prompt_tokens_histogram

Generation Tokens Length

服务在该时间点所有请求的输出Token长度分布。

  • Avg:输出Token长度的加权平均值。

  • P50/P95/P99:输出Token长度的各个分位点值。

sglang:generation_tokens_histogram

Token Throughput(Token吞吐)

指标

说明

Prometheus指标

Token Rate by Phase (Prefill/Decode)

服务在该时间点按阶段拆分的Token处理速率,按mode标签分曲线展示。

  • prefill_compute:Prefill阶段实际参与计算的Token速率。

  • prefill_cache:Prefill阶段由前缀缓存命中、无需计算的Token速率。

  • decode:Decode阶段生成的Token速率。

如果服务包含多个实例,则此处的指标为所有实例之和。

sglang:realtime_tokens_total

Decode Sum Seq Lens

服务在该时间点Decode批次中所有序列长度之和,反映Decode阶段Attention的实际读取规模。

如果服务包含多个实例,则此处的指标为所有实例之和。

sglang:decode_sum_seq_lens

Cache Hierarchy(缓存层级)

指标

说明

Prometheus指标

Prefix Cache Hit Rate

服务在该时间点所有请求的前缀缓存平均命中率。

如果服务包含多个实例,则此处的指标为所有实例的平均值。

sglang:cache_hit_rate

Cached Prompt Tokens by Source

服务在该时间点命中缓存的输入Token速率,按cache_source标签分曲线展示缓存层级。

  • device:命中GPU显存中的前缀缓存(L1)。

  • host:命中HiCache主机内存缓存(L2)。

  • storage_<backend>:命中HiCache外部存储后端(L3),后缀为具体后端名。

如果服务包含多个实例,则此处的指标为所有实例之和。

sglang:cached_tokens_total

Cache Hit Ratio by Source

服务在该时间点各缓存层级的命中占比,计算方法为:该层级命中Token速率 ÷ 输入Token总速率,取值已归一到0~1。

  • <cache_source> ratio:各层级(device/host/storage_<backend>)的命中占比。

  • uncached:未命中任何缓存、需要实际计算的输入Token占比。

sglang:cached_tokens_total

sglang:prompt_tokens_total

HiCache Host Tokens

服务在该时间点HiCache主机内存缓存(L2)的Token水位。仅在开启HiCache时展示。

  • used:主机缓存已使用的Token数。

  • total:主机缓存的Token总容量。

如果服务包含多个实例,则此处的指标为所有实例之和。

sglang:hicache_host_used_tokens

sglang:hicache_host_total_tokens

Eviction Duration (GPU→CPU)

服务在该时间点将KV缓存从GPU换出到主机内存的耗时。

  • Avg:换出耗时的加权平均值。

  • P99:换出耗时的99分位值。

sglang:eviction_duration_seconds

Load Back Duration (CPU→GPU)

服务在该时间点将KV缓存从主机内存加载回GPU的耗时。该耗时会直接叠加到命中L2缓存请求的TTFT上。

  • Avg:加载耗时的加权平均值。

  • P99:加载耗时的99分位值。

sglang:load_back_duration_seconds

Cache Tokens Flow (L1↔L2↔L3)

服务在该时间点KV缓存在三级存储之间的Token流转速率,用于判断HiCache的搬运方向与压力。

  • L3→L2 prefetched(storage→host):从外部存储预取到主机内存的Token速率。

  • L2→L1 load_back(host→GPU):从主机内存加载回GPU的Token速率。

  • L2→L3 backuped(host→storage):从主机内存备份到外部存储的Token速率。

  • L1→L2 evicted(GPU→host):从GPU换出到主机内存的Token速率。

如果服务包含多个实例,则此处的指标为所有实例之和。

sglang:prefetched_tokens_total

sglang:load_back_tokens_total

sglang:backuped_tokens_total

sglang:evicted_tokens_total

KV Cache Pool(KV缓存池水位)

以下面板按槽位(slot)维度与水位维度分别展示各内存池的构成与压力。如果服务包含多个实例,则槽位类指标为所有实例之和,使用率、水位占比类指标为所有实例的平均值。

指标

说明

Prometheus指标

KV Cache Tokens Pool

服务在该时间点主KV缓存池的槽位构成。

  • available:完全空闲、可直接分配的Token槽位数。

  • evictable:被Radix前缀缓存占用、可在需要时驱逐复用的Token槽位数。

  • used:正在被运行中请求占用的Token槽位数。

说明

available长期为0而evictable较大属于正常状态,说明显存已被前缀缓存充分利用;availableevictable同时接近0才意味着真正的显存不足。

sglang:kv_available_tokens

sglang:kv_evictable_tokens

sglang:kv_used_tokens

SWA Tokens Pool

服务在该时间点滑动窗口注意力(SWA)池的槽位构成,含available/evictable/used三条曲线,含义同上。仅混合SWA模型展示。

sglang:swa_available_tokens

sglang:swa_evictable_tokens

sglang:swa_used_tokens

Mamba SSM Pool

服务在该时间点Mamba SSM状态池的槽位构成,含available/evictable/used三条曲线,含义同上。仅混合SSM(Mamba/GDN/KDA)模型展示。

说明

该池的槽位是按请求而非按Token分配的,是混合模型并发度的常见硬约束。

sglang:mamba_available_tokens

sglang:mamba_evictable_tokens

sglang:mamba_used_tokens

KV Cache Used Tokens

服务在该时间点已使用的KV缓存Token数。

如果服务包含多个实例,则此处的指标为所有实例之和。

sglang:num_used_tokens

KV Cache Usage Ratio

服务在该时间点的KV缓存Token平均使用率。持续接近1说明显存池已成为吞吐瓶颈,会触发请求排队或回退(retract)。

如果服务包含多个实例,则此处的指标为所有实例的平均值。

sglang:token_usage

KV Usage by Pool (Full/SWA/Mamba)

服务在该时间点各内存池的平均使用率,用于混合注意力模型定位是哪一个池先打满。

  • full:全量注意力层KV池使用率。

  • swa:滑动窗口注意力(SWA)层KV池使用率,仅混合SWA模型展示。

  • mamba:Mamba/线性注意力层状态池使用率,仅混合SSM模型展示。

  • pending_prealloc:PD分离场景下已预留但尚未完成预分配的Token占比。

如果服务包含多个实例,则此处的指标为所有实例的平均值。

sglang:full_token_usage

sglang:swa_token_usage

sglang:mamba_usage

sglang:pending_prealloc_token_usage

KV Transfer(PD分离KV传输)

以下面板仅在服务以PD分离(Prefill/Decode Disaggregation)模式部署时有数据。如果服务包含多个实例,则延迟类指标为所有实例的加权平均值。

指标

说明

Prometheus指标

KV Transfer Latency

服务在该时间点KV缓存从Prefill实例传输到Decode实例的耗时,单位为毫秒。

  • Avg:传输耗时的加权平均值。

  • P50/P95/P99:传输耗时的各个分位点值。

sglang:kv_transfer_latency_ms

KV Transfer Total MB

服务在该时间点单次KV传输的数据量,单位为MB。

  • Avg:单次传输数据量的加权平均值。

  • P99:单次传输数据量的99分位值。

sglang:kv_transfer_total_mb

KV Transfer Speed

服务在该时间点KV传输的带宽。

  • Avg:传输带宽的加权平均值。

  • P99:传输带宽的99分位值。

sglang:kv_transfer_speed_gb_s

KV Transfer Bootstrap

服务在该时间点KV传输握手(bootstrap)建链的耗时,单位为毫秒。该耗时偏高通常指向Prefill/Decode之间的元信息交互或网络建链问题,而非带宽问题。

  • Avg:建链耗时的加权平均值。

  • P50/P95/P99:建链耗时的各个分位点值。

sglang:kv_transfer_bootstrap_ms

KV Transfer Alloc Wait

服务在该时间点Decode实例为接收KV缓存而等待显存分配的耗时,单位为毫秒。该耗时偏高说明Decode侧显存紧张,是PD集群配比失衡的信号。

  • Avg:等待耗时的加权平均值。

  • P99:等待耗时的99分位值。

sglang:kv_transfer_alloc_ms

Speculative Decoding(投机解码)

以下面板仅在服务开启投机解码时有数据。面板按pp_rank/moe_ep_rank分曲线展示(图例形如pp{pp_rank}/ep{moe_ep_rank}),每条曲线为所有实例的平均值。

指标

说明

Prometheus指标

Spec Accept Length (draft→target)

服务在该时间点投机解码的平均接受长度(论文中的τ),即每次验证(verify)步骤实际产出的Token数,包含目标模型必然产出的bonus Token。该值等于1表示投机完全未生效(每步只产出bonus Token),越大表示加速比越高。

sglang:spec_accept_length

Spec Accept Rate

服务在该时间点投机解码的草稿接受率(论文中的α),计算方法为:被接受的草稿Token数 ÷ 提出的草稿Token数,不含bonus Token。反映草稿模型与目标模型的分布贴合程度。

sglang:spec_accept_rate

Spec Steps & Draft Tokens

服务在该时间点生效的投机解码配置参数。

  • steps:当前生效的投机步数(speculative_num_steps)。

  • draft_tokens:当前生效的草稿Token数(speculative_num_draft_tokens);在topk > 1时该值与步数解耦。

说明

开启自适应投机时该配置会随负载动态变化,可与Accept Length曲线对照判断自适应策略是否合理。

sglang:spec_num_steps

sglang:spec_num_draft_tokens

Scheduling(调度)

指标

说明

Prometheus指标

Queue Reqs by PD Stage

服务在该时间点各PD分离队列中的请求数,用于定位PD链路的堆积位置。

  • prefill_bootstrap:Prefill侧等待握手建链的请求数。

  • prefill_inflight:Prefill侧正在传输KV缓存的请求数。

  • decode_prealloc:Decode侧等待预分配显存的请求数。

  • decode_transfer:Decode侧等待KV缓存传输完成的请求数。

如果服务包含多个实例,则此处的指标为所有实例之和。

sglang:num_prefill_bootstrap_queue_reqs

sglang:num_prefill_inflight_queue_reqs

sglang:num_decode_prealloc_queue_reqs

sglang:num_decode_transfer_queue_reqs

SLO Utilization

服务在该时间点相对SLO容量的负载水位,计算方法为:max(运行中请求数 ÷ SLO下最大并发数, KV缓存使用率 ÷ 0.9),可作为弹性扩缩容的参考指标。

说明

PD分离的Prefill实例不上报该指标。

如果服务包含多个实例,则此处的指标为所有实例的平均值。

sglang:utilization

CUDA Graph Passes

服务在该时间点按CUDA Graph命中情况分类的前向次数速率,按mode标签分曲线展示。

  • decode_cuda_graph/decode_none:Decode前向命中/未命中CUDA Graph的速率。

  • prefill_cuda_graph/prefill_none:Prefill前向命中/未命中CUDA Graph的速率。

说明

*_none占比偏高说明批次形状频繁落在已捕获的Graph之外,可通过调整CUDA Graph捕获的batch size列表优化。

如果服务包含多个实例,则此处的指标为所有实例之和。

sglang:cuda_graph_passes_total

Forward Occupancy

服务在该时间点前向计算对GPU的占用率,即统计窗口内GPU前向执行时间÷墙钟时间,取值范围0~100。该值偏低说明存在CPU调度开销或GPU空转,是排查吞吐不达标的首选指标。

说明

需开启引擎侧的device timer才有数据;服务空闲后该值会被置为NaN以避免污染统计。

如果服务包含多个实例,则此处的指标为所有实例的平均值。

sglang:fwd_occupancy

New Token Ratio

服务在该时间点调度器的新Token配额比例。该值是调度器对显存压力的自适应保守系数:显存紧张时下调以减少新请求准入、避免回退(retract),压力缓解后逐步回升到1。

如果服务包含多个实例,则此处的指标为所有实例的平均值。

sglang:new_token_ratio

CUDA Graph Active

服务在该时间点批次是否运行在CUDA Graph上,1表示启用,0表示回退到eager模式。

如果服务包含多个实例,则此处的指标为所有实例的平均值(可理解为启用CUDA Graph的实例占比)。

sglang:is_cuda_graph

HTTP

指标

说明

Prometheus指标

HTTP Requests Rate

服务在该时间点按请求方法和路径分组的请求速率,单位为请求每秒。

如果服务包含多个实例,则此处的指标为所有实例之和。

sglang:http_requests_total

HTTP Responses Rate by Status

服务在该时间点按路径和响应状态码分组的响应速率,单位为请求每秒。用于区分业务错误(4xx)与服务端错误(5xx)。

如果服务包含多个实例,则此处的指标为所有实例之和。

sglang:http_responses_total

HTTP Active Requests

服务在该时间点按请求方法和路径分组的在途(未返回)请求数。该指标统计的是HTTP层的在途请求,包含仍在排队、尚未进入引擎的请求,因此通常大于Running Reqs。

如果服务包含多个实例,则此处的指标为所有实例之和。

sglang:http_requests_active

System & Engine(系统与引擎)

指标

说明

Prometheus指标

Disaggregation Routing Keys

服务在该时间点的路由键(routing key)数量,用于观测PD分离或多实例亲和路由的分布情况。

  • routing_keys_active:HTTP层存在在途请求的唯一路由键数。

  • unique_running_routing_keys:当前运行批次中的唯一路由键数。

如果服务包含多个实例,则此处的指标为所有实例之和。

sglang:routing_keys_active

sglang:num_unique_running_routing_keys

Process CPU by Component

服务在该时间点各引擎进程消耗的CPU核数(用户态+内核态),按component标签分曲线展示(tokenizerdetokenizerdata_parallel_controller)。用于定位CPU侧瓶颈,例如tokenizer打满单核会直接压制整体吞吐。

如果服务包含多个实例,则此处的指标为所有实例之和。

sglang:process_cpu_seconds_total

Engine Meta

服务的引擎静态配置与启动信息,用于核对实际生效的参数是否符合预期。

  • max_total_num_tokens:KV缓存池的最大Token容量。

  • num_pages:KV缓存的页数。

  • page_size:KV缓存的页大小(Token数)。

  • context_len:模型的最大上下文长度。

  • startup_available_gpu_memory_gb:启动时可用的GPU显存(GB),为所有实例之和。

  • engine_startup_time:引擎端到端启动耗时(秒)。

  • engine_load_weights_time:加载模型权重的耗时(秒)。

除显存项外,其余指标取所有实例的最大值。

sglang:max_total_num_tokens

sglang:num_pages

sglang:page_size

sglang:context_len

sglang:startup_available_gpu_memory_gb

sglang:startup_time_seconds

Request State (retracted/paused)

服务在该时间点处于非正常执行状态的请求数。

  • retracted:因显存不足被回退(retract)到等待队列、需要重新Prefill的请求数。该值持续大于0意味着算力在做重复计算,应下调并发或扩容。

  • paused:因异步权重同步(如RLHF场景更新权重)而暂停的请求数。

如果服务包含多个实例,则此处的指标为所有实例之和。

sglang:num_retracted_reqs

sglang:num_paused_reqs

常见排查路径

现象

建议查看顺序

TTFT偏高

Queue Time → Waiting Reqs → Uncached Prompt Tokens Length → Prefix Cache Hit Rate → Load Back Duration

TPOT偏高

Running Reqs(并发过高)→ Decode Sum Seq Lens → KV Cache Usage Ratio → Forward Occupancy → CUDA Graph Passes中decode_none占比

吞吐不达标但GPU利用率不高

Forward Occupancy → Process CPU by Component → CUDA Graph Passes → New Token Ratio

显存不足/请求被回退

Request State中retracted → KV Cache Tokens Pool(availableevictable是否同时归零)→ KV Usage by Pool → New Token Ratio

混合注意力模型并发上不去

KV Usage by Pool(对比full/swa/mamba)→ Mamba SSM Pool

PD分离链路变慢

Queue Reqs by PD Stage → KV Transfer Bootstrap → KV Transfer Latency/Speed → KV Transfer Alloc Wait

投机解码没有加速效果

Spec Accept Length(是否接近1)→ Spec Accept Rate → Spec Steps & Draft Tokens

统计最近的最大并发数

切换时间范围后,取Running & Waiting Reqs中Running曲线的峰值

VLLM监控仪表盘

如果服务有多个实例,以下吞吐相关指标是实例的总和,延迟相关指标是实例的均值。

指标

说明

Requests Status

服务在该时间点的所有请求数。

  • Running:表示该时间点正在GPU上运行的请求数。

  • Waiting:表示该时间点等待处理的请求数。

  • Swapped:表示该时间点被交换至CPU上的请求数。

Token Throughput

服务在该时间点所有请求的输入与生成的Token数。

  • TPS_IN:表示该时间点输入的Token数。

  • TPS_OUT:表示该时间点输出的Token数。

Request Completion Status

服务在该时间点所有请求的完成状态统计。

  • preemptions: 请求被抢占。

  • stop: 请求因自然终止而成功完成(模型输出了停止标记,如<EOS>)。

  • length: 请求已达到最大输出token长度。

  • abort: 请求被强制终止。

Time To First Token

服务在该时间点所有请求的首Token延时(从接收到请求到生成第一个Token的时间)。

  • Avg:表示该时间点所有请求的首Token延迟的平均值。

  • TPXX:表示该时间点所有请求的首Token延迟的各个分位点值。

Time Per Output Token

服务在该时间点所有请求的每Token延时(生成第一个Token之后的每个输出Token所需的平均时间)。

  • Avg:表示该时间点所有请求的每Token延迟的平均值。

  • TPXX:表示该时间点所有请求的每Token延迟的各个分位点值。

E2E Request Latency

服务在该时间点所有请求的端到端延时(从接收到请求到返回所有Token的时间)。

  • Avg:表示该时间点所有请求的端到端延迟的平均值。

  • TPXX:表示该时间点所有请求的端到端延迟的各个分位点值。

Queue Time

服务在该时间点所有请求的排队等待延时(请求排队等待被引擎处理的时间)。

  • Avg:表示该时间点所有请求的排队等待延时的平均值。

  • TPXX:表示该时间点所有请求的排队等待延时的各个分位点值。

Inference Time

服务在该时间点所有请求的推理延时(请求被引擎处理的时间)。

  • Avg:表示该时间点所有请求的推理延时的平均值。

  • TPXX:表示该时间点所有请求的推理延时的各个分位点值。

Prefill Time

服务在该时间点所有请求在 Prefill 阶段的延时(引擎处理请求输入Token的时间)。

  • Avg:表示该时间点所有请求的Prefill延时的平均值。

  • TPXX:表示该时间点所有请求的Prefill延时的各个分位点值。

Decode Time

服务在该时间点所有请求在 Decode 阶段的延时(引擎生成输出Token的时间)。

  • Avg:表示该时间点所有请求的Decode延时的平均值。

  • TPXX:表示该时间点所有请求的Decode延时的各个分位点值。

Input Token Length

服务在该时间点处理的输入token数。

  • Avg:表示该时间点所有请求输入token长度的平均值。

  • TPXX:表示该时间点所有请求输入token长度的各个分位点值。

Output Token Length

服务在该时间点生成的输出token数。

  • Avg:表示该时间点所有请求输出token长度的平均值。

  • TPXX:表示该时间点所有请求输出token长度的各个分位点值。

Request Parameters(params_n & max_tokens)

服务在该时间点所有请求的参数N和参数max_tokens

  • Params_n:表示该时间点所有请求的参数N的平均值。

  • Params_max_tokens:表示该时间点所有请求的参数max_tokens的平均值。

GPU KV Cache Usage

服务在该时间点的 GPU KV缓存平均使用率。

CPU KV Cache Usage

服务在该时间点的 CPU KV缓存平均使用率。

Prefix Cache Hit Rate

服务在该时间点所有请求的 Prefix缓存平均命中率。

  • GPU:表示该时间点所有请求的GPU Prefix缓存平均命中率。

  • CPU:表示该时间点所有请求的CPU Prefix缓存平均命中率。

HTTP Requests by Endpoint

服务在该时间点按请求方法、路径和响应状态码分组的请求数。

HTTP Request Latency

服务在该时间点不同请求路径的平均延时。

Speculative Decoding Throughput

服务在该时间点的推测解码数。如果服务包含多个实例,则此处的指标为所有实例的平均值。

  • Drafts:表示该时间点生成的 Drafts Token数。

  • Draft Tokens:表示该时间点处理的 Drafts Token数。

  • Accepted Tokens:表示该时间点被接收的 Drafts Token数。

  • Emitted Tokens:表示该时间点输出的 Drafts Token数。

Speculative Decoding Efficiency

服务在该时间点的推测解码性能。

  • Draft Acceptance Rate:表示该时间点 Drafts Token 被接收的平均比例。

  • Efficiency:表示该时间点推测解码的平均效率。

Token Acceptance by Position

服务在该时间点在不同生成位置的 Drafts Token 接受数。如果服务包含多个实例,则此处的指标为所有实例的平均值。

常见问题

Q:监控页面缺少 LLM 监控仪表盘

问题概述:用户通过 EAS 自定义部署方式部署模型后,监控页面仅显示通用的 Service 和 GPU 监控,缺失 LLM 监控。

根本原因:服务配置缺少关键标签 ServiceEngineType,该标签用于显式声明后端推理引擎类型。

说明

ServiceEngineType标签外,Model Gallery 部署所带的其他参数均不影响 LLM 监控。

解决方案:更新服务配置,添加ServiceEngineType的标签,并根据所采用的推理部署引擎设置其值(仅支持 vllmsglang)。配置示例如下:

{
  "labels": {
    "ServiceEngineType": "vllm"
  }
}

Q: 日志里频繁出现/metrics 200的原因是什么?

ServiceEngineType标签正确配置生效后,EAS后端会定期调用推理部署框架的/metrics接口(约10-15秒一次,包含采集间隔及轮询所有pod的时间)。该接口以Prometheus格式提供实时框架指标,前端据此渲染LLM监控数据。

Q:监控中怎么统计最近的最大并发数?

EAS监控目前没有直接的"最大并发数"指标,可以根据服务类型通过以下方式了解并发情况:

  • LLM推理服务(vllm或sglang引擎):切换到VLLM监控仪表盘SGLang监控仪表盘,查看Requests StatusRequests Num中的Running指标,该指标表示当前正在GPU上运行的请求数,即实时并发数。通过切换时间范围(例如选择Last 1 hours或Last 6 hours),找到Running曲线的峰值,即为该时间段内的最大并发数。

  • 普通服务:可以通过服务监控仪表盘中的QPS(每秒请求数)和RT(响应时间)来估算并发量。根据Little's Law:并发数 ≈ QPS × 平均RT(秒)。例如,QPS为10、平均RT为2秒时,并发数约为20。取该公式在峰值时段的结果,即可估算最大并发数。

Q:E2E Request Latency 与 RT 的区别?

E2E Request Latency 由LLM推理引擎提供,而RT由 EAS引擎(easworker)提供。在LLM场景下建议使用E2E Request Latency。

相关文档