about blog github

13 May 2026
智算平台随笔

最近有聊到智算平台,想着借此机会,结合自己知道的一点点,随便写写,不懂的地方就先略过,权当复习总结。

分层设计

  • 应用层:训练作业、推理作业、智能体、其他作业等
  • 平台层k8s:
    • volcano+kueue: 作业调度+队列管理
    • 多集群管理: karmada
    • 训练作业管理:openfuyao
    • 监控管理:prometheus+grafana+alertmanager+slack
    • 日志管理:loki
    • gitops: flux cd / argocd
  • 基础设施层
    • 计算:CPU、GPU、NPU等
    • 网络
    • 存储
      • 缓存:热数据,训练数据等
      • 磁盘:温数据,作业检查点,模型数据等
      • 对象存储:冷数据,归档数据、历史数据等

容量规划

  • 节点数:考虑冗余节点
  • GPU卡数:单个作业最大需要多少卡
  • CPU核数
  • 内存
  • 存储
  • 网络带宽
  • 功耗和散热

存储

  • 热数据层:实时训练数据,保留时间短,比如1周删除或者迁移到温数据层
  • 温数据层:分布式文件系统如ceph,保存活跃的训练数据、作业检查点、日志、监控数据等,保留时间长一些比如3个月删除或者迁移到冷数据层
  • 冷数据层:对象存储如minio,历史数据、模型归档、日志归档等,保留时间比如6个月后删除

作业检查点

  • 通过使用增量检查点减少存储空间,第一次保存完整的检查点,户名值保存增量
  • 最多保存3个检查点,通过异步方式保存,不影响当前作业
  • 设置适合时间保存一次检查点
  • 检查点恢复机制
  • 检查点清理

调度系统volcano

  • 配置抢占队列,供紧急作业运行
  • 配置可被抢占队列,供一般作业运行
  • 拓扑感知,优先同一个机架、同交换机、通一个节点调度,提升GPU之间通信效率
  • gang scheduling
  • 独占式调度
  • 共享式调度
  • 队列支持优先级
  • 弹性调度,最少需要多少卡,最多需要多少卡
  • bin packing减少资源碎片
  • fifo
  • 自定义调度插件
    • 缓存节点信息

监控系统

  • 业务指标:成功作业数、失败作业数、队列排队时间、作业训练速度、作业运行时间
  • 系统指标:GPU利用率、显存利用率、内存、CPU、存储、网络
  • 硬件指标:GPU温度、功耗、网卡丢包、硬件错误等
  • dashboard展示
  • 保存短期指标数据到内存和缓存,提升查询效率,如1小时数据从内存查询,24小时数据从硬盘查,历史数据从对象存储查
  • 数据压缩和降采样节约存储空间,比如超过7天数据10分钟采样,超过30天数据1小时采样
  • 自身监控
  • 高可用:部署分布在不同节点或者不同区域

告警

  • GPU利用率低
  • GPU温度高
  • 作业排队时间过长
  • 失败作业数多
  • 支持检查点作业没有检查点
  • GPU错误:自动重置?

aiops

  • alert触发脚本自动resolve issue
  • agent诊断
  • 持续学习和改进
  • 基于作业队列自动扩缩容


LEo at 00:12

about blog github