跳到内容

生产指标

vLLM 提供了许多可用于监控系统健康状况的指标。这些指标通过 vLLM OpenAI 兼容 API 服务器上的 /metrics 端点暴露。

你可以使用 Python 或 Docker 启动服务器。

vllm serve unsloth/Llama-3.2-1B-Instruct

然后查询该端点以从服务器获取最新指标。

输出
$ curl http://0.0.0.0:8000/metrics

# HELP vllm:iteration_tokens_total Histogram of number of tokens per engine_step.
# TYPE vllm:iteration_tokens_total histogram
vllm:iteration_tokens_total_sum{model_name="unsloth/Llama-3.2-1B-Instruct"} 0.0
vllm:iteration_tokens_total_bucket{le="1.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
vllm:iteration_tokens_total_bucket{le="8.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
vllm:iteration_tokens_total_bucket{le="16.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
vllm:iteration_tokens_total_bucket{le="32.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
vllm:iteration_tokens_total_bucket{le="64.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
vllm:iteration_tokens_total_bucket{le="128.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
vllm:iteration_tokens_total_bucket{le="256.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
vllm:iteration_tokens_total_bucket{le="512.0",model_name="unsloth/Llama-3.2-1B-Instruct"} 3.0
...

以下是暴露的指标:

通用指标

指标名称 类型 描述
vllm:corrupted_requests 计数器 (Counter) 已损坏请求,指 Logits 中包含 NaN 的请求总数。
vllm:external_prefix_cache_hits 计数器 (Counter) 来自 KV 连接器跨实例缓存共享的外部前缀缓存命中,单位为缓存的 Token 数量。
vllm:external_prefix_cache_queries 计数器 (Counter) 来自 KV 连接器跨实例缓存共享的外部前缀缓存查询,单位为查询的 Token 数量。
vllm:generation_tokens 计数器 (Counter) 已处理的生成 Token 数量。
vllm:mm_cache_hits 计数器 (Counter) 多模态缓存命中,单位为缓存项数量。
vllm:mm_cache_queries 计数器 (Counter) 多模态缓存查询,单位为查询项数量。
vllm:num_preemptions 计数器 (Counter) 引擎抢占的累计次数。
vllm:prefix_cache_hits 计数器 (Counter) 前缀缓存命中,单位为缓存的 Token 数量。
vllm:prefix_cache_queries 计数器 (Counter) 前缀缓存查询,单位为查询的 Token 数量。
vllm:prompt_tokens 计数器 (Counter) 已处理的预填充(Prefill)Token 数量。
vllm:prompt_tokens_by_source 计数器 (Counter) 按来源划分的提示词(Prompt)Token 数量。
vllm:prompt_tokens_cached 计数器 (Counter) 已缓存的提示词 Token 数量(本地 + 外部)。
vllm:prompt_tokens_recomputed 计数器 (Counter) 前向传递中重新计算的缓存 Token 数量。
vllm:request_success 计数器 (Counter) 成功处理的请求计数。
vllm:engine_sleep_state 仪表 (Gauge) 引擎睡眠状态;awake = 0 表示引擎正在睡眠;awake = 1 表示引擎处于唤醒状态;weights_offloaded = 1 表示睡眠级别 1;discard_all = 1 表示睡眠级别 2。
vllm:kv_cache_usage_perc 仪表 (Gauge) KV 缓存使用率。1 表示 100% 使用。
vllm:lora_requests_info 仪表 (Gauge) LoRA 请求的运行统计信息。
vllm:num_requests_running 仪表 (Gauge) 模型执行批次中的请求数量。
vllm:num_requests_waiting 仪表 (Gauge) 等待处理的请求数量。
vllm:e2e_request_latency_seconds 直方图 (Histogram) 端到端请求延迟的直方图(单位:秒)。
vllm:inter_token_latency_seconds 直方图 (Histogram) Token 间延迟的直方图(单位:秒)。
vllm:iteration_tokens_total 直方图 (Histogram) 每个 engine_step 的 Token 数量直方图。
vllm:kv_block_idle_before_evict_seconds 直方图 (Histogram) KV 缓存块在被驱逐前的空闲时间直方图。采样指标(受 --kv-cache-metrics-sample 控制)。
vllm:kv_block_lifetime_seconds 直方图 (Histogram) KV 缓存块从分配到驱逐的生命周期直方图。采样指标(受 --kv-cache-metrics-sample 控制)。
vllm:kv_block_reuse_gap_seconds 直方图 (Histogram) 连续 KV 缓存块访问之间的时间间隔直方图。仅记录最近的访问(环形缓冲区)。采样指标(受 --kv-cache-metrics-sample 控制)。
vllm:request_decode_time_seconds 直方图 (Histogram) 请求在 DECODE 阶段花费的时间直方图。
vllm:request_generation_tokens 直方图 (Histogram) 已处理的生成 Token 数量。
vllm:request_inference_time_seconds 直方图 (Histogram) 请求在 RUNNING 阶段花费的时间直方图。
vllm:request_max_num_generation_tokens 直方图 (Histogram) 请求生成的最大 Token 数量直方图。
vllm:request_params_max_tokens 直方图 (Histogram) max_tokens 请求参数的直方图。
vllm:request_params_n 直方图 (Histogram) n 请求参数的直方图。
vllm:request_prefill_kv_computed_tokens 直方图 (Histogram) 预填充期间计算的新 KV Token 直方图(不包括已缓存的 Token)。
vllm:request_prefill_time_seconds 直方图 (Histogram) 请求在 PREFILL 阶段花费的时间直方图。
vllm:request_prompt_tokens 直方图 (Histogram) 已处理的预填充(Prefill)Token 数量。
vllm:request_queue_time_seconds 直方图 (Histogram) 请求在 WAITING 阶段花费的时间直方图。
vllm:request_time_per_output_token_seconds 直方图 (Histogram) 每个请求的 time_per_output_token_seconds 直方图。
vllm:time_to_first_token_seconds 直方图 (Histogram) 首个 Token 生成时间直方图(单位:秒)。

投机采样指标

指标名称 类型 描述
vllm:spec_decode_num_accepted_tokens 计数器 (Counter) 已接受的 Token 数量。
vllm:spec_decode_num_accepted_tokens_per_pos 计数器 (Counter) 按草稿位置划分的已接受 Token 数量。
vllm:spec_decode_num_draft_tokens 计数器 (Counter) 草稿 Token 数量。
vllm:spec_decode_num_drafts 计数器 (Counter) 投机采样草稿数量。

NIXL KV 连接器指标

指标名称 类型 描述
vllm:nixl_num_failed_notifications 计数器 (Counter) NIXL KV 缓存通知失败次数。
vllm:nixl_num_failed_transfers 计数器 (Counter) NIXL KV 缓存传输失败次数。
vllm:nixl_num_kv_expired_reqs 计数器 (Counter) KV 过期的请求数量。注意:此指标在 P 实例上跟踪。
vllm:nixl_bytes_transferred 直方图 (Histogram) 每次 NIXL KV 缓存传输的字节数直方图。
vllm:nixl_num_descriptors 直方图 (Histogram) 每次 NIXL KV 缓存传输的描述符数量直方图。
vllm:nixl_post_time_seconds 直方图 (Histogram) NIXL KV 缓存传输的发布时间直方图。
vllm:nixl_xfer_time_seconds 直方图 (Histogram) NIXL KV 缓存传输的持续时间直方图。

模型算力利用率(MFU)性能指标

这些指标可通过 --enable-mfu-metrics 获取。

指标名称 类型 描述
vllm:estimated_flops_per_gpu_total 计数器 (Counter) 每个 GPU 的估计浮点运算次数(用于模型算力利用率计算)。
vllm:estimated_read_bytes_per_gpu_total 计数器 (Counter) 每个 GPU 的估计内存读取字节数(用于模型算力利用率计算)。
vllm:estimated_write_bytes_per_gpu_total 计数器 (Counter) 每个 GPU 的估计内存写入字节数(用于模型算力利用率计算)。

弃用策略

注意:当指标在 X.Y 版本中被弃用时,它们会在 X.Y+1 版本中隐藏,但可以使用 --show-hidden-metrics-for-version=X.Y 逃生舱口重新启用,并在 X.Y+2 版本中彻底移除。