点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

技术探秘:瑶光何以定方向

  • 2020-03-20
  • 本文字数:1745 字

    阅读完需:约 6 分钟

技术探秘:瑶光何以定方向

作为北斗第七星,瑶光自古就可用来判断四季更迭、引向定时。而作为全新发布的智能云操作系统,瑶光智慧云脑又是如何做到统领云上各类资源、实现租户需求与资源供应之间最佳匹配的呢?在华为云瑶光实验室、华为云算法创新实验室里,我们找到了答案。

初识资源调度 云 OS:我太“南”了

依托虚拟化技术,我们得以将数据中心海量的计算、存储资源以云服务的形式对外提供。


而随着数据中心规模扩展、边缘计算带来的算力延伸,承担着高效、精准资源调度的云操作系统面临着三大挑战:


  • 第一个挑战是云计算的资源消耗/售卖模式带来的。

  • 云计算的资源申请通常随机到达、按需计费、用完即释放,无法依据恒定指标构建目标函数求解;

  • 第二个挑战是华为云快速增长带来的。

  • 根据 Frost & Sullivan 对于中国公有云市场的调查研究结果显示,2019 年 Q3 华为云 IaaS 市场份额排名上升至第三,成为增速最快的 Top 厂商。高速增长使得用户资源请求的分布随时间变化,而传统的研究多是针对稳定的请求分布来设计解决方案的;

  • 第三个挑战是服务器本身架构带来的。

  • x86 和 Arm 服务器不同的资源组合方式会导致性能差异,所以这些不同架构设计就像装箱问题中箱子之间加了很多不同隔板,使得放置资源的同时还要考虑性能约束。

致敬经典 传统装箱模型为何行不通

装箱问题最早可以追溯到 1831 年高斯(Gauss)开始研究的布局问题,其本质与装箱一样,都是希望将尽可能多的货物装进箱中。


云端虚拟机的部署是把具有多种资源需求的虚拟机向物理机分配的过程,如下图,云操作系统时刻收到虚拟机的资源创建请求,它需要决策将资源部署到哪台物理机上才能保证碎片率最低。



图 1 当装箱算法遇到云上资源调度


从过程中可以发现,相比经典装箱问题,云上资源调度有了新的约束:


  • 1、实时云环境下,虚拟机是动态、依次部署到物理机上的,事先虚拟机的创删申请和资源需求信息具有不确定性;

  • 2、过高的物理机资源利用率会导致虚拟机的性能下降,故资源调度时要充分考虑物理机的资源和性能约束;

  • 3、根据业务不同的在线/离线属性,调度过程也需考虑同物理机上不同虚拟机之间,因资源抢占可能发生的“扰邻”现象,并尽可能降低影响。

成为智慧云脑 瑶光的学习成长路径

沿着经典装箱问题思路,瑶光背后的专家们尝试了如 FirstFit、BestFit 等运筹学方法,以一台物理机为例,通过比对“请求资源量”和“可用资源量”的匹配程度,即其向量的余弦夹角值来判断对可用资源量的利用情况,如下图所示。



图 2 利用余弦夹角方法求解调度


而站在资源池全局的角度看,当发生随机请求与资源池扩缩容时,目标函数也会随即改变。此时,瑶光引入了具有强大搜索能力的强化学习算法,通过预模拟来尝试各种策略,并反复强化最终收益最大的方案。强化学习以数据为基础,其思路我们可以通过迷宫游戏来理解:



图 3 通过强化学习算法模拟求解最优调度


熊猫在寻找出口处竹子的过程中,“上下左右”每一步决策都可能“碰壁”、“通过”或“吃到竹子”,这些都算是不同经验值的“奖励”。通过反复的模拟,尝试在不同位置(即“状态”)选取不同行动(即“决策”)所分得的奖励,此时“状态 State”与“奖励 Reward”的关系就是资源池选择哪台机器来满足请求的决策依据。


更进一步,不同体系架构的云服务器、不同租户间的 QoS 要求,意味着强化学习算法应对的环境在不停变化。而强化学习训练用的历史数据不具有概括性与对抗性,这时瑶光开始基于历史数据完成自学习与进化,以应对快速规模发展下的资源调度问题。



图 4 基于瑶光调度算法实现自学习调度策略调优


为了验证方案的可行性,瑶光实验室基于随机请求序列(基于华为云现网数据随机打散生成)对专家经验与模型数据双驱动的“瑶光资源调度算法”进行了仿真测试:






测试结果表明,采用瑶光资源调度算法后平均碎片率优化效果提升 30%、同一仿真序列下节省服务器数量约 6%、资源池碎片整理触发周期延长约 50%。

HDC.Cloud 有瑶光、有技术、有未来

华为云设立瑶光实验室的初衷就是聚焦解决云基础服务在创新过程中遇到的痛点,计算资源碎片的优化是其中核心的技术专项,而在本次华为开发者大会 HDC.Cloud 的华为云基础服务展区,你还能参与到更多构建在瑶光智慧云脑之上多样计算、智能边缘等应用。


本文转载自华为云产品与解决方案站公众号。


原文链接:https://mp.weixin.qq.com/s/N1favQRuW6fqob8S53w6vw


2020-03-20 21:29657

评论

发布
暂无评论
发现更多内容

iOS开发:开发过程中单例模式的使用

三掌柜

8月日更 8月

Linux 虚拟文件系统(VFS)分析

赖猫

Linux 文件系统

网络攻防学习笔记 Day112

穿过生命散发芬芳

网络安全 8月日更

硬盘空间免费扩容了2TB!!!

Jackpop

程序员必备!5款小众高效的开发神器

Jackpop

万企明道成立八周年,邀你书写留言!

明道云

仿TP钱包开发,去中心化钱包源码开发

帮小姐姐打分系统的模型创建,滚雪球学 Python 第三轮第 11 篇

梦想橡皮擦

8月日更

Go,一文搞懂 string 实现原理

微客鸟窝

Go 语言 8月日更

从0开始的TypeScriptの十二:装饰器

空城机

JavaScript typescript 大前端 8月日更

elasticsearch7.13.4 ik中文分词器安装

Rubble

8月日更

为什么要选择filecoin矿机挖矿?为什么不直接购买filecoin?

分布式存储 IPFS Filecoin fil挖矿 fil矿机

低品质的勤奋者

箭上有毒

8月日更

vue入门:router路由简介与使用

小鲍侃java

8月日更

【Flutter 专题】61 图解基本 Button 按钮小结 (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

服务发现机制SPI居然是破坏者!

4ye

Java 源码 后端 sping 8月日更

手撸二叉树之根据二叉树创建字符串

HelloWorld杰少

数据结构与算法 8月日更

人工智能下的音频还能这样玩!!!!

Python研究者

8月日更

【Vue2.x 源码学习】第四十二篇 - 组件部分 - 组件挂载流程简述

Brave

源码 vue2 8月日更

☕【Java技术指南】「并发原理专题」AQS的技术体系之CLH、MCS锁的原理及实现

洛神灬殇

AQS 8月日更 MCS锁 CLH锁

博客升级之在线代码编辑器

devpoint

vscode 编辑器 8月日更

管道(Channel)的读取与写入「让我们一起Golang」

Regan Yue

协程 Go 语言 8月日更 管道

Go字符串拼接最佳实践

Rayjun

Go 语言

MySQL 系列教程之(十)索引原理:B+ 树与索引

若尘

MySQL 数据库 8月日更

ndk-build 脚本

Changing Lin

8月日更

架构训练营第 1 期 模块五作业

高远

腾讯良心了?!!!

Jackpop

你可能不知道的css动画性能

云小梦

CSS layout requestAnimationFrame 重排和重绘 will-change

微信小程序测试点汇总

IT蜗壳-Tango

微信小程序测试

先「干」,就对了

非著名程序员

个人成长 职场 认知提升 8月日更

Python代码阅读(第15篇):列表求交集

Felix

Python 编程 Code Programing 阅读代码

技术探秘:瑶光何以定方向_云计算_华为云产品与解决方案_InfoQ精选文章