跳到内容

生产指标

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 计数器 损坏的请求,以 logits 中包含 NaN 的总请求数衡量。
vllm:external_prefix_cache_hits 计数器 来自 KV 连接器跨实例缓存共享的外部前缀缓存命中次数,以缓存的 token 数衡量。
vllm:external_prefix_cache_queries 计数器 来自 KV 连接器跨实例缓存共享的外部前缀缓存查询次数,以查询的 token 数衡量。
vllm:generation_tokens 计数器 已处理的生成 token 数。
vllm:mm_cache_hits 计数器 多模态缓存命中次数,以缓存的项目数衡量。
vllm:mm_cache_queries 计数器 多模态缓存查询次数,以查询的项目数衡量。
vllm:num_preemptions 计数器 引擎抢占的总次数。
vllm:prefix_cache_hits 计数器 前缀缓存命中次数,以缓存的 token 数衡量。
vllm:prefix_cache_queries 计数器 前缀缓存查询次数,以查询的 token 数衡量。
vllm:prompt_tokens 计数器 已处理的预填充 token 数。
vllm:request_success 计数器 成功处理的请求数。
vllm:engine_sleep_state Gauge 引擎睡眠状态;唤醒 = 0 表示引擎正在睡眠;唤醒 = 1 表示引擎已唤醒;权重已卸载 = 1 表示睡眠级别 1;全部丢弃 = 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 每个引擎步骤的 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 已处理的预填充 token 数。
vllm:request_queue_time_seconds Histogram 请求的 WAITING 阶段花费的时间直方图。
vllm:request_time_per_output_token_seconds Histogram 每个请求的 time_per_output_token_seconds 直方图。
vllm:time_per_output_token_seconds Histogram 每秒输出 token 时间的直方图。已弃用:请改用 vllm:inter_token_latency_seconds。
vllm:time_to_first_token_seconds Histogram 首次 token 时间(秒)的直方图。

推测性解码指标

指标名称 类型 描述
vllm:spec_decode_num_accepted_tokens 计数器 接受的 token 数。
vllm:spec_decode_num_accepted_tokens_per_pos 计数器 每个草稿位置接受的 token 数。
vllm:spec_decode_num_draft_tokens 计数器 草稿 token 数。
vllm:spec_decode_num_drafts 计数器 推测性解码草稿次数。

NIXL KV 连接器指标

指标名称 类型 描述
vllm:nixl_num_failed_notifications 计数器 失败的 NIXL KV 缓存通知数。
vllm:nixl_num_failed_transfers 计数器 失败的 NIXL KV 缓存传输数。
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 缓存传输的传输持续时间直方图。

弃用策略

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