[发明专利]一种基于自动学习的云容器资源调度方法及系统有效
申请号: | 202210138449.9 | 申请日: | 2022-02-15 |
公开(公告)号: | CN114595029B | 公开(公告)日: | 2023-05-09 |
发明(设计)人: | 何宇;高金锋;吴海涛;刘芳;宋强;鲍海洲;朱玉祥;李刚强;张瑜;张俊明;潘景辉 | 申请(专利权)人: | 黄淮学院 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/50 |
代理公司: | 广州专理知识产权代理事务所(普通合伙) 44493 | 代理人: | 邓易偲 |
地址: | 463000 *** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 自动 学习 容器 资源 调度 方法 系统 | ||
1.一种基于自动学习的云容器资源调度方法,其特征在于,所述方法包括以下步骤:
S100,对多个不同的云容器进行连接,使各云容器的资源调度相互连通;
S200,在多个不同的日期,记录各个云容器在一天内各小时的内存占用分布作为训练数据集;
S300,使用训练数据集来训练自动学习模型预测各个云容器在下一时刻的内存占用分布作为内存占用预测分布;
S400,在得到内存占用预测分布后,计算各个云容器的优选值;
S500,根据各个云容器的优选值,对各个云容器的资源进行调度;
其中,在S100中,对多个不同的云容器进行连接,使各个云容器的资源调度相互连通的方法为:
将多个不同的云容器进行连接组成一个云容器集群,其中每个云容器的云容器各不相同,云容器集群中各云容器的资源调度相互连通,即云容器集群中各云容器的内存容量能在云容器集群中互相转移与互相交换;记云容器集群为Cluster,记云容器集群中云容器的数量为n,云容器集群中云容器的序号为i,i∈[1,n],云容器集群中序号为i的云容器记作Cluster(i);
在S200中,在多个不同的日期,记录各个云容器在一天内各小时的内存占用分布作为训练数据集的方法为:选取不同日期的T天,记录各个云容器在T天的每一天内各个小时的在整点时刻的内存占用分布,内存占用分布由一个云容器在一个时刻的被占用的内存容量的字节数量以及剩余的内存容量的字节数量组成,由此得到T天的24小时每个小时的内存占用分布,每个内存占用分布包含被占用的内存容量的字节数量以及剩余的内存容量的字节数量,记内存占用分布中被占用的内存容量的字节数量为占用量,记内存占用分布中剩余的内存容量的字节数量为剩余量,将T天的24小时每个小时的n个云容器各自的内存占用分布以CSV文件的格式保存作为训练数据集,训练数据集中有T行,T行中每行分为24列,T行中每行分为的24列中的每列为由n个云容器在同一天同一时刻的各自的内存占用分布组成的数组,即T行中每行分为的24列中的每列中的每一个内存占用分布以一个二维数组表示且每一个二维数组由占用量的数值和剩余量的数值组成;其中,训练数据集的使用方法为,选定任一时刻任一云容器的内存占用分布作为预测内存占用分布,将该预测内存占用分布中的具体数值设置为空,并进行预测该预测内存占用分布中的具体数值作为内存占用预测分布;
在S300中,使用训练数据集来训练自动学习模型预测各个云容器在下一时刻的内存占用分布作为内存占用预测分布的方法为:使用训练数据集对训练自动学习模型进行机器学习的学习训练,使自动学习模型学习预测出一个时刻的内存占用分布作为内存占用预测分布,自动学习模型为基于Python编程语言的开源软件AutoKeras中TimeSeriesForecaster模块的AutoML自动机器学习模型,然后,在当前时刻使用训练后的自动学习模型分别预测出各个云容器在当前时刻的下一时刻的内存占用分布作为对应的云容器在当前时刻的下一时刻的内存占用预测分布,其中,内存占用预测分布中的占用量记作预测占用量,内存占用预测分布中的剩余量记作预测剩余量,当前时刻的下一时刻指当前时刻的下一个小时的整点时刻;
在S500中,根据各个云容器的优选值,对各个云容器的资源进行调度的方法为:
S501,在云容器集群中遍历获取各个云容器作为Cluster(i);获取各个云容器的优选值,将云容器Cluster(i)的优选值保存作为p(i);在云容器集群中设置一片独立的内存空间作为调度过渡空间,记调度过渡空间的内存容量大小为ψ,调度过渡空间的内存容量大小的初始值为零字节;
S502,获取各个云容器Cluster(i)在当前时刻的真实的内存占用分布,云容器Cluster(i)在当前时刻的真实的内存占用分布记为dist(i),dist(i)中的占用量记作occup(i),dist(i)中的剩余量记作res(i);获取各个云容器Cluster(i)在当前时刻的下一时刻的内存占用预测分布,云容器Cluster(i)在当前时刻的下一时刻的内存占用预测分布记为dist(i)p,dist(i)p中的预测占用量记作occup(i)p,dist(i)p中的预测剩余量记作res(i)p;
S503,分别计算各个云容器Cluster(i)的内存增幅波动,记云容器Cluster(i)的内存增幅波动为ampl(i),ampl(i)的计算公式为:
;
其中,π表示圆周率,sin为正弦函数,ampl(i)的计算公式即为内存增幅波动的计算方法;
S504,分别计算各个云容器Cluster(i)的增幅波动率,记云容器Cluster(i)的增幅波动率为phil(i);
S505,对各个云容器Cluster(i),依据其各自的内存增幅ampl(i),进行判断Cluster(i)是否满足第一约束条件,第一约束条件为ampl(i)0,若是满足第一约束条件则将满足第一约束条件的云容器转到S507,若否则将不满足第一约束条件的云容器转到S506;
S506,对不满足第一约束条件的云容器Cluster(i),分别获取Cluster(i)的剩余量res(i)中的字节数量大小为res(i)*phil(i)的内存空间作为捐献内存空间,并将捐献内存空间转移予调度过渡空间;转到S508;
S507,对满足第一约束条件的云容器Cluster(i),分别获取调度过渡空间中内存容量大小为ψ*phil(i)的内存空间作为施与内存空间,并将施与内存空间从调度过渡空间中转移予调度过渡空间;转到S508;
S508,完成对各个云容器的资源进行调度;
其中,增幅波动率表示云容器在云容器集群中因其他云容器而产生波动的概率值,记云容器Cluster(i)的增幅波动率为phil(i),p_sum表示云容器集群中各云容器的优选值的数值的累加和,增幅波动率的计算公式为:phil(i)=p(i)/p_sum,由此,得到各个云容器的增幅波动率。
2.一种基于自动学习的云容器资源调度系统,其特征在于,所述一种基于自动学习的云容器资源调度系统包括:处理器、存储器及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1所述一种基于自动学习的云容器资源调度方法中的步骤,所述一种基于自动学习的云容器资源调度系统运行于桌上型计算机、笔记本、掌上电脑及云端数据中心的计算设备中,运行的系统包括处理器、存储器、服务器集群。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于黄淮学院,未经黄淮学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210138449.9/1.html,转载请声明来源钻瓜专利网。