CN114595029B - 一种基于自动学习的云容器资源调度方法及系统 - Google Patents
一种基于自动学习的云容器资源调度方法及系统 Download PDFInfo
- Publication number
- CN114595029B CN114595029B CN202210138449.9A CN202210138449A CN114595029B CN 114595029 B CN114595029 B CN 114595029B CN 202210138449 A CN202210138449 A CN 202210138449A CN 114595029 B CN114595029 B CN 114595029B
- Authority
- CN
- China
- Prior art keywords
- cloud container
- cloud
- memory
- distribution
- cluster
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于自动学习的云容器资源调度方法及系统,对多个不同的云容器进行连接使各云容器的资源调度相互连通,在多个不同的日期记录各个云容器在一天内各小时的内存占用分布作为训练数据集,使用训练数据集来训练自动学习模型预测各个云容器在下一时刻的内存占用分布作为内存占用预测分布,在得到内存占用预测分布后计算各个云容器的优选值,根据各个云容器的优选值对各个云容器的资源进行调度,实现了自动根据云容器数据存储的改变自动调度各个云容器的初始资源存储容量并高效节省了资源调度时间成本的有益效果,大幅度提升了云容器集群的资源使用效率。
Description
技术领域
本发明属于分布式计算领域,具体涉及一种基于自动学习的云容器资源调度方法及系统。
背景技术
云容器是一种基于分布式计算的数据存储方式,可以有效地将大规模数据并行地存储于以多个不同的云容器组成的数据存储系统中。以云容器作为节点,可以有效变动每个节点的存储数据量,使各个节点动态根据当前的数据存储的内存增幅波动进行变动。自动学习AutoML可以使用自动化的数据驱动算法对已有的数据进行自动的数学建模并进行快速的预测,使用自动学习算法能够预测出各个云容器在当前时刻的下一时刻的内存占用分布,高效节省了时间成本。
发明内容
本发明的目的在于提出一种基于自动学习的云容器资源调度方法及系统,以解决现有技术中所存在的一个或多个技术问题,至少提供一种有益的选择或创造条件。
本发明提供了一种基于自动学习的云容器资源调度方法及系统,将多个不同的云容器进行连接使各云容器的资源调度相互连通,在多个不同的日期记录各个云容器在一天内各小时的内存占用分布作为训练数据集,使用训练数据集来训练自动学习模型预测各个云容器在下一时刻的内存占用分布作为内存占用预测分布,在得到内存占用预测分布后计算各个云容器的优选值,进而根据各个云容器的优选值对各个云容器的资源进行调度。
为了实现上述目的,根据本发明的一方面,提供一种基于自动学习的云容器资源调度方法,所述方法包括以下步骤:
S100,对多个不同的云容器进行连接,使各云容器的资源调度相互连通;
S200,在多个不同的日期,记录各个云容器在一天内各小时的内存占用分布作为训练数据集;
S300,使用训练数据集来训练自动学习模型预测各个云容器在下一时刻的内存占用分布作为内存占用预测分布;
S400,在得到内存占用预测分布后,计算各个云容器的优选值;
S500,根据各个云容器的优选值,对各个云容器的资源进行调度。
进一步地,在S100中,对多个不同的云容器进行连接,使各个云容器的资源调度相互连通的方法为:
将多个不同的云容器进行连接组成一个云容器集群,其中每个云容器的云容器各不相同,云容器集群中各云容器的资源调度相互连通,即云容器集群中各云容器的内存容量能在云容器集群中互相转移与互相交换;
记云容器集群为Cluster,记云容器集群中云容器的数量为n,云容器集群中云容器的序号为i,i∈[1,n],云容器集群中序号为i的云容器记作Cluster(i)。
进一步地,在S200中,在多个不同的日期,记录各个云容器在一天内各小时的内存占用分布作为训练数据集的方法为:
选取不同日期的T天(T为正整数且T≥30),T天即可为T个日期连续的天,记录各个云容器在T天的每一天内各个小时的在整点时刻的内存占用分布,内存占用分布由一个云容器在一个时刻的被占用的内存容量的字节数量以及剩余的内存容量的字节数量组成(字节数量的单位为Gigabyte,本发明中涉及内存容量的计算皆经过去量纲化处理),由此得到T天的24小时每个小时的内存占用分布,每个内存占用分布包含被占用的内存容量的字节数量以及剩余的内存容量的字节数量,记内存占用分布中被占用的内存容量的字节数量为占用量,记内存占用分布中剩余的内存容量的字节数量为剩余量,将T天的24小时每个小时的n个云容器各自的内存占用分布以CSV文件的格式保存作为训练数据集,训练数据集中有T行,T行中每行分为24列,T行中每行分为的24列中的每列为由n个云容器在同一天同一时刻的各自的内存占用分布组成的数组,即T行中每行分为的24列中的每列中的每一个内存占用分布以一个二维数组表示且每一个二维数组由占用量的数值和剩余量的数值组成;
其中,训练数据集的使用方法为,选定任一时刻任一云容器的内存占用分布作为预测内存占用分布,将该预测内存占用分布中的具体数值设置为空,并进行预测该预测内存占用分布中的具体数值作为内存占用预测分布。
进一步地,在S300中,使用训练数据集来训练自动学习模型预测各个云容器在下一时刻的内存占用分布作为内存占用预测分布的方法为:
使用训练数据集对训练自动学习模型进行机器学习的学习训练,使自动学习模型学习预测出一个时刻的内存占用分布作为内存占用预测分布,自动学习模型为基于Python编程语言的开源软件AutoKeras中TimeSeriesForecaster模块的AutoML自动机器学习模型(参见论文:Jin H,Song Q,Hu X.Efficient Neural Architecture Search with NetworkMorphism[J].2018.),然后,在当前时刻使用训练后的自动学习模型分别预测出各个云容器在当前时刻的下一时刻的内存占用分布作为对应的云容器在当前时刻的下一时刻的内存占用预测分布,其中,内存占用预测分布中的占用量记作预测占用量,内存占用预测分布中的剩余量记作预测剩余量,当前时刻的下一时刻指当前时刻的下一个小时的整点时刻。
其中,在S400中,在得到内存占用预测分布后,计算各个云容器的优选值的方法为:
将云容器集群中各个云容器根据每个云容器的内存容量按照内存容量较小则为左节点的规则使用前序遍历算法构建成一个二叉树,以内存容量为云容器集群中各云容器的内存容量的中位数的一个云容器为二叉树的根节点,根节点左边的节点其内存容量需小于等于根节点的内存容量,根节点右边的节点其内存容量需大于等于根节点的内存容量,由此将各个云容器作为各个节点连接成为一个整体的树状的数据结构结构作为一个二叉树记为Ctree,云容器集群中各个云容器作为二叉树Ctree中的各个结点,以二叉树的结点的层次的序号及结点在该层次中从左至右的序号作为Ctree中的各个结点的定位序号,以二叉树Ctree的根结点为Ctree(1,1),以二叉树的根结点所在的层次为第1层次,二叉树Ctree的深度记为常数D,以二叉树的根结点所在的层次为开始向二叉树的深度所在的层次沿每一个层次逐层递增,二叉树Ctree的层次的序号为变量d,d∈[1,D],二叉树Ctree中序号为d的层次中从左至右的结点的数量记为wid(d),二叉树Ctree中序号为d的层次中从左至右的结点的序号记为t(d),t(d)∈[1,wid(d)],二叉树Ctree中序号为d的层次中从左至右的序号为t(d)的结点记作Ctree(d,t(d));
优选值为表示一个结点在二叉树中被优先地遍历到的权重值,计算优先值的有益效果为通过测量各个结点在二叉树中被优先地遍历到的权重值从而快速确定需要优先筛选使用的结点,而无需对各个节点进行全面的遍历搜索以此节省了时间成本;
从Ctree中选取任一结点记作Ctree(d1,t(d1)),d1表示Ctree(d1,t(d1))所在层次的序号,t(d1)表示在二叉树Ctree中序号为d1的层次中从左至右的结点的序号,d1∈[1,D],Ctree(d1,t(d1))表示二叉树Ctree中序号为d1的层次中从左至右的序号为t(d1)的结点,二叉树Ctree中序号为d1的层次中从左至右的结点的数量记为wid(d1),t(d1)∈[1,wid(d1)],结点Ctree(d1,t(d1))的优先值记为p(d1,t(d1)),结点Ctree(d1,t(d1))的优先值的计算公式为:
其中,函数exp()表示以自然常数e为底的对数函数,p(d1,t(d1))的计算公式即为优先值的计算方法,
从而通过优先值的计算公式计算得到云容器集群中各个云容器作为二叉树Ctree中的各个结点时各个结点的优先值即为各个云容器的优选值。
进一步地,在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)的计算公式为:
ampl(i)=sin(π*occup(i)*occup(i)p/res(i)*res(i)p),
其中,π表示圆周率,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)的内存空间作为施与内存空间,并将施与内存空间从调度过渡空间中转移予Cluster(i);转到S508;
S508,完成对各个云容器的资源进行调度;
其中,增幅波动率表示云容器在云容器集群中因其他云容器而产生波动的概率值,记云容器Cluster(i)的增幅波动率为phil(i),p_sum表示云容器集群中各云容器的优选值的数值的累加和,增幅波动率的计算公式为:phil(i)=p(i)/p_sum,由此,得到各个云容器的增幅波动率。
本发明还提供了一种基于自动学习的云容器资源调度系统,所述一种基于自动学习的系统包括:处理器、存储器及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述一种基于自动学习的云容器资源调度方法中的步骤以此控制云容器资源调度,所述一种基于自动学习的云容器资源调度系统可以运行于桌上型计算机、笔记本、掌上电脑及云端数据中心等计算设备中,可运行的系统可包括,但不仅限于,处理器、存储器、服务器集群,所述处理器执行所述计算机程序运行在以下系统的单元中:
云容器连接单元,用于对多个不同的云容器进行连接,使各云容器的资源调度相互连通;
内存占用分布获取单元,用于在多个不同的日期,记录各个云容器在一天内各小时的内存占用分布作为训练数据集;
内存占用预测分布获取单元,用于使用训练数据集来训练自动学习模型预测各个云容器在下一时刻的内存占用分布作为内存占用预测分布;
优选值计算单元,用于在得到内存占用预测分布后,计算各个云容器的优选值;
云容器资源调度单元,用于根据各个云容器的优选值,对各个云容器的资源进行调度。
本发明的有益效果为:本发明提供了一种基于自动学习的云容器资源调度方法及系统,对多个不同的云容器进行连接使各云容器的资源调度相互连通,在多个不同的日期记录各个云容器在一天内各小时的内存占用分布作为训练数据集,使用训练数据集来训练自动学习模型预测各个云容器在下一时刻的内存占用分布作为内存占用预测分布,在得到内存占用预测分布后计算各个云容器的优选值,根据各个云容器的优选值对各个云容器的资源进行调度,实现了自动根据云容器数据存储的改变自动调度各个云容器的初始资源存储容量并高效节省了资源调度时间成本的有益效果,大幅度提升了云容器集群的资源使用效率。
附图说明
通过对结合附图所示出的实施方式进行详细说明,本发明的上述以及其他特征将更加明显,本发明附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:
图1所示为一种基于自动学习的云容器资源调度方法的流程图;
图2所示为一种基于自动学习的云容器资源调度系统的系统结构图。
具体实施方式
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
如图1所示为根据本发明的一种基于自动学习的云容器资源调度方法的流程图,下面结合图1来阐述根据本发明的实施方式的一种基于自动学习的云容器资源调度方法及系统。
本发明提出一种基于自动学习的云容器资源调度方法,所述方法具体包括以下步骤:
S100,对多个不同的云容器进行连接,使各云容器的资源调度相互连通;
S200,在多个不同的日期,记录各个云容器在一天内各小时的内存占用分布作为训练数据集;
S300,使用训练数据集来训练自动学习模型预测各个云容器在下一时刻的内存占用分布作为内存占用预测分布;
S400,在得到内存占用预测分布后,计算各个云容器的优选值;
S500,根据各个云容器的优选值,对各个云容器的资源进行调度。
进一步地,在S100中,对多个不同的云容器进行连接,使各个云容器的资源调度相互连通的方法为:
将多个不同的云容器进行连接组成一个云容器集群,其中每个云容器的云容器各不相同,云容器集群中各云容器的资源调度相互连通,即云容器集群中各云容器的内存容量能在云容器集群中互相转移与互相交换,所述云容器为云服务器;
记云容器集群为Cluster,记云容器集群中云容器的数量为n,云容器集群中云容器的序号为i,i∈[1,n],云容器集群中序号为i的云容器记作Cluster(i)。
进一步地,在S200中,在多个不同的日期,记录各个云容器在一天内各小时的内存占用分布作为训练数据集的方法为:
选取不同日期的T天,其中可优选地,T为正整数且T≥30,T天即可为T个日期连续的天,记录各个云容器在T天的每一天内各个小时的在整点时刻的内存占用分布,内存占用分布由一个云容器在一个时刻的被占用的内存容量的字节数量以及剩余的内存容量的字节数量组成(字节数量的单位为Gigabyte),由此得到T天的24小时每个小时的内存占用分布,每个内存占用分布包含被占用的内存容量的字节数量以及剩余的内存容量的字节数量,记内存占用分布中被占用的内存容量的字节数量为占用量,记内存占用分布中剩余的内存容量的字节数量为剩余量,将T天的24小时每个小时的n个云容器各自的内存占用分布以CSV文件的格式保存作为训练数据集,训练数据集中有T行,T行中每行分为24列,T行中每行分为的24列中的每列为由n个云容器在同一天同一时刻的各自的内存占用分布组成的数组,即T行中每行分为的24列中的每列中的每一个内存占用分布以一个二维数组表示且每一个二维数组由占用量的数值和剩余量的数值组成;
其中,训练数据集的使用方法为,选定任一时刻任一云容器的内存占用分布作为预测内存占用分布,将该预测内存占用分布中的具体数值设置为空,并进行预测该预测内存占用分布中的具体数值作为内存占用预测分布。
进一步地,在S300中,使用训练数据集来训练自动学习模型预测各个云容器在下一时刻的内存占用分布作为内存占用预测分布的方法为:
使用训练数据集对训练自动学习模型进行机器学习的学习训练,使自动学习模型学习预测出一个时刻的内存占用分布作为内存占用预测分布,自动学习模型为基于Python编程语言的开源软件AutoKeras中TimeSeriesForecaster模块的AutoML自动机器学习模型(参见论文:Jin H,Song Q,Hu X.Efficient Neural Architecture Search with NetworkMorphism[J].2018.),然后,在当前时刻使用训练后的自动学习模型分别预测出各个云容器在当前时刻的下一时刻的内存占用分布作为对应的云容器在当前时刻的下一时刻的内存占用预测分布,其中,内存占用预测分布中的占用量记作预测占用量,内存占用预测分布中的剩余量记作预测剩余量,当前时刻的下一时刻指当前时刻的下一个小时的整点时刻。
其中,在S400中,在得到内存占用预测分布后,计算各个云容器的优选值的方法为:
将云容器集群中各个云容器根据每个云容器的内存容量按照内存容量较小则为左节点的规则使用前序遍历算法构建成一个二叉树,以内存容量为云容器集群中各云容器的内存容量的中位数的一个云容器为二叉树的根节点,根节点左边的节点其内存容量需小于等于根节点的内存容量,根节点右边的节点其内存容量需大于等于根节点的内存容量,由此将各个云容器作为各个节点连接成为一个整体的树状的数据结构结构作为一个二叉树记为Ctree,云容器集群中各个云容器作为二叉树Ctree中的各个结点,以二叉树的结点的层次的序号及结点在该层次中从左至右的序号作为Ctree中的各个结点的定位序号,以二叉树Ctree的根结点为Ctree(1,1),以二叉树的根结点所在的层次为第1层次,二叉树Ctree的深度记为常数D,以二叉树的根结点所在的层次为开始向二叉树的深度所在的层次沿每一个层次逐层递增,二叉树Ctree的层次的序号为变量d,d∈[1,D],二叉树Ctree中序号为d的层次中从左至右的结点的数量记为wid(d),二叉树Ctree中序号为d的层次中从左至右的结点的序号记为t(d),t(d)∈[1,wid(d)],二叉树Ctree中序号为d的层次中从左至右的序号为t(d)的结点记作Ctree(d,t(d));
优选值为表示一个结点在二叉树中被优先地遍历到的权重值,计算优先值的有益效果为通过测量各个结点在二叉树中被优先地遍历到的权重值从而快速确定需要优先筛选使用的结点,而无需对各个节点进行全面的遍历搜索以此节省了时间成本;
从Ctree中选取任一结点记作Ctree(d1,t(d1)),d1表示Ctree(d1,t(d1))所在层次的序号,t(d1)表示在二叉树Ctree中序号为d1的层次中从左至右的结点的序号,d1∈[1,D],Ctree(d1,t(d1))表示二叉树Ctree中序号为d1的层次中从左至右的序号为t(d1)的结点,二叉树Ctree中序号为d1的层次中从左至右的结点的数量记为wid(d1),t(d1)∈[1,wid(d1)],结点Ctree(d1,t(d1))的优先值记为p(d1,t(d1)),结点Ctree(d1,t(d1))的优先值的计算公式为:
其中,函数exp()表示以自然常数e为底的对数函数,p(d1,t(d1))的计算公式即为优先值的计算方法,
从而通过优先值的计算公式计算得到云容器集群中各个云容器作为二叉树Ctree中的各个结点时各个结点的优先值即为各个云容器的优选值;
计算各个云容器的优选值的有益效果为:优先值的数值越小表示其对应的云容器被选择进行资源存储的概率越大,在无需对云容器集群中各个云容器的资源存储容量进行再次的遍历与比较的前提下,快速获取各个云容器在云容器集群中被优先地遍历到的权重值,降低了对云容器集群中各服务器的计算的时间成本,大幅提高了集群运行的可并行性。
进一步地,在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)的计算公式为:
ampl(i)=sin(π*occup(i)*occup(i)p/res(i)*res(i)p),
其中,π表示圆周率,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所示,该实施例的一种基于自动学习的云容器资源调度系统包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种基于自动学习的云容器资源调度方法实施例中的步骤用于控制云容器资源调度,所述处理器执行所述计算机程序运行在以下系统的单元中:
云容器连接单元,用于对多个不同的云容器进行连接,使各云容器的资源调度相互连通;
内存占用分布获取单元,用于在多个不同的日期,记录各个云容器在一天内各小时的内存占用分布作为训练数据集;
内存占用预测分布获取单元,用于使用训练数据集来训练自动学习模型预测各个云容器在下一时刻的内存占用分布作为内存占用预测分布;
优选值计算单元,用于在得到内存占用预测分布后,计算各个云容器的优选值;
云容器资源调度单元,用于根据各个云容器的优选值,对各个云容器的资源进行调度。
所述一种基于自动学习的云容器资源调度系统可以运行于桌上型计算机、笔记本、掌上电脑及云端数据中心等计算设备中。所述一种基于自动学习的云容器资源调度系统包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种基于自动学习的云容器资源调度方法及系统的示例,并不构成对一种基于自动学习的云容器资源调度方法及系统的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种基于自动学习的云容器资源调度系统还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立元器件门电路或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种基于自动学习的云容器资源调度系统的控制中心,利用各种接口和线路连接整个一种基于自动学习的云容器资源调度系统的各个分区域。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种基于自动学习的云容器资源调度方法及系统的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明提供了一种基于自动学习的云容器资源调度方法及系统,对多个不同的云容器进行连接使各云容器的资源调度相互连通,在多个不同的日期记录各个云容器在一天内各小时的内存占用分布作为训练数据集,使用训练数据集来训练自动学习模型预测各个云容器在下一时刻的内存占用分布作为内存占用预测分布,在得到内存占用预测分布后计算各个云容器的优选值,根据各个云容器的优选值对各个云容器的资源进行调度,实现了自动根据云容器数据存储的改变自动调度各个云容器的初始资源存储容量并高效节省了资源调度时间成本的有益效果,大幅度提升了云容器集群的资源使用效率。
尽管本发明的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,从而有效地涵盖本发明的预定范围。此外,上文以发明人可预见的实施例对本发明进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本发明的非实质性改动仍可代表本发明的等效改动。
Claims (2)
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所述一种基于自动学习的云容器资源调度方法中的步骤,所述一种基于自动学习的云容器资源调度系统运行于桌上型计算机、笔记本、掌上电脑及云端数据中心的计算设备中,运行的系统包括处理器、存储器、服务器集群。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210138449.9A CN114595029B (zh) | 2022-02-15 | 2022-02-15 | 一种基于自动学习的云容器资源调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210138449.9A CN114595029B (zh) | 2022-02-15 | 2022-02-15 | 一种基于自动学习的云容器资源调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114595029A CN114595029A (zh) | 2022-06-07 |
CN114595029B true CN114595029B (zh) | 2023-05-09 |
Family
ID=81804610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210138449.9A Active CN114595029B (zh) | 2022-02-15 | 2022-02-15 | 一种基于自动学习的云容器资源调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114595029B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9672064B2 (en) * | 2015-07-13 | 2017-06-06 | Palo Alto Research Center Incorporated | Dynamically adaptive, resource aware system and method for scheduling |
CN105094997B (zh) * | 2015-09-10 | 2018-05-04 | 重庆邮电大学 | 一种云计算主机节点间物理内存共享方法和系统 |
CN109936473B (zh) * | 2017-12-19 | 2022-04-08 | 北京华耀科技有限公司 | 基于深度学习预测的分布计算系统及其运行方法 |
CN108829494B (zh) * | 2018-06-25 | 2020-09-29 | 杭州谐云科技有限公司 | 基于负载预测的容器云平台智能资源优化方法 |
CN113377488A (zh) * | 2020-03-09 | 2021-09-10 | 华为技术有限公司 | 一种资源迁移的方法、系统及设备 |
CN113553138A (zh) * | 2021-07-21 | 2021-10-26 | 彼乐智慧科技(北京)有限公司 | 一种云资源调度的方法及装置 |
-
2022
- 2022-02-15 CN CN202210138449.9A patent/CN114595029B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114595029A (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240152754A1 (en) | Aggregated embeddings for a corpus graph | |
US11907760B2 (en) | Systems and methods of memory allocation for neural networks | |
CN110033079B (zh) | 深度神经网络的硬件实现的端到端数据格式选择 | |
CN110413776B (zh) | 一种基于cpu-gpu协同并行的文本主题模型lda高性能计算方法 | |
CN113313247B (zh) | 基于数据流架构的稀疏神经网络的运算方法 | |
CN115168281B (zh) | 一种基于禁忌搜索算法的神经网络片上映射方法和装置 | |
CN109214671B (zh) | 人员分组方法、装置、电子装置及计算机可读存储介质 | |
CN116070682B (zh) | 神经元计算机操作系统的snn模型动态映射方法及装置 | |
WO2020261032A1 (en) | Feature engineering in neural networks optimization | |
CN115860081A (zh) | 一种芯粒算法调度方法、系统、电子设备及存储介质 | |
CN113591134B (zh) | 一种威胁情报大数据共享方法及系统 | |
CN103064991A (zh) | 一种海量数据聚类方法 | |
JP4511469B2 (ja) | 情報処理方法及び情報処理システム | |
CN114595029B (zh) | 一种基于自动学习的云容器资源调度方法及系统 | |
CN116701001B (zh) | 目标任务分配方法、装置、电子设备及存储介质 | |
CN109583579A (zh) | 计算装置及相关产品 | |
CN115879543A (zh) | 一种模型训练方法、装置、设备、介质及系统 | |
CN114595030B (zh) | 一种基于拍卖算法的云容器资源分配方法及系统 | |
CN112269773A (zh) | 一种大数据任务处理方法及系统 | |
CN113609214B (zh) | 一种基于区块链的数据反哺方法及系统 | |
CN110109861A (zh) | 一种任务执行方法及装置 | |
US11615320B1 (en) | Method, product, and apparatus for variable precision weight management for neural networks | |
CN113535388B (zh) | 面向任务的服务功能聚合方法 | |
JP7280921B2 (ja) | 計算機システム、推論方法、及びプログラム | |
US20240202526A1 (en) | Memory device performing pruning, method of operating the same, and electronic device performing pruning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |