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

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

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

监控目标态设计

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

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

监控目标

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

监控基础指标设计

监控架构设计

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

在 Kubernetes 体系中传统数值类时序数据一般是由Prometheus来管理的,状态类信息和配置类信息都是存在etcd里的,但是有时候需要配合起来完成监控目标,因此就需要将状态类数据和配置数据导入Prometheus,Kube 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信息,我们可以看到grafana的NodePort是30004,在集群中任意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. 对监控数据做样本分析和特征分析,训练最佳调度插件模型,通过性能数据来修正误差更新模型,逐步完成智能调度。

点击关注,第一时间了解华为云新鲜技术~

Volcano 监控设计解读,一看就懂的更多相关文章

  1. 一看就懂的ReactJs入门教程(精华版)

    一看就懂的ReactJs入门教程(精华版) 现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和 ...

  2. 保姆级别的RabbitMQ教程!一看就懂!(有安装教程,送安装需要的依赖包,送Java、Golang两种客户端教学Case)

    保姆级别的RabbitMQ教程!一看就懂!(有安装教程,送安装需要的依赖包,送Java.Golang两种客户端教学Case)   目录 什么是AMQP 和 JMS? 常见的MQ产品 安装RabbitM ...

  3. 设计人员应该看的15个很酷的 iOS 8 设计

    苹果新一代智能手机 iPhone 6 发布已经有一段时间了,一些创意设计师已经开始在设计中采用 iOS 8 设计理念.当然,其中有些是对于未来的展望和大胆的设计.我在这里收集了15个很酷的 iOS 8 ...

  4. 一看就懂的Android APP开发入门教程

    一看就懂的Android APP开发入门教程 作者: 字体:[增加 减小] 类型:转载   这篇文章主要介绍了Android APP开发入门教程,从SDK下载.开发环境搭建.代码编写.APP打包等步骤 ...

  5. mysql取出现在的时间戳和时间时间戳转成人类看得懂的时间

    mysql取出现在的时间戳和时间时间戳转成人类看得懂的时间,我们在mysql里面他封装了一个内置的时间戳转化的函数,比如我们现在的时间戳是:1458536709 ,"%Y-%m-%d&quo ...

  6. JavaScript一看就懂(2)闭包

    认识闭包之前需要先了解作用域,如果你对作用域还没有足够了解,请移步JavaScript一看就懂(1)作用域 什么是闭包? 我们可以先简单认为:一个函数a定义在另一个函数b里面,这个函数a就是闭包: f ...

  7. 小学生都看得懂的C语言入门(1): 基础/判别/循环

    c基础入门, 小学生也可以都看得懂!!!! 安装一个编译器, 这方面我不太懂, 安装了DEV-C++  ,体积不大,30M左右吧, 感觉挺好用,初学者够了. 介绍下DEV 的快键键: 恢复 Ctrl+ ...

  8. python中和生成器协程相关的yield from之最详最强解释,一看就懂(四)

    如果认真读过上文的朋友,应该已经明白了yield from实现的底层generator到caller的上传数据通道是什么了.本文重点讲yield from所实现的caller到coroutine的向下 ...

  9. python中和生成器协程相关yield from之最详最强解释,一看就懂(二)

    一. 从列表中yield  语法形式:yield from <可迭代的对象实例> python中的列表是可迭代的, 如果想构造一个生成器逐一产生list中元素,按之前的yield语法,是在 ...

  10. python中和生成器协程相关的yield之最详最强解释,一看就懂(一)

    yield是python中一个非常重要的关键词,所有迭代器都是yield实现的,学习python,如果不把这个yield的意思和用法彻底搞清楚,学习python的生成器,协程和异步io的时候,就会彻底 ...

随机推荐

  1. [ABC216G] 01Sequence 题解

    01Sequence 题目大意 构造一个满足 \(m\) 个形如 \((l,r,x)\) 的限制条件的 \(01\) 序列,其中 \((l,r,x)\) 表示区间 \([l,r]\) 的和不小于 \( ...

  2. C++ 与 QML 之间进行数据交互的几种方法

    一.属性绑定 这是最简单的方式,可以在QML中直接绑定C++ 对象的属性.通过在C++ 对象中使用Q_PROPERTY宏定义属性,然后在QML中使用绑定语法将属性与QML元素关联起来. person. ...

  3. Mach-O Inside: 命令行工具集 otool objdump od 与 dwarfdump

    1 otool otool 命令行工具用来查看 Mach-O 文件的结构. 1.1 查看文件头 otool -h -v 文件路径 -h选项表明查看 Mach-O 文件头. -v 选项表明将展示的内容进 ...

  4. 小测试:HashSet可以插入重复的元素吗?

    Set的定义是一群不重复的元素的集合容器.也就是说,只要使用Set组件,应该是要保证相同的数据只能写入一份,要么报错,要么忽略.当然一般是直接忽略. 如题,HashSet是Set的一种实现,自然也符合 ...

  5. Git文件权限与filemode配置方法

    一.问题 Clion是一个跨平台的IDE,今天将工程运行在Ubuntu下,在Git提交时发现有很多文件显示被更改,但是文件内容却是相同的. 二.Git 规则 Git对文件访问权限的管理与配置选项cor ...

  6. 介绍一个我开源的项目:一键部署 VictoriaMetrics 群集

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 我实在是非常喜欢这个强大的 metrics 监控组件 Vi ...

  7. 一次elasticsearch 查询瞬间超时案例分析

    大家好,我是蓝胖子,有段时间没有做性能分析案例讲解了,正好前两天碰到一个性能问题,今天就来对它探讨探讨. 问题背景 在晚上9点左右,刚从外面逛街回到家,就接到了电话报警(幸好前不久刚好把电话报警机制加 ...

  8. three.js 汽车行驶效果

    实现原理是使用TWEEN.Tween实现动画效果 实现 汽车模型加载 使用Promise编写模型的异步加载方法 Car.prototype.loadCar = function (position, ...

  9. 【译】拥抱 SQL Server 2022 与 SSDT 17.8:揭示关键更新

    在数据库开发的动态场景中,SQL Server Data Tools(SSDT)是 Visual Studio 生态系统中数据库开发人员的强大工具.SSDT 17.8 包含在最新版本的 Visual ...

  10. 第一章 JavaEE应用和开发环境

    1.1 java EE应用概述 1.java EE的分层模型 数据库--[提供持久化服务]-->Domain Object层 --[封装]--〉DAO层--[提供数据访问服务]-->业务逻 ...