平台用户看到的:
"调个 API,秒回结果"
运维要保证的:
GPU 不宕机、推理不超时、训练不排队太久、数据不丢失
余额扣对了、证书没过期、磁盘没满、模型没漂移
凌晨三点出了问题能在手机上看到告警并处理
运维 ≠ 只看监控。 运维是平台可用性、性能、成本的第一责任人。
┌─────────────────────────────────────────────────────────────┐
│ 告警 & 响应 │
│ 告警规则 → 告警触发 → 通知(钉钉/飞书/Slack/电话) → 处理 │
├─────────────────────────────────────────────────────────────┤
│ 可观测三支柱 │
│ Metrics(Prometheus) Logs(Loki) Traces(Jaeger/Tempo) │
├─────────────────────────────────────────────────────────────┤
│ 监控对象 │
│ 基础设施 │ K8s 集群 │ GPU │ 平台服务 │ 推理服务 │ 业务指标 │
├─────────────────────────────────────────────────────────────┤
│ 运维操作 │
│ 集群管理 │ 节点管理 │ 发布管理 │ 配置管理 │ 备份恢复 │
└─────────────────────────────────────────────────────────────┘
| 监控项 | 指标 | 告警阈值 | 工具 |
|---|
| CPU | 使用率 | > 85% 持续 5min | node-exporter |
| 内存 | 使用率 | > 90% | node-exporter |
| 磁盘 | 使用率 | > 80% 告警, > 90% 严重 | node-exporter |
| 磁盘 IO | IOPS / 延迟 | 延迟 > 100ms | node-exporter |
| 网络 | 带宽 / 丢包率 | 丢包 > 1% | node-exporter |
| NFS | 读写延迟 | > 50ms | 自定义 exporter |
| WireGuard | 隧道状态 / 延迟 | peer 超过 60s 无握手 | wg show + 自定义 |
| 监控项 | 指标 | 告警阈值 | 工具 |
|---|
| 节点状态 | Ready/NotReady | 任何节点 NotReady | kube-state-metrics |
| Pod 状态 | Pending/CrashLoop/OOMKill | Pending > 5min | kube-state-metrics |
| Pod 重启 | 重启次数 | 任何 Pod 15min 内重启 > 3 次 | kube-state-metrics |
| API Server | 请求延迟 / 错误率 | P99 > 1s 或 5xx > 1% | apiserver metrics |
| etcd | 磁盘延迟 / leader 切换 | fsync > 100ms | etcd metrics |
| CoreDNS | 查询延迟 / 错误率 | 错误率 > 5% | CoreDNS metrics |
| PVC | 使用率 | > 80% | kubelet metrics |
| 证书 | 到期时间 | < 30 天 | 自定义检查 |
| 监控项 | 指标 | 告警阈值 | 工具 |
|---|
| GPU 利用率 | SM 利用率 % | 推理 < 20% (浪费) | DCGM Exporter |
| GPU 显存 | 已用 / 总量 | > 95% | DCGM Exporter |
| GPU 温度 | 摄氏度 | > 85°C | DCGM Exporter |
| GPU 功耗 | 瓦特 | > TDP 90% | DCGM Exporter |
| GPU 错误 | ECC 错误计数 | 任何 uncorrectable error | DCGM Exporter |
| GPU 状态 | 健康检查 | 任何卡 not healthy | DCGM + 自定义 |
| NVLink | 带宽利用率 | 多卡推理时 < 50% (瓶颈) | DCGM Exporter |
DCGM Exporter (NVIDIA Data Center GPU Manager):
以 DaemonSet 运行在每个 GPU 节点上
暴露 /metrics 端点给 Prometheus 采集
关键指标:
DCGM_FI_DEV_GPU_UTIL GPU 利用率
DCGM_FI_DEV_FB_USED 已用显存
DCGM_FI_DEV_FB_FREE 空闲显存
DCGM_FI_DEV_GPU_TEMP 温度
DCGM_FI_DEV_POWER_USAGE 功耗
DCGM_FI_DEV_XID_ERRORS XID 错误(硬件故障信号)
| 服务 | 监控项 | 告警阈值 |
|---|
| API Gateway | QPS / 延迟 / 错误率 / 限流触发数 | 5xx > 1%, P95 > 500ms |
| User Service | 登录成功率 / 注册量 | 登录失败率 > 10% |
| Billing Service | 扣费延迟 / 余额同步延迟 | 扣费队列 > 1000 |
| Model Service | 部署成功率 / CRD 处理延迟 | 部署失败率 > 5% |
| Training Service | 任务排队时间 / 成功率 | 排队 > 2h, 失败率 > 20% |
| PostgreSQL | 连接数 / 查询延迟 / 复制延迟 | 连接 > 80%, 复制延迟 > 10s |
| Redis | 内存 / 连接数 / 命中率 | 内存 > 80%, 命中率 < 90% |
| 监控项 | 指标 | 告警阈值 | 说明 |
|---|
| 首 Token 延迟 (TTFT) | 毫秒 | P95 > 1s | 用户体感最直接的指标 |
| Token 生成速度 (TPS) | tokens/s | < 10 t/s (7B模型) | 太慢说明 GPU 过载 |
| 请求排队时间 | 毫秒 | P95 > 5s | 需要扩容 |
| 请求成功率 | 百分比 | < 99% | 检查 OOM/超时 |
| 并发请求数 | 数量 | > max_concurrency 80% | 即将触顶 |
| KV Cache 利用率 | 百分比 | > 90% | 长上下文消耗 KV Cache |
| Batch 利用率 | 实际batch/最大batch | < 30% 说明利用率低 | 可缩容 |
推理服务 SLA 定义:
┌──────────────┬──────────┬──────────┬──────────┐
│ 指标 │ 共享池 │ 独享标准 │ 独享高级 │
├──────────────┼──────────┼──────────┼──────────┤
│ 可用性 │ 99% │ 99.9% │ 99.95% │
│ TTFT P95 │ 2s │ 500ms │ 200ms │
│ TPS (7B) │ 20+ │ 30+ │ 40+ │
│ 排队时间 P95 │ 10s │ 1s │ 100ms │
│ 月度赔付 │ 无 │ 10x 故障时│ 100x │
└──────────────┴──────────┴──────────┴──────────┘
| 指标 | 说明 | 看板位置 |
|---|
| 活跃租户数 | 24h 内有 API 调用的组织数 | 运营大盘 |
| API 调用量 | 总 QPS / 按模型分 | 运营大盘 |
| Token 消耗 | 日/周/月 Token 总量和趋势 | 运营大盘 |
| 收入 | 日/周/月 收入金额 | 运营大盘 |
| GPU 利用率 | 整体 GPU 资源利用率 | 成本分析 |
| GPU 成本/Token | 每百万 Token 的 GPU 成本 | 成本分析 |
| 训练队列 | 排队任务数 / 平均等待时间 | 容量规划 |
| 新增注册 | 日新增用户/组织 | 增长分析 |
| 留存率 | 7日/30日 活跃留存 | 增长分析 |
| 充值金额 | 日/周/月 充值总额 | 财务 |
| 级别 | 含义 | 响应时间 | 通知方式 |
|---|
| P0 Critical | 平台不可用/数据丢失风险 | 5 分钟 | 电话 + 短信 + 群消息 |
| P1 High | 核心功能受损/大面积影响 | 15 分钟 | 短信 + 群消息 |
| P2 Medium | 部分功能异常/性能下降 | 1 小时 | 群消息 |
| P3 Low | 预警/趋势异常 | 当天 | 群消息 |
- alert: InferenceServiceDown
expr: up{job="inference"} == 0
for: 1m
labels:
severity: critical
annotations:
summary: "推理服务 {{ $labels.instance }} 不可用"
runbook: "检查 Pod 状态 → 检查 GPU → 检查模型加载"
- alert: NodeDown
expr: up{job="node-exporter"} == 0
for: 2m
labels:
severity: critical
- alert: GPUXIDError
expr: DCGM_FI_DEV_XID_ERRORS > 0
for: 0m
labels:
severity: high
annotations:
summary: "GPU {{ $labels.gpu }} 发生 XID 错误,可能硬件故障"
runbook: "1. 检查 dmesg 2. 迁移该卡上的任务 3. 联系硬件供应商"
- alert: InferenceLatencyHigh
expr: histogram_quantile(0.95, rate(inference_request_duration_seconds_bucket[5m])) > 2
for: 5m
labels:
severity: high
annotations:
summary: "推理 P95 延迟超过 2 秒"
runbook: "1. 检查 QPS 是否突增 2. 检查 GPU 利用率 3. 考虑扩容"
- alert: DiskAlmostFull
expr: (node_filesystem_avail_bytes / node_filesystem_size_bytes) < 0.1
for: 5m
labels:
severity: high
- alert: PodCrashLooping
expr: rate(kube_pod_container_status_restarts_total[15m]) > 0.2
for: 5m
labels:
severity: medium
- alert: TrainingQueueTooLong
expr: training_queue_length > 10
for: 30m
labels:
severity: medium
annotations:
summary: "训练队列积压 {{ $value }} 个任务"
runbook: "考虑增加 GPU 节点或调整调度策略"
- alert: CertificateExpiringSoon
expr: (cert_expiry_timestamp - time()) / 86400 < 30
for: 1h
labels:
severity: low
- alert: GPUUnderutilized
expr: avg_over_time(DCGM_FI_DEV_GPU_UTIL[1h]) < 20
for: 6h
labels:
severity: low
annotations:
summary: "GPU {{ $labels.gpu }} 过去 6 小时平均利用率仅 {{ $value }}%"
runbook: "考虑缩容或合并推理实例"
┌────────────┐ ┌──────────────┐ ┌────────────────────┐
│ Prometheus │────→│ Alertmanager │────→│ 通知渠道 │
│ 触发规则 │ │ 分组/抑制/静默│ │ │
└────────────┘ └──────────────┘ │ ├── 飞书/钉钉群机器人│
│ ├── Slack Webhook │
│ ├── 邮件 │
│ ├── 短信 (阿里云SMS) │
│ ├── 电话 (P0级) │
│ └── PagerDuty/Opsgenie│
└────────────────────┘
告警分组:
同一个服务的多条告警合并为一条通知(避免告警风暴)
告警抑制:
节点宕机 → 抑制该节点上所有 Pod 的告警(因为根因是节点)
告警静默:
计划维护时临时静默相关告警
值班表:
周一~周五: 张三 (白班) / 李四 (夜班)
周末: 王五
电话升级: 5分钟无人响应 → 自动电话通知备份值班人
每条告警关联一个 Runbook,包含:
1. 告警含义: 这个告警意味着什么
2. 影响范围: 哪些用户/服务受影响
3. 排查步骤: 第一步看什么、第二步看什么
4. 修复方案: 具体怎么操作
5. 升级流程: 什么时候需要叫更多人
6. 历史案例: 之前出过类似问题的记录
示例 Runbook — InferenceLatencyHigh:
1. 打开 Grafana 推理监控面板
2. 看是全部模型还是单个模型延迟高
3. 检查 QPS → 是否突增(被某个租户刷了?)
4. 检查 GPU 利用率 → 是否已经 100%
5. 如果 QPS 突增 → 检查哪个租户 → 是否触发限流
6. 如果 GPU 满载 → 手动扩容副本数
7. 如果扩容后仍不下降 → 检查模型是否有问题
8. 如果 10分钟内无法解决 → 升级给 @架构师
| 操作 | 说明 | 风险 | 审批 |
|---|
| 添加节点 | 新 GPU 服务器加入集群 | 低 | 无需 |
| 下线节点 | drain → 迁移 Pod → 移除 | 中 | 需审批 |
| K8s 升级 | 1.30 → 1.31 | 高 | 需审批+维护窗口 |
| etcd 备份/恢复 | 定期备份,灾难恢复 | 高 | 自动备份,恢复需审批 |
| 证书轮换 | K8s/etcd/Webhook 证书 | 中 | 计划任务 |
平台服务发布流程:
1. 代码合并到 main 分支
2. CI 构建镜像 → 推送到 Harbor
3. 更新 Git 仓库中的 manifests(镜像 tag)
4. ArgoCD 检测到变更
5. 自动同步 staging 环境
6. 在 staging 跑自动化测试
7. 人工审批 → ArgoCD 同步 production
8. 灰度发布(5% → 20% → 50% → 100%)
9. 监控核心指标 15 分钟
10. 确认无异常 → 发布完成
回滚:
ArgoCD 一键回滚到上一个 Git commit
或 Helm rollback
自动化: 发布后如果 5xx 率 > 阈值,自动回滚
GPU 容量规划公式:
需要的 GPU 数 =
(峰值 QPS × 平均生成 Token 数) / 单卡 TPS / 目标利用率
示例:
峰值 QPS: 100
平均生成: 200 tokens
单卡 TPS (A10, 7B): 30 tokens/s
目标利用率: 70%
GPU 数 = (100 × 200) / 30 / 0.7 = 952 → 需要 32 张 A10
加上冗余 (N+1): 33 张
加上训练需求: +8 张
总计: ~41 张 A10 或等价 GPU
| 策略 | 节省幅度 | 实现方式 |
|---|
| 量化推理 | 30-50% | INT8/INT4 减少 GPU 需求 |
| 多 LoRA 共享 | 50-70% | 一张卡同时服务多个微调模型 |
| Serverless 缩容 | 按需 | 空闲时缩到 0,不付 GPU 费用 |
| Spot 实例 | 60-80% | 训练任务用 spot GPU,可被抢占 |
| 请求合并 (Batching) | 20-40% | vLLM continuous batching |
| KV Cache 复用 | 10-20% | prefix caching,相同 system prompt 复用 |
| 模型蒸馏 | 因模型而异 | 用大模型的输出训练小模型 |
故障级别:
Level 1: 单 Pod 故障
→ K8s 自动重启/重调度
→ 用户无感知
→ 不需要人工介入
Level 2: 单节点故障
→ K8s 5分钟后驱逐 Pod 到其他节点
→ 推理可能短暂排队(HPA 扩容中)
→ 训练从 Checkpoint 恢复
→ 值班人员检查原因
Level 3: 多节点故障 / 网络分区
→ 手动介入,评估影响范围
→ 切换到备用节点/备用集群
→ 通知受影响租户
Level 4: 全集群不可用
→ 从 etcd 备份恢复
→ 或切换到灾备集群
→ 启动应急响应流程
→ CEO 级通知
备份策略:
etcd: 每 6 小时自动备份,保留 7 天
PostgreSQL: 每天全量 + WAL 增量,保留 30 天
模型文件: S3 三副本 + 跨区复制
训练数据: S3 三副本
配置: Git 版本控制 (ArgoCD)
运维管理后台
│
├── 运维总览 (Dashboard)
├── 集群管理
│ ├── 节点列表
│ ├── 节点详情
│ └── 集群操作(升级/备份)
├── GPU 管理
│ ├── GPU 资源池总览
│ ├── GPU 节点详情
│ └── GPU 分配策略
├── 服务管理
│ ├── 平台服务列表
│ ├── 推理实例管理
│ └── 训练任务管理
├── 监控中心
│ ├── 基础设施监控
│ ├── 推理服务监控
│ ├── 业务指标大盘
│ └── 自定义看板
├── 告警中心
│ ├── 活跃告警
│ ├── 告警历史
│ ├── 告警规则管理
│ ├── 通知渠道配置
│ └── 值班表
├── 日志中心
│ ├── 日志搜索
│ ├── 日志聚合分析
│ └── 日志告警
├── 发布管理
│ ├── 发布记录
│ ├── 灰度发布
│ └── 回滚
├── 配置管理
│ ├── 模型上架配置
│ ├── 计费价格配置
│ └── 限流规则配置
└── 容量与成本
├── 容量规划
├── 成本分析
└── 资源利用率报告
┌──────────────────────────────────────────────────────────────────┐
│ 运维总览 最后更新: 10秒前 [刷新]│
├──────────────────────────────────────────────────────────────────┤
│ │
│ ── 平台状态 ── │
│ │
│ 🟢 API Gateway 🟢 User Service 🟢 Billing Service │
│ 🟢 Model Service 🟢 Training Svc 🟡 Gitea (重启中) │
│ 🟢 PostgreSQL 🟢 Redis 🟢 Harbor │
│ │
│ ── 核心指标 ── │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 总 QPS │ │ 推理延迟 │ │ 成功率 │ │ 活跃租户 │ │
│ │ 452 │ │ P95 320ms│ │ 99.8% │ │ 128 │ │
│ │ ↑12% │ │ ─ 稳定 │ │ ─ 正常 │ │ ↑5% │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ ── GPU 资源 ── │
│ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ 总计: 24 GPU │ │
│ │ A10 ████████████████░░░░░░ 12/16 (75%) 推理:9 训练:3 │ │
│ │ A100 ████████████░░░░░░░░░░ 4/8 (50%) 推理:2 训练:2 │ │
│ │ H100 ████████████████████░░ 2/2 (100%) 训练:2 ⚠ 已满 │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ │
│ ── 活跃告警 ── │
│ │
│ 🔴 P1 GPU gpu-07 XID 错误 (31分钟前) [处理 →] │
│ 🟡 P2 训练队列积压 8 个任务 (2小时前) [查看 →] │
│ 🟡 P3 GPU gpu-04#3 过去6h利用率仅15% [查看 →] │
│ │
│ ── QPS 趋势 (24h) ── ── 推理延迟 P95 (24h) ── │
│ │
│ 600│ ╱╲ ╱╲ │ 800│ │
│ 400│ ╱╲╱ ╲╱╱ ╲╱╲ │ 600│ ╱╲ │
│ 200│╱╱ ╲╲ │ 400│ ╱╲──────╱╱ ╲╲ │
│ 0│ ╲ │ 200│╱╲╱╱ │
│ 0:00 6:00 12:00 18:00 │ 0:00 6:00 12:00 18:00 │
│ │
│ ── 今日运维事件 ── │
│ 09:15 张三 扩容推理实例 qwen-7b 3→5 副本 │
│ 08:30 系统 自动 etcd 备份完成 (32MB) │
│ 03:00 系统 告警: gpu-07 XID 错误 │
│ 01:00 系统 训练任务 acme-cs-v4 完成 │
└──────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────┐
│ GPU 资源池 [+ 添加节点] │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 总览: 24 GPU │ 已用 18 (75%) │ 空闲 5 │ 异常 1 │
│ 今日 GPU 成本: ¥1,850 │ 本月累计: ¥42,300 │
│ │
│ ┌─ gpu-node-01 ─────────────────────────────────────────────┐ │
│ │ A10 24G × 4 │ LA │ 🟢 正常 │ │
│ │ │ │
│ │ GPU 0: █████████░ 89% 推理 qwen-7b-shared pod-abc │ │
│ │ GPU 1: ██████░░░░ 62% 推理 qwen-7b-shared pod-def │ │
│ │ GPU 2: ████████░░ 78% 训练 acmecorp-cs-v4 │ │
│ │ GPU 3: ░░░░░░░░░░ 0% 空闲 │ │
│ │ │ │
│ │ CPU: 45% │ 内存: 62% │ 磁盘: 35% │ 网络: 2.3Gbps │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─ gpu-node-05 ─────────────────────────────────────────────┐ │
│ │ A100 80G × 4 │ LA │ 🟢 正常 │ │
│ │ │ │
│ │ GPU 0: ████████░░ 82% 推理 qwen-72b-shared pod-ghi │ │
│ │ 显存: 72/80G 温度: 72°C │ │
│ │ GPU 1: ████████░░ 78% 推理 qwen-72b-shared pod-ghi (TP)│ │
│ │ 显存: 70/80G 温度: 70°C │ │
│ │ GPU 2: █████████░ 91% 训练 bigcorp-legal-v1 │ │
│ │ 显存: 75/80G 温度: 75°C │ │
│ │ GPU 3: ██████░░░░ 58% 训练 bigcorp-legal-v1 (DP) │ │
│ │ 显存: 65/80G 温度: 68°C │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─ gpu-node-07 ─────────────────────────────────────────────┐ │
│ │ H100 80G × 2 │ LA │ 🔴 异常 │ │
│ │ │ │
│ │ GPU 0: ████████░░ 85% 训练 deeplearn-llm-pretrain │ │
│ │ GPU 1: 🔴 XID Error 79 需要维护 │ │
│ │ │ │
│ │ 告警: GPU 1 发生 XID 79 错误 (落中内存错误) [查看详情] │ │
│ │ 建议: 迁移该卡上的任务,安排硬件检查 [迁移任务] │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ ── GPU 利用率热力图 (最近24h) ── │
│ │
│ 0h 2h 4h 6h 8h 10h 12h 14h 16h 18h 20h 22h │
│ gpu-01#0 ░░ ░░ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ │
│ gpu-01#1 ░░ ░░ ░░ ██ ██ ██ ██ ██ ██ ██ ░░ ░░ │
│ gpu-01#2 ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ │
│ gpu-01#3 ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ │
│ ... ░=空闲 ▓=中等 █=高负载 │
└──────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────┐
│ 告警中心 │
├──────────────────────────────────────────────────────────────────┤
│ [活跃告警 (3)] [已处理] [已静默] [告警规则] [通知配置] [值班表] │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 活跃告警: 1 Critical │ 1 High │ 1 Low │
│ │
│ 🔴 Critical GPUXIDError 31分钟前 │
│ gpu-node-07 GPU 1 发生 XID 79 错误(双位 ECC 错误) │
│ 影响: 该卡上的训练任务可能产出错误结果 │
│ Runbook: 1.迁移任务 2.重启 GPU 3.跑 memtest 4.联系供应商 │
│ 处理人: 未认领 [认领] [静默 1h] [查看 Runbook] │
│ │
│ 🟡 High TrainingQueueTooLong 2小时前 │
│ 训练队列积压 8 个任务,预计等待 2.5 小时 │
│ 影响: 新提交的训练任务需要等待较长时间 │
│ 建议: 增加 GPU 节点或提升高优先级任务调度权重 │
│ 处理人: 张三 (已认领) [处理中] [备注] │
│ 备注: 已申请 2 台 A10 临时节点,预计 1 小时内到位 │
│ │
│ 🔵 Low GPUUnderutilized 6小时前 │
│ gpu-node-01 GPU 3 过去 6 小时平均利用率 0% │
│ 建议: 考虑调度推理负载到该卡,或缩减节点 │
│ [已知忽略] [创建工单] │
│ │
└──────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────┐
│ 日志中心 │
├──────────────────────────────────────────────────────────────────┤
│ │
│ 查询: {namespace="inference-shared"} |= "error" | json │
│ 时间: [最近 1 小时 ▼] [搜索] │
│ │
│ 快捷过滤: │
│ Namespace: [全部▼] Pod: [全部▼] Level: [error▼] │
│ │
│ ── 结果 (1,234 条) ── │
│ │
│ 15:32:01 inference-shared/qwen-7b-xxx-abc [ERROR] │
│ Request timeout after 120s, model=qwen2.5-7b, │
│ prompt_tokens=4096, org_id=acmecorp │
│ │
│ 15:31:58 inference-shared/qwen-7b-xxx-abc [ERROR] │
│ CUDA out of memory. Tried to allocate 256 MiB. │
│ GPU 0 has 24 GiB total, 23.2 GiB allocated. │
│ │
│ 15:31:45 inference-shared/qwen-7b-xxx-def [ERROR] │
│ Connection refused: billing-service:8080 │
│ │
│ ── 日志趋势 ── │
│ │
│ 50│ ╱╲ │
│ 30│ ╱╲╱ ╲ │
│ 10│╱╱ ╲───────── │
│ └──────────────────── │
│ 14:30 14:45 15:00 15:15 15:30 │
│ │
│ 导出: [下载 CSV] [创建告警规则] [分享链接] │
└──────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────┐
│ 成本分析 [本月 ▼] [导出报告] │
├──────────────────────────────────────────────────────────────────┤
│ │
│ ── 本月成本概览 ── │
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ GPU 成本 │ │ 存储成本 │ │ 网络成本 │ │ 总成本 │ │
│ │ ¥42,300 │ │ ¥1,200 │ │ ¥800 │ │ ¥44,300 │ │
│ │ ↑8% │ │ ↑15% │ │ ─ 持平 │ │ ↑9% │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ ── GPU 成本 vs 收入 ── │
│ │
│ ¥60K│ ╱── 收入 │
│ ¥40K│ ╱─── ──── ───╱ │
│ ¥20K│ ╱─────╱ ─ ─ ─── GPU 成本 │
│ └────────────────────────── │
│ Jan Feb Mar Apr │
│ │
│ 毛利率: 62% (收入¥116K - GPU成本¥44K = 毛利¥72K) │
│ │
│ ── 按模型拆分 ── │
│ │
│ 模型 GPU 成本 收入 毛利 利用率 GPU/百万Token│
│ qwen-7b ¥15,200 ¥38,000 60% 72% ¥0.40 │
│ qwen-14b ¥10,500 ¥25,000 58% 65% ¥0.42 │
│ qwen-72b ¥12,000 ¥42,000 71% 82% ¥0.29 最优 │
│ deepseek-v3 ¥4,600 ¥11,000 58% 88% ¥0.42 │
│ │
│ ── 优化建议 ── │
│ │
│ 💡 qwen-7b 利用率 72%,考虑启用 INT8 量化节省 1 张 A10 │
│ 预计节省: ¥3,800/月 │
│ 💡 gpu-node-01 GPU#3 长期空闲,建议调度推理负载 │
│ 预计节省: ¥2,400/月 │
│ 💡 训练任务集中在白天,夜间 GPU 空闲率 60% │
│ 建议: 训练任务夜间优惠价,引导用户错峰 │
└──────────────────────────────────────────────────────────────────┘
| 序号 | 页面 | 路由 | 优先级 |
|---|
| 1 | 运维总览 Dashboard | /admin/overview | P0 |
| 2 | 节点列表 | /admin/nodes | P0 |
| 3 | 节点详情 | /admin/nodes/:id | P0 |
| 4 | GPU 资源池总览 | /admin/gpu-pool | P0 |
| 5 | GPU 节点详情 | /admin/gpu-pool/:id | P0 |
| 6 | GPU 分配策略 | /admin/gpu-pool/policy | P1 |
| 7 | 平台服务列表 | /admin/services | P0 |
| 8 | 推理实例管理 | /admin/inference | P0 |
| 9 | 训练任务管理 | /admin/training | P0 |
| 10 | 基础设施监控 | /admin/monitoring/infra | P0 |
| 11 | 推理服务监控 | /admin/monitoring/inference | P0 |
| 12 | 业务指标大盘 | /admin/monitoring/business | P0 |
| 13 | 活跃告警 | /admin/alerts | P0 |
| 14 | 告警历史 | /admin/alerts/history | P1 |
| 15 | 告警规则管理 | /admin/alerts/rules | P0 |
| 16 | 通知渠道配置 | /admin/alerts/channels | P0 |
| 17 | 值班表 | /admin/alerts/oncall | P1 |
| 18 | 日志搜索 | /admin/logs | P0 |
| 19 | 发布记录 | /admin/releases | P1 |
| 20 | 模型上架配置 | /admin/config/models | P0 |
| 21 | 计费价格配置 | /admin/config/pricing | P0 |
| 22 | 限流规则配置 | /admin/config/ratelimit | P1 |
| 23 | 容量规划 | /admin/capacity | P1 |
| 24 | 成本分析 | /admin/cost | P1 |
| 25 | etcd 备份管理 | /admin/backup | P1 |