通义千问1.5-1.8B-Chat-GPTQ-Int4 vLLM监控实践:Prometheus+Grafana指标采集教程
本文介绍了如何在星图GPU平台上自动化部署通义千问1.5-1.8B-Chat-GPTQ-Int4镜像,并利用Prometheus和Grafana实现模型性能监控。该方案能实时追踪GPU使用率、请求延迟等关键指标,确保AI对话服务稳定高效运行,适用于智能客服、内容生成等应用场景。
通义千问1.5-1.8B-Chat-GPTQ-Int4 vLLM监控实践:Prometheus+Grafana指标采集教程
1. 监控系统概述与价值
在实际的AI模型部署中,仅仅让模型运行起来是远远不够的。我们需要实时了解模型的运行状态、性能表现和资源使用情况,这样才能确保服务的稳定性和可靠性。这就是为什么我们需要为通义千问1.5-1.8B-Chat-GPTQ-Int4模型搭建完整的监控系统。
监控系统能帮你解决什么问题?
- 实时掌握模型状态:知道模型是否正常运行,响应速度如何
- 快速定位问题:当服务出现异常时,能快速找到问题根源
- 优化资源配置:根据实际使用情况调整服务器资源,避免浪费
- 提升用户体验:确保用户获得稳定、快速的服务响应
本教程将手把手教你如何使用Prometheus和Grafana来监控基于vLLM部署的通义千问模型,让你对自己的AI服务了如指掌。
2. 环境准备与组件安装
在开始监控配置之前,我们需要先准备好相关组件。假设你已经按照之前的教程成功部署了通义千问模型和chainlit前端。
2.1 安装Prometheus
Prometheus是一个开源的监控系统,负责采集和存储监控数据。
# 下载Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.47.2/prometheus-2.47.2.linux-amd64.tar.gz
# 解压文件
tar xvfz prometheus-2.47.2.linux-amd64.tar.gz
cd prometheus-2.47.2.linux-amd64
# 创建配置文件目录
sudo mkdir -p /etc/prometheus
sudo mkdir -p /var/lib/prometheus
# 复制配置文件
sudo cp prometheus.yml /etc/prometheus/
sudo cp promtool /usr/local/bin/
sudo cp prometheus /usr/local/bin/
# 创建系统服务
sudo tee /etc/systemd/system/prometheus.service <<EOF
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
[Install]
WantedBy=multi-user.target
EOF
# 创建专用用户
sudo useradd --no-create-home --shell /bin/false prometheus
# 设置目录权限
sudo chown -R prometheus:prometheus /etc/prometheus
sudo chown -R prometheus:prometheus /var/lib/prometheus
# 启动服务
sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus
2.2 安装Grafana
Grafana是一个数据可视化平台,用于展示Prometheus采集的监控数据。
# 安装Grafana
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install -y grafana
# 启动Grafana服务
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
# 检查服务状态
sudo systemctl status grafana-server
2.3 安装Node Exporter
Node Exporter用于采集服务器本身的监控数据,如CPU、内存、磁盘使用情况等。
# 下载Node Exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
# 解压并安装
tar xvfz node_exporter-1.6.1.linux-amd64.tar.gz
sudo cp node_exporter-1.6.1.linux-amd64/node_exporter /usr/local/bin/
# 创建系统服务
sudo tee /etc/systemd/system/node_exporter.service <<EOF
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
EOF
# 创建专用用户
sudo useradd --no-create-home --shell /bin/false node_exporter
# 启动服务
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl enable node_exporter
3. vLLM监控指标配置
vLLM本身提供了丰富的监控指标,我们需要配置Prometheus来采集这些数据。
3.1 配置Prometheus采集vLLM指标
首先修改Prometheus的配置文件,添加vLLM的监控目标:
# 编辑Prometheus配置文件
sudo nano /etc/prometheus/prometheus.yml
# 在scrape_configs部分添加以下配置
scrape_configs:
- job_name: 'vllm'
static_configs:
- targets: ['localhost:8000'] # vLLM默认监控端口
metrics_path: '/metrics'
- job_name: 'node'
static_configs:
- targets: ['localhost:9100'] # Node Exporter端口
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090'] # Prometheus自身监控
重启Prometheus使配置生效:
sudo systemctl restart prometheus
3.2 验证指标采集
检查Prometheus是否成功采集到vLLM的监控指标:
# 查看vLLM指标端点
curl http://localhost:8000/metrics
# 检查Prometheus目标状态
# 访问 http://你的服务器IP:9090/targets
# 应该能看到vllm、node、prometheus三个目标都是UP状态
vLLM提供的关键监控指标包括:
- vllm:request_latency_seconds:请求延迟分布
- vllm:request_throughput:请求吞吐量
- vllm:gpu_utilization:GPU使用率
- vllm:gpu_memory_usage:GPU内存使用情况
- vllm:num_requests:当前处理中的请求数
4. Grafana仪表板配置
现在我们来配置Grafana,创建直观的监控仪表板。
4.1 初始配置
首先访问Grafana界面:
- 打开浏览器,访问
http://你的服务器IP:3000 - 默认用户名/密码:admin/admin
- 首次登录后会要求修改密码
添加Prometheus数据源:
- 点击左侧配置图标 → Data sources → Add data source
- 选择Prometheus
- URL填写:http://localhost:9090
- 点击Save & Test,应该显示"Data source is working"
4.2 创建vLLM监控仪表板
我们将创建一个完整的监控仪表板,包含以下关键指标:
4.2.1 创建新的仪表板
点击左侧"+"图标 → Create → Dashboard → Add new panel
4.2.2 添加关键监控面板
GPU使用率面板:
- 标题:GPU使用率监控
- 查询:
vllm:gpu_utilization - 可视化:Time series
- 单位:Percent (0-100)
请求延迟面板:
- 标题:请求延迟分布
- 查询:
histogram_quantile(0.95, sum(rate(vllm:request_latency_seconds_bucket[5m])) by (le)) - 可视化:Time series
- 单位:Seconds
吞吐量监控面板:
- 标题:请求吞吐量
- 查询:
rate(vllm:request_throughput[5m]) - 可视化:Time series
- 单位:Requests/second
内存使用面板:
- 标题:GPU内存使用
- 查询:
vllm:gpu_memory_usage - 可视化:Time series
- 单位:Bytes
4.3 导入预置仪表板模板
如果你觉得手动创建太麻烦,也可以直接导入预置的仪表板模板:
- 点击左侧"+" → Import
- 输入仪表板ID:18602(vLLM官方监控模板)
- 选择Prometheus数据源
- 点击Import
或者使用这个简化的JSON模板:
{
"dashboard": {
"title": "vLLM监控仪表板",
"panels": [
{
"title": "GPU使用率",
"type": "graph",
"targets": [{"expr": "vllm:gpu_utilization"}]
},
{
"title": "请求延迟(P95)",
"type": "graph",
"targets": [{"expr": "histogram_quantile(0.95, sum(rate(vllm:request_latency_seconds_bucket[5m])) by (le))"}]
}
]
}
}
5. 告警规则配置
监控不仅要看历史数据,还要能及时发现问题。我们来配置一些关键的告警规则。
5.1 配置Prometheus告警规则
创建告警规则文件:
# 创建告警规则目录
sudo mkdir /etc/prometheus/alerts
sudo tee /etc/prometheus/alerts/vllm-alerts.yml <<EOF
groups:
- name: vllm-alerts
rules:
- alert: HighGPUUsage
expr: vllm:gpu_utilization > 90
for: 5m
labels:
severity: warning
annotations:
summary: "GPU使用率过高"
description: "GPU使用率持续超过90%,当前值为 {{ $value }}%"
- alert: HighRequestLatency
expr: histogram_quantile(0.95, sum(rate(vllm:request_latency_seconds_bucket[5m])) by (le)) > 5
for: 2m
labels:
severity: warning
annotations:
summary: "请求延迟过高"
description: "95%分位请求延迟超过5秒,当前值为 {{ $value }}秒"
- alert: ServiceDown
expr: up{job="vllm"} == 0
for: 1m
labels:
severity: critical
annotations:
summary: "vLLM服务宕机"
description: "vLLM服务已停止响应"
EOF
更新Prometheus配置,启用告警规则:
# 在prometheus.yml中添加
rule_files:
- "alerts/vllm-alerts.yml"
重启Prometheus:
sudo systemctl restart prometheus
5.2 配置Grafana告警通知
你还可以在Grafana中配置告警通知渠道:
- 进入Alerting → Notification channels
- 添加需要的通知方式(Email、Slack、Webhook等)
- 在仪表板面板中设置告警规则
6. 实际监控效果演示
完成以上配置后,你的监控系统就已经 ready了。让我们来看看实际的监控效果。
6.1 正常运行时监控视图
当通义千问模型正常运行时,你应该能在Grafana中看到:
- GPU使用率:根据请求量动态变化,通常在20-70%之间波动
- 请求延迟:大部分请求应该在1-3秒内完成
- 吞吐量:根据模型性能和硬件配置,通常能处理5-20请求/秒
- 内存使用:保持相对稳定,不会频繁大幅波动
6.2 异常情况识别
监控系统能帮你快速识别以下异常情况:
性能瓶颈识别:
- 当GPU使用率持续高于90%,说明需要优化模型或升级硬件
- 请求延迟突然升高,可能表示有复杂请求或系统资源不足
服务异常检测:
- 服务完全无响应时,相应指标会变为0
- 内存泄漏时,内存使用量会持续增长不释放
6.3 长期趋势分析
通过长期监控,你还可以:
- 分析使用模式:了解高峰使用时段,合理规划资源
- 容量规划:根据增长趋势提前扩容
- 优化效果验证:对比优化前后的性能指标变化
7. 总结与最佳实践
通过本教程,你已经成功为通义千问1.5-1.8B-Chat-GPTQ-Int4模型搭建了完整的监控系统。现在你能够:
- ✅ 实时监控模型运行状态
- ✅ 快速识别性能问题
- ✅ 基于数据做出优化决策
- ✅ 确保服务高可用性
监控系统维护建议:
- 定期检查:每周检查一次监控系统本身是否正常运行
- 数据清理:设置Prometheus的数据保留策略,避免磁盘写满
- 告警优化:根据实际运行情况调整告警阈值,避免误报
- 备份配置:定期备份Grafana仪表板和Prometheus配置
下一步学习建议:
- 学习使用Grafana的Alerting功能实现更复杂的告警规则
- 探索Prometheus的Recording Rules优化查询性能
- 考虑使用Grafana Loki收集和分析日志数据
- 学习使用Grafana Tempo进行分布式追踪
监控是一个持续优化的过程。随着你对系统了解的深入,不断调整和优化监控策略,让你的通义千问模型服务更加稳定可靠。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐



所有评论(0)