启动监控页面监控vllm,大模型,显存的占用情况
做成一套“Prometheus + Grafana”的可视化监控页,把 vLLM 自带指标、GPU(VRAM) 指标、容器/主机 CPU&内存 全收集到同一个看板里。
方案总览
数据源(exporters)
1. vLLM 自带 /metrics(Prometheus 格式,含运行中/排队请求数、KV-Cache/GPU 显存占用等)。
2. NVIDIA 显卡:DCGM Exporter 暴露 VRAM/利用率/温度/功耗 等到 /metrics。
• 如果是华为 Ascend,可用 npu-smi 做巡检;Prometheus 侧常用 node_exporter 的 textfile collector 或脚本导出器把 npu-smi 结果转成指标(工程做法)。
3. 容器/宿主机:cAdvisor(容器 CPU/内存/网络/重启次数等)。
采集与展示
• Prometheus 抓取所有 /metrics;Grafana 做“单页看板”。
• 云上也可以直接用 Google Cloud Managed Prometheus + 现成 vLLM Dashboard。
• 如需看“每个请求的阶段耗时/链路”,加 OpenTelemetry + Jaeger(vLLM 已提供 OTel 示例)。
⸻
一键部署(Docker Compose 示例)
把下面两个文件放到同一目录:
- docker-compose.yml
version: "3.8"
services:# 你的 vLLM(也可以是外部已有实例;这里仅示例)vllm:image: <your_vllm_image>command: ["python3","-m","vllm.entrypoints.openai.api_server","--model","/models/qwen3"]ports: ["8000:8000"]# 如果跑在别处,把 job 里 targets 指到实际地址即可# Prometheus(抓取 vLLM /metrics、DCGM、cAdvisor)prometheus:image: prom/prometheusvolumes:- ./prometheus.yml:/etc/prometheus/prometheus.yml:roports: ["9090:9090"]# Grafana(做监控页面)grafana:image: grafana/grafanaports: ["3000:3000"]environment:- GF_SECURITY_ADMIN_PASSWORD=admin# NVIDIA GPU 指标(DCGM Exporter)dcgm:image: nvidia/dcgm-exporter:latestruntime: nvidiaprivileged: trueports: ["9400:9400"] # /metrics# 容器指标(cAdvisor)cadvisor:image: gcr.io/cadvisor/cadvisor:latestprivileged: trueports: ["8080:8080"]volumes:- /:/rootfs:ro- /var/run:/var/run:ro- /sys:/sys:ro- /var/lib/docker/:/var/lib/docker:ro
- prometheus.yml
global:scrape_interval: 2s
scrape_configs:- job_name: 'vllm'metrics_path: /metricsstatic_configs:- targets: ['vllm:8000'] # 改成你的 vLLM 地址:端口- job_name: 'dcgm'static_configs:- targets: ['dcgm:9400'] # NVIDIA GPU 指标- job_name: 'cadvisor'static_configs:- targets: ['cadvisor:8080'] # 容器/系统指标
启动:
docker compose up -d
# 访问 Grafana: http://localhost:3000 (admin / admin)
# 访问 Prometheus: http://localhost:9090
DCGM Exporter 会暴露诸如 DCGM_FI_DEV_FB_USED(显存已用 MiB)、DCGM_FI_DEV_GPU_UTIL(GPU 利用率 %)等指标;Prometheus 会自动抓取。
⸻
Grafana 看板怎么做(关键图表 + PromQL)
注:vLLM 指标在不同打包里命名略有差异(上游常见 vllm_running_requests / vllm_waiting_requests;有的发行版写成 vllm_num_requests_running / vllm_num_requests_waiting)。下面给出两套写法,有哪个用哪个。 
A. vLLM 负载 & 排队
• 正在运行请求数(Gauge)
• max(vllm_running_requests) 或 max(vllm_num_requests_running)
• 排队等待请求数(Gauge)
• max(vllm_waiting_requests) 或 max(vllm_num_requests_waiting)
B. vLLM 显存 / KV-Cache(若你的版本暴露了该指标)
• GPU 显存使用(字节 → GiB)
• max(vllm_gpu_memory_usage_bytes) / 1024 / 1024 / 1024 (可做单值 + 阈值配色)
C. GPU(NVIDIA / DCGM)
• 显存使用(MiB)
• DCGM_FI_DEV_FB_USED
• GPU 利用率(%)
• DCGM_FI_DEV_GPU_UTIL
• 温度/功耗(可选)
• DCGM_FI_DEV_GPU_TEMP、DCGM_FI_DEV_POWER_USAGE 等(视驱动/机型)。 
D. 容器/主机(cAdvisor)
• vLLM 容器内存使用
• container_memory_working_set_bytes{container=“vllm”}
• vLLM 容器 CPU 使用率(近 1m)
• rate(container_cpu_usage_seconds_total{container=“vllm”}[1m])
现成模板
• 你也可以直接导入 cAdvisor/Grafana 官方 Docker 容器看板,再加上 vLLM 图表:ID 19908 / 15798(Grafana.com 导入)。 
• 在 GKE 上可直接启用 vLLM 托管看板(Managed Prometheus 提供)。 
⸻
告警(Prometheus rules 示例)
新建 alerts.yml 并在 prometheus.yml 里 rule_files: [“alerts.yml”] 引用:
groups:
- name: vllm-alertsrules:- alert: VLLMWaitingQueueHighexpr: (max(vllm_waiting_requests) OR max(vllm_num_requests_waiting)) > 5for: 2mlabels: {severity: warning}annotations:summary: "vLLM 等待队列偏高"description: "等待请求数持续 > 5,可能需要扩批/加副本或限流。"- alert: GPUMemoryHighexpr: DCGM_FI_DEV_FB_USED / (DCGM_FI_DEV_FB_USED + DCGM_FI_DEV_FB_FREE) > 0.90for: 5mlabels: {severity: warning}annotations:summary: "GPU 显存使用 > 90%"description: "显存紧张,可能影响并发与稳定性。"- alert: VLLMNoRequestsButHighMemexpr: (max(vllm_running_requests) OR max(vllm_num_requests_running)) == 0and DCGM_FI_DEV_FB_USED > 2000for: 10mlabels: {severity: info}annotations:summary: "无请求但显存占用较高"description: "检查是否有残留 KV-Cache 或进程泄漏。"
⸻
进阶:分布式追踪(可选)
如果你想在页面里看到“一次调用从进入到首 Token/解码完成”的时间线:
• 给 vLLM 开 OpenTelemetry,跑个 Jaeger 或接你已有 OTel Collector;Grafana 也可接 Trace 数据源。vLLM 官方有 OTel 示例与生产栈教程。 
⸻
小结(你将获得的“单页监控”)
• vLLM 引擎健康度:运行/等待请求数、(可选)TTFT/吞吐趋势
• 模型资源:KV-Cache/GPU 显存使用(vLLM 暴露) + GPU 真实 VRAM/利用率/温度/功耗(DCGM)
• 容器/系统资源:CPU、内存、网络、重启
• 告警:排队过高、显存吃紧、异常空跑
• (可选)调用链:OTel + Jaeger
上述组件与指标均来自 vLLM 官方/文档与主流 GPU 监控方案(DCGM、cAdvisor),生产上已被广泛采用。