Volcano 监控设计解读,一看就懂

举报
技术火炬手 发表于 2021/01/28 14:51:25 2021/01/28
【摘要】 Volcano 方便AI,大数据,基因,渲染等诸多行业通用计算框架介入,提供高性能任务调度引擎,高性能异构芯片管理,高性能任务运行管理等能力。

Volcano 是一个 Kubernetes 云原生的批量计算平台,也是CNCF的首个批量计算项目。

Volcano 方便AI,大数据,基因,渲染等诸多行业通用计算框架介入,提供高性能任务调度引擎,高性能异构芯片管理,高性能任务运行管理等能力。

监控目标态设计

AI调度系统开发监控的目的

  1. 随着集群规模的扩张和调度规模的变大,调度效率和调度公平性的追求就不会停下。
  2. Volcano 社区展开了长时间的开发,快速的功能迭代,插件逐步增加,这时候在合适的场景下使用合适的插件就变得比较重要,这时候需要选用合适的指标来做性能和公平性评估,来评估当前运行状态是否能满足需求,是否需要对插件进行调整。
  3. 在多租户的场景下,对不同租户资源使用的规划,计量和管控需求日益凸显,因此需要对多租户进行租户级资源监控和公平性检查。
  4. 根据用户运行时间和在各个插件中的调度时间,判断出用户的使用场景,根据使用场景自动配置插件,实现智能调度。

监控目标

  1. 通过定义性能指标 ,定量检测调度系统的性能,指导开发并且评测出针对不同环境的插件配置建议和解决方案,并且给出评判标准。
  2. 通过监测系统以及租户资源使用情况,方便管理员进行协调管理
  3. 对监控数据做样本分析和特征分析,训练最佳调度插件模型,通过性能数据来修正误差更新模型,逐步完成智能调度。

监控基础指标设计

监控指标名称

指标类型

指标描述

e2e_scheduling_latency

histogram

端到端调度延时分布(一次调度多个Job

e2e_job_scheduling_latency

histogram

Job 调度暗示分布

e2e_job_scheduling_duration

Gauge

每一次调度的时间长度

plugin_latency

histogram

插件调度延时分布

action_latency

histogram

Action 调度延时分布

task_latency

histogram

任务调度延时分布

pod_schedule_errors

Counter

pod 调度错误数量

pod_schedule_successes

Counter

pod 调度成功数量

pod_preemption_victims

Counter

pod 抢占幸存数量

total_preemption_attempts

Counter

总体抢占尝试次数

unschedule_task_count

Counter

未调度任务数量

unschedule_job_counts

Counter

未调度Job数量

job_retry_counts

Counter

Job 重试数量

 监控架构设计

目前在Volcano 中引入了三个监控组件,Kube State MetricsPrometheus以及Grafana

Kubernetes 体系中传统数值类时序数据一般是由Prometheus来管理的,状态类信息和配置类信息都是存在etcd里的,但是有时候需要配合起来完成监控目标,因此就需要将状态类数据和配置数据导入PrometheusKube State Metrics 实现了一个标准的 Prometheus Exporter 来从API Server 获取状态数据以及字段配置数据,协助完成状态数据和时序数据的统一管理。

Grafana 中我们初始化 Provision 了一个 Volcano Overview Dashboard,这个Dashboard包含了Volcano的全局监控信息,包括Volcano的公平性数据以及调度有效性数据。

在Volcano上部署监控套件

在线部署

make generate-yaml TAG=latest RELEASE_DIR=installer

kubectl create -finstaller/volcano-monitoring-latest.yaml

离线部署需要的额外工作

检查生成好的 installer/volcano-monitoring-latest.yaml 文件,下载yaml中的所有image,推送到离线环境中的镜像仓库,并且修改所有image字段指向离线仓库。

如何使用

登录 Volcano 的监控面板


Kubernetes集群中用管理员账号获取当前Volcano监控Namespace中的service信息,我们可以看到grafanaNodePort30004,在集群中任意Node节点上访问30004端口即可看到Grafana的界面。

第一次登录需要输入默认用户名和密码admin/admin,后续需要重新设置新密码,设置完成新密码,选择 Volcano Overview Dashboard

Volcano Job 延迟热力图 / Volcano Job 调度延迟排名

通过Volcano Legency Heatmap 我们可以看到当前Job延时发生的具体情况,在集群被打满的情况下,延时很容易快速达到16秒以上,如果当前集群申请的资源没有满,那么可能是没有配置合理的插件导致的。


通过 Volcano Job Scheduling Legecny 我们可以看到当前运行比较长的Vocalno Job运行时间长度,通过比对Scheduler日志,我们可以逐步找到相应的原因,并且调整插件来优化这个过程。

Volcano 公平性数据

Job Scheduling Coefficient Of Variation Volcano 监控的公平性指标,展示了不同Job调度时间长度之间的差异值,目前的插件策略下,是相对比较极端的,部分Job在非常短的时间内被调度完成,剩余的时间比较长。

Volcano 调度效率数据

通过Volcano调度效率数据,我们可以看到整体集群的资源申请request情况,通过Node Resource  Coefficient Of Variation 我们可以看到不同节点之间的资源分布情况。

当前社区进度及未来展望

当前Volcano的性能监控指标KPI并没有完整到可以支撑我们做样本和特征分析,为了实现最终的智能调度,现分为以下三个阶段实现。

  1. 通过定义性能指标 ,定量检测调度系统的性能,指导开发并且评测出针对不同环境的插件配置建议和解决方案,并且给出评判标准。
  2. 通过监测系统以及租户资源使用情况,方便管理员进行协调管理
  3. 对监控数据做样本分析和特征分析,训练最佳调度插件模型,通过性能数据来修正误差更新模型,逐步完成智能调度。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。