CN114595030B - 一种基于拍卖算法的云容器资源分配方法及*** - Google Patents
一种基于拍卖算法的云容器资源分配方法及*** Download PDFInfo
- Publication number
- CN114595030B CN114595030B CN202210138456.9A CN202210138456A CN114595030B CN 114595030 B CN114595030 B CN 114595030B CN 202210138456 A CN202210138456 A CN 202210138456A CN 114595030 B CN114595030 B CN 114595030B
- Authority
- CN
- China
- Prior art keywords
- cloud
- cloud container
- container
- cluster
- ctree
- 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/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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于拍卖算法的云容器资源分配方法及***,在云容器集群中上传数据集,各个云容器分别对数据集进行存储,对云容器集群中的各个云容器使用拍卖算法,为各个云容器各自分配资源存储容量作为初始资源存储容量,在云容器集群运行一段时间后计算各个云容器的优选值,根据各个云容器的优选值对各个云容器的初始资源存储容量进行再分配,由此实现了提高各云容器资源利用效率并防范应对内存溢出风险问题的有益效果。
Description
技术领域
本发明属于分布式计算领域,具体涉及一种基于拍卖算法的云容器资源分配方法及***。
背景技术
云容器的资源分配具有高度的灵活性,在一个云容器内的数据存储是具有约束条件的,各个云容器之间的数据存储也需要遵循一定的制约的约束条件。因而,导致多个云容器组成云容器集群时存在相当一部分的内存空间没有被充分利用,以至于令云容器集群处于内存溢出的极高风险中。拍卖算法,是计算机科学领域在求解最优分配问题时使用的一种启发式算法,可对各个云容器之间的数据存储进行优化分配,有效提高了各云容器的资源利用率。在申请号为CN201811550003.7的专利文献中公开了一种容器化云资源分配方法,尽管可通过恢复模块利用数据恢复程序对云计算基础设施内的灾难进行数据恢复,但仍不足以防范应对云容器集群中资源溢出的风险问题。
发明内容
本发明的目的在于提出一种基于拍卖算法的云容器资源分配方法及***,以解决现有技术中所存在的一个或多个技术问题,至少提供一种有益的选择或创造条件。
本发明提供了一种基于拍卖算法的云容器资源分配方法及***,在云容器集群中上传数据集,各个云容器分别对数据集进行存储,对云容器集群中的各个云容器使用拍卖算法,为各个云容器各自分配资源存储容量作为初始资源存储容量,在云容器集群运行一段时间后计算各个云容器的优选值,根据各个云容器的优选值对各个云容器的初始资源存储容量进行再分配。
为了实现上述目的,根据本发明的一方面,提供一种基于拍卖算法的云容器资源分配方法,所述方法包括以下步骤:
S100,将多个不同的云容器组成一个云容器集群;
S200,在云容器集群中上传数据集,各个云容器分别对数据集进行存储;
S300,对云容器集群中的各个云容器使用拍卖算法,为各个云容器各自分配资源存储容量作为初始资源存储容量;
S400,在云容器集群运行一段时间后,计算各个云容器的优选值;
S500,根据各个云容器的优选值,对各个云容器的初始资源存储容量进行再分配。
进一步地,在S100中,将多个不同的云容器组成一个云容器集群的方法为:获取多个不同的云容器,所述云容器为云服务器,每个云容器的内存容量各不相同(内存容量的单位为Gigabyte),将各个云容器根据每个云容器的内存容量按照内存容量较小则为左节点的规则使用前序遍历算法构建成一个二叉树,由此将各个云容器作为各个节点连接成为一个整体的树状的数据结构结构作为一个云容器集群。
进一步地,在S200中,在云容器集群中上传数据集,各个云容器分别对数据集进行存储的方法为:向云容器集群中上传数据集,数据集为多个不同的表(所述表即为数据库的表)的集合,数据集中各个表的字节数量(字节数量的单位为Gigabyte)不全部相同,其中每个表不支持将一个表分割在不同的云容器中进行分布式存储;
记云容器集群为Cloud,云容器集群中云容器的数量为n,云容器集群中云容器的序号为i,i∈[1,n],云容器集群中序号为i的云容器为Cloud(i),云容器集群中序号为i的云容器的内存容量为Cloud(i)t,云容器集群的总内存容量为Cloudt,Cloudt的计算公式为:
记数据集为集合Dataset,数据集中表的数量为m,数据集中表的序号为j,j∈[1,m],数据集中序号为j的表为Dataset(j),数据集中序号为j的表的字节数量为load(j),数据集的总字节量为Load,Load的计算公式为:
其中,各个云容器分别对数据集进行存储为:各个云容器中的每一个云容器能且仅能存储正整数个的表,由此云容器集群各个云容器分别对数据集的各个表进行存储。
进一步地,在S300中,对云容器集群中的各个云容器使用拍卖算法,为各个云容器各自分配资源存储容量作为初始资源存储容量的方法为:
使用拍卖算法(参见论文:Bertsekas D P.The auction algorithm:Adistributed relaxation method for the assignment problem[J].Annals ofOperations Research,1988,14(1):105-123.)为各个云容器各自分配资源存储容量,资源存储容量为一个云容器中所能存储的表的总共的字节数量;
其中,拍卖算法的使用具体为:通过拍卖算法,得出对各个云容器分配不同的表的各种不同的排列组合,进而获取各种不同的排列组合中云容器集群所能存储的表的总共的字节数量最大的一种排列组合,根据该种排列组合来对云容器集群中的各个云容器分配该云容器负责存储的表,并记录此时各个云容器的资源存储容量;
云容器Cloud(i)中所能存储的表的集合为tbs(i),云容器Cloud(i)在当前时刻的资源存储容量为src(i),其中,各个云容器的资源存储容量满足第零约束条件,第零约束条件为:
将记录的此时各个云容器的资源存储容量作为初始资源存储容量,云容器Cloud(i)的初始资源存储容量即为src(i)。
其中,在S400中,在云容器集群运行一段时间后,计算各个云容器的优选值的方法为:
在云容器集群运行时,云容器集群有权限对各个云容器中的表的数据进行删除、更改和查询的操作,在进行了删除、更改和查询的操作中各个云容器中的表的字节数量被限制不高于该云容器的初始资源存储容量;其中,云容器集群运行的一段时间为大于等于1小时;
将云容器集群作为一个二叉树记为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中,根据各个云容器的优选值,对各个云容器的初始资源存储容量进行再分配的方法为:
计算各个云容器的剩余内存容量,记云容器Cloud(i)的剩余内存容量为res(i),获取云容器Cloud(i)的初始资源存储容量src(i),并获取云容器Cloud(i)的在云容器集群运行一段时间后于当前时刻的资源存储容量为src(i)t,云容器Cloud(i)的剩余内存容量的计算公式为:
res(i)=Cloud(i)t-src(i)t,
获取云容器Cloud(i)的优先值并记为p(i),根据各个云容器的优选值,计算得到调度操作序列,调度操作序列为一个数组且数组中元素的数量与云容器集群中云容器的数量相同,调度操作序列中的元素为数值,调度操作序列中的元素的序号与云容器集群中云容器的序号对应一致,则调度操作序列中的元素的数量同为n,调度操作序列中的元素的序号同为i,调度操作序列中序号为i的元素与云容器集群中序号为i的云容器相对应,记调度操作序列为Seop,Seop中序号为i的元素为Seop(i),Seop(i)的计算公式为:
其中,函数sin()表示正弦函数,将调度操作序列中各元素的数值的算术平均数记为Seop_avg,由此,得到调度操作序列;
进而,使用调度操作序列,对各个云容器的初始资源存储容量进行再分配:
S501,在云容器集群中,对各个云容器Cloud(i)进行判断是否满足第一约束条件,第一约束条件为Seop(i)≥Seop_avg,若是满足第一约束条件则转到S502;
S502,对满足第一约束条件的云容器Cloud(i)获取其剩余内存容量res(i),并进行判断是否满足第二约束条件,第二约束条件为res(i)+src(i)>Cloud(i)t,若是满足第二约束条件则转到S503;
S503,对满足第二约束条件的云容器Cloud(i),从云容器Cloud(i)中获取其中内存容量大小为res(i)+src(i)-Cloud(i)t的没有进行数据存储的内存容量归还于云容器集群,作为云容器集群在发生内存溢出的情况下的备用的存储空间。
本发明还提供了一种基于拍卖算法的云容器资源分配***,所述一种基于拍卖算法的云容器资源分配***包括:处理器、存储器及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述一种基于拍卖算法的云容器资源分配方法中的步骤以此控制云容器的资源分配,所述一种基于拍卖算法的云容器资源分配***可以运行于桌上型计算机、笔记本、掌上电脑及云端数据中心等计算设备中,可运行的***可包括,但不仅限于,处理器、存储器、服务器集群,所述处理器执行所述计算机程序运行在以下***的单元中:
集群组成单元,用于将多个不同的云容器组成一个云容器集群;
数据集存储单元,用于在云容器集群中上传数据集,各个云容器分别对数据集进行存储;
初始资源存储容量分配单元,用于对云容器集群中的各个云容器使用拍卖算法,为各个云容器各自分配资源存储容量作为初始资源存储容量;
优选值计算单元,用于在云容器集群运行一段时间后,计算各个云容器的优选值;
云容器再分配单元,用于根据各个云容器的优选值,对各个云容器的初始资源存储容量进行再分配。
本发明的有益效果为:在云容器集群中上传数据集,各个云容器分别对数据集进行存储,对云容器集群中的各个云容器使用拍卖算法,为各个云容器各自分配资源存储容量作为初始资源存储容量,在云容器集群运行一段时间后计算各个云容器的优选值,根据各个云容器的优选值对各个云容器的初始资源存储容量进行再分配,由此实现了提高各云容器资源利用效率并防范应对内存溢出风险问题的有益效果。
附图说明
通过对结合附图所示出的实施方式进行详细说明,本发明的上述以及其他特征将更加明显,本发明附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:
图1所示为一种基于拍卖算法的云容器资源分配方法的流程图;
图2所示为一种基于拍卖算法的云容器资源分配***的***结构图。
具体实施方式
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
如图1所示为根据本发明的一种基于拍卖算法的云容器资源分配方法的流程图,下面结合图1来阐述根据本发明的实施方式的一种基于拍卖算法的云容器资源分配方法及***。
本发明提出一种基于拍卖算法的云容器资源分配方法,所述方法具体包括以下步骤:
S100,将多个不同的云容器组成一个云容器集群;
S200,在云容器集群中上传数据集,各个云容器分别对数据集进行存储;
S300,对云容器集群中的各个云容器使用拍卖算法,为各个云容器各自分配资源存储容量作为初始资源存储容量;
S400,在云容器集群运行一段时间后,计算各个云容器的优选值;
S500,根据各个云容器的优选值,对各个云容器的初始资源存储容量进行再分配。
其中,本发明中所涉及的所有的数值计算皆经过去量纲化处理。
进一步地,在S100中,将多个不同的云容器组成一个云容器集群的方法为:获取多个不同的云容器,所述云容器为云服务器,每个云容器的内存容量各不相同(内存容量的单位为Gigabyte),将各个云容器根据每个云容器的内存容量按照内存容量较小则为左节点的规则使用前序遍历算法构建成一个二叉树,以内存容量为云容器集群中各云容器的内存容量的中位数的一个云容器为二叉树的根节点,根节点左边的节点其内存容量需小于等于根节点的内存容量,根节点右边的节点其内存容量需大于等于根节点的内存容量,且该二叉树中每一层的左边节点小于右边节点,由此将各个云容器作为各个节点连接成为一个整体的树状的数据结构结构作为一个云容器集群。
进一步地,在S200中,在云容器集群中上传数据集,各个云容器分别对数据集进行存储的方法为:向云容器集群中上传数据集,数据集为多个不同的表(所述表即为数据库的表)的集合,数据集中各个表的字节数量(字节数量的单位为Gigabyte)不全部相同,其中每个表不支持将一个表分割在不同的云容器中进行分布式存储;
记云容器集群为Cloud,云容器集群中云容器的数量为n,云容器集群中云容器的序号为i,i∈[1,n],云容器集群中序号为i的云容器为Cloud(i),云容器集群中序号为i的云容器的内存容量为Cloud(i)t,云容器集群的总内存容量为Cloudt,Cloudt的计算公式为:
记数据集为集合Dataset,数据集中表的数量为m,数据集中表的序号为j,j∈[1,m],数据集中序号为j的表记作Dataset(j),数据集中序号为j的表的字节数量为load(j),数据集的总字节量为Load,Load的计算公式为:
其中,各个云容器分别对数据集进行存储为:每个云容器存储正整数个表,由此云容器集群各个云容器分别对数据集的各个表进行存储。
进一步地,在S300中,对云容器集群中的各个云容器使用拍卖算法,为各个云容器各自分配资源存储容量作为初始资源存储容量的方法为:
使用拍卖算法(参见论文:Bertsekas D P.The auction algorithm:Adistributed relaxation method for the assignment problem[J].Annals ofOperations Research,1988,14(1):105-123.)为各个云容器各自分配资源存储容量,资源存储容量为一个云容器中所能存储的表的总共的字节数量;
其中,拍卖算法的使用具体为:通过拍卖算法,得出对各个云容器分配不同的表的各种不同的排列组合,进而获取各种不同的排列组合中云容器集群所能存储的表的总共的字节数量最大的一种排列组合,根据该种排列组合来对云容器集群中的各个云容器分配该云容器负责存储的表,并记录此时各个云容器的资源存储容量;
云容器Cloud(i)中所能存储的表的集合为tbs(i),云容器Cloud(i)的在当前时刻的资源存储容量为src(i),其中,各个云容器的资源存储容量满足第零约束条件,第零约束条件为:
将记录的此时各个云容器的资源存储容量作为初始资源存储容量,云容器Cloud(i)的初始资源存储容量即为src(i)。
所述一种基于拍卖算法的云容器资源分配方法,其中,在S400中,在云容器集群运行一段时间后,计算各个云容器的优选值的方法为:
在云容器集群运行时,云容器集群有权限对各个云容器中的表的数据进行删除、更改和查询的操作,在进行了删除、更改和查询的操作中各个云容器中的表的字节数量被限制不高于该云容器的初始资源存储容量;其中,云容器集群运行的一段时间为大于等于1小时;
将云容器集群作为一个二叉树记为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中,根据各个云容器的优选值,对各个云容器的初始资源存储容量进行再分配的方法为:
计算各个云容器的剩余内存容量,记云容器Cloud(i)的剩余内存容量为res(i),获取云容器Cloud(i)的初始资源存储容量src(i),并获取云容器Cloud(i)的在云容器集群运行一段时间后于当前时刻的资源存储容量为src(i)t,云容器Cloud(i)的剩余内存容量的计算公式为:
res(i)=Cloud(i)t-src(i)t,
获取云容器Cloud(i)的优先值并记为p(i),根据各个云容器的优选值,计算得到调度操作序列,调度操作序列为一个数组且数组中元素的数量与云容器集群中云容器的数量相同,调度操作序列中的元素为数值,调度操作序列中的元素的数量同为n,调度操作序列中的元素的序号同为i,调度操作序列中序号为i的元素与云容器集群中序号为i的云容器相对应,记调度操作序列为Seop,Seop中序号为i的元素为Seop(i),Seop(i)的计算公式为:
其中,函数sin()表示正弦函数,将调度操作序列中各元素的数值的算术平均数记为Seop_avg,由此,得到调度操作序列;
进而,使用调度操作序列,对各个云容器的初始资源存储容量进行再分配:
S501,在云容器集群中,对各个云容器Cloud(i)进行判断是否满足第一约束条件,第一约束条件为Seop(i)≥Seop_avg,若是满足第一约束条件则转到S502;
S502,对满足第一约束条件的云容器Cloud(i)获取其剩余内存容量res(i),并进行判断是否满足第二约束条件,第二约束条件为res(i)+src(i)>Cloud(i)t,若是满足第二约束条件则转到S503;
S503,对满足第二约束条件的云容器Cloud(i),从云容器Cloud(i)中获取其中内存容量大小为res(i)+src(i)-Cloud(i)t的没有进行数据存储的内存容量归还于云容器集群,作为云容器集群在发生内存溢出的情况下的备用的存储空间。
所述一种基于拍卖算法的云容器资源分配***包括:处理器、存储器及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种基于拍卖算法的云容器资源分配方法实施例中的步骤以此控制云容器的资源分配,所述一种基于拍卖算法的云容器资源分配***可以运行于桌上型计算机、笔记本、掌上电脑及云端数据中心等计算设备中,可运行的***可包括,但不仅限于,处理器、存储器、服务器集群。
本发明的实施例提供的一种基于拍卖算法的云容器资源分配***,如图2所示,该实施例的一种基于拍卖算法的云容器资源分配***包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种基于拍卖算法的云容器资源分配方法实施例中的步骤用于控制云容器,所述处理器执行所述计算机程序运行在以下***的单元中:
集群组成单元,用于将多个不同的云容器组成一个云容器集群;
数据集存储单元,用于在云容器集群中上传数据集,各个云容器分别对数据集进行存储;
初始资源存储容量分配单元,用于对云容器集群中的各个云容器使用拍卖算法,为各个云容器各自分配资源存储容量作为初始资源存储容量;
优选值计算单元,用于在云容器集群运行一段时间后,计算各个云容器的优选值;
云容器再分配单元,用于根据各个云容器的优选值,对各个云容器的初始资源存储容量进行再分配。
所述一种基于拍卖算法的云容器资源分配***可以运行于桌上型计算机、笔记本、掌上电脑及云端数据中心等计算设备中。所述一种基于拍卖算法的云容器资源分配***包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种基于拍卖算法的云容器资源分配方法及***的示例,并不构成对一种基于拍卖算法的云容器资源分配方法及***的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种基于拍卖算法的云容器资源分配***还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立元器件门电路或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种基于拍卖算法的云容器资源分配***的控制中心,利用各种接口和线路连接整个一种基于拍卖算法的云容器资源分配***的各个分区域。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种基于拍卖算法的云容器资源分配方法及***的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明提供了一种基于拍卖算法的云容器资源分配方法及***,在云容器集群中上传数据集,各个云容器分别对数据集进行存储,对云容器集群中的各个云容器使用拍卖算法,为各个云容器各自分配资源存储容量作为初始资源存储容量,在云容器集群运行一段时间后计算各个云容器的优选值,根据各个云容器的优选值对各个云容器的初始资源存储容量进行再分配,由此实现了提高各云容器资源利用效率并防范应对内存溢出风险问题的有益效果。
尽管本发明的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,从而有效地涵盖本发明的预定范围。此外,上文以发明人可预见的实施例对本发明进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本发明的非实质性改动仍可代表本发明的等效改动。
Claims (4)
1.一种基于拍卖算法的云容器资源分配方法,其特征在于,所述方法包括以下步骤:
S100,将多个不同的云容器组成一个云容器集群;
S200,在云容器集群中上传数据集,各个云容器分别对数据集进行存储;
S300,对云容器集群中的各个云容器使用拍卖算法,为各个云容器各自分配资源存储容量作为初始资源存储容量;
S400,在云容器集群运行一段时间后,计算各个云容器的优选值;
S500,根据各个云容器的优选值,对各个云容器的初始资源存储容量进行再分配;
其中,在S200中,在云容器集群中上传数据集,各个云容器分别对数据集进行存储的方法为:向云容器集群中上传数据集,数据集为多个不同的表的集合,数据集中各个表的字节数量不全部相同,其中每个表不支持将一个表分割在不同的云容器中进行分布式存储;
记云容器集群为Cloud,云容器集群中云容器的数量为n,云容器集群中序号为i的云容器为Cloud(i),云容器集群中序号为i的云容器的内存容量为Cloud(i)t,云容器集群的总内存容量为Cloudt,Cloudt的计算公式为:
记数据集为集合Dataset,数据集中表的数量为m,数据集中序号为j的表为Dataset(j),数据集中序号为j的表的字节数量为load(j),数据集的总字节量为Load,Load的计算公式为:
其中,各个云容器分别对数据集进行存储为:每个云容器存储正整数个表,由此云容器集群各个云容器分别对数据集的各个表进行存储;
在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中,根据各个云容器的优选值,对各个云容器的初始资源存储容量进行再分配的方法为:
计算各个云容器的剩余内存容量,记云容器Cloud(i)的剩余内存容量为res(i),获取云容器Cloud(i)的初始资源存储容量src(i),并获取云容器Cloud(i)的在云容器集群运行一段时间后于当前时刻的资源存储容量为src(i)t,云容器Cloud(i)的剩余内存容量的计算公式为:
获取云容器Cloud(i)的优先值并记为p(i),根据各个云容器的优选值,计算得到调度操作序列,调度操作序列为一个数组且数组中元素的数量与云容器集群中云容器的数量相同,调度操作序列中的元素为数值,调度操作序列中的元素的数量同为n,调度操作序列中的元素的序号同为i,调度操作序列中序号为i的元素与云容器集群中序号为i的云容器相对应,记调度操作序列为Seop,Seop中序号为i的元素为Seop(i),Seop(i)的计算公式为:
其中,函数sin()表示正弦函数,将调度操作序列中各元素的数值的算术平均数记为Seop_avg,由此,得到调度操作序列;
进而,使用调度操作序列,对各个云容器的初始资源存储容量进行再分配:
S501,在云容器集群中,对各个云容器Cloud(i)进行判断是否满足第一约束条件,第一约束条件为Seop(i)≥Seop_avg,若是满足第一约束条件则转到S502;
S502,对满足第一约束条件的云容器Cloud(i)获取其剩余内存容量res(i),并进行判断是否满足第二约束条件,第二约束条件为res(i)+ src(i)>Cloud(i)t,若是满足第二约束条件则转到S503;
S503,对满足第二约束条件的云容器Cloud(i),从云容器Cloud(i)中获取其中内存容量大小为res(i)+ src(i)-Cloud(i)t的没有进行数据存储的内存容量归还于云容器集群,作为云容器集群在发生内存溢出的情况下的备用的存储空间。
2.根据权利要求1所述的一种基于拍卖算法的云容器资源分配方法,其特征在于,在S100中,将多个不同的云容器组成一个云容器集群的方法为:获取多个不同的云容器,所述云容器为云服务器,每个云容器的内存容量各不相同,将各个云容器根据每个云容器的内存容量按照内存容量较小则为左节点的规则使用前序遍历算法构建成一个二叉树,由此将各个云容器作为各个节点连接成为一个整体的树状的数据结构结构作为一个云容器集群。
3.根据权利要求1所述的一种基于拍卖算法的云容器资源分配方法,其特征在于,在S300中,对云容器集群中的各个云容器使用拍卖算法,为各个云容器各自分配资源存储容量作为初始资源存储容量的方法为:
使用拍卖算法为各个云容器各自分配资源存储容量,资源存储容量为一个云容器中所能存储的表的总共的字节数量;
其中,拍卖算法的使用具体为:通过拍卖算法,得出对各个云容器分配不同的表的各种不同的排列组合,进而获取各种不同的排列组合中云容器集群所能存储的表的总共的字节数量最大的一种排列组合,根据该种排列组合来对云容器集群中的各个云容器分配该云容器负责存储的表,并记录此时各个云容器的资源存储容量;
云容器Cloud(i)中所能存储的表的集合为tbs(i),云容器Cloud(i)在当前时刻的资源存储容量为src(i),其中,各个云容器的资源存储容量满足第零约束条件,第零约束条件为:
将记录的此时各个云容器的资源存储容量作为初始资源存储容量,云容器Cloud(i)的初始资源存储容量即为src(i)。
4.一种基于拍卖算法的云容器资源分配***,其特征在于,所述一种基于拍卖算法的云容器资源分配***包括:处理器、存储器及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至3中任一项所述一种基于拍卖算法的云容器资源分配方法中的步骤,所述一种基于拍卖算法的云容器资源分配***运行于桌上型计算机、笔记本、掌上电脑及云端数据中心的计算设备中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210138456.9A CN114595030B (zh) | 2022-02-15 | 2022-02-15 | 一种基于拍卖算法的云容器资源分配方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210138456.9A CN114595030B (zh) | 2022-02-15 | 2022-02-15 | 一种基于拍卖算法的云容器资源分配方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114595030A CN114595030A (zh) | 2022-06-07 |
CN114595030B true CN114595030B (zh) | 2023-05-23 |
Family
ID=81805182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210138456.9A Active CN114595030B (zh) | 2022-02-15 | 2022-02-15 | 一种基于拍卖算法的云容器资源分配方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114595030B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113055469A (zh) * | 2021-03-11 | 2021-06-29 | 网宿科技股份有限公司 | 云容器存储控制方法、***、电子设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102254284A (zh) * | 2011-07-29 | 2011-11-23 | 东北大学 | 一种基于同时向上报价拍卖机制的网格资源调度方法 |
US9417919B2 (en) * | 2012-09-06 | 2016-08-16 | Hewlett Packard Enterprise Development Lp | Computer cluster with objective-based resource sharing |
CN109039954B (zh) * | 2018-07-25 | 2021-03-23 | 广东石油化工学院 | 多租户容器云平台虚拟计算资源自适应调度方法及*** |
-
2022
- 2022-02-15 CN CN202210138456.9A patent/CN114595030B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113055469A (zh) * | 2021-03-11 | 2021-06-29 | 网宿科技股份有限公司 | 云容器存储控制方法、***、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114595030A (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102968503B (zh) | 数据库***的数据处理方法以及数据库*** | |
US10394847B2 (en) | Processing data in a distributed database across a plurality of clusters | |
US10394782B2 (en) | Chord distributed hash table-based map-reduce system and method | |
US7941804B1 (en) | Allocating resources among tiered partitions of different types | |
CN111966649B (zh) | 一种高效去重的轻量级在线文件存储方法及装置 | |
US20070156997A1 (en) | Memory allocation | |
CN109299190B (zh) | 分布式存储***中处理对象的元数据的方法及装置 | |
CN106096023A (zh) | 数据读取方法、数据写入方法及数据服务器 | |
JP5121936B2 (ja) | リソース割り当て装置及びリソース割り当てプログラム及び記録媒体及びリソース割り当て方法 | |
CN107450855B (zh) | 一种用于分布式存储的模型可变的数据分布方法及*** | |
CN106990915A (zh) | 一种基于存储介质类型和加权配额的存储资源管理方法 | |
US10976946B2 (en) | Method and computer system for managing blocks | |
WO2023051235A1 (zh) | 一种威胁情报大数据共享方法及*** | |
CN108255989A (zh) | 图片存储方法、装置、终端设备及计算机存储介质 | |
CN114595030B (zh) | 一种基于拍卖算法的云容器资源分配方法及*** | |
CN111880926B (zh) | 一种负载均衡方法、装置及计算机存储介质 | |
WO2020024207A1 (zh) | 处理业务请求的方法、装置与存储*** | |
CN116910061A (zh) | 一种数据库的分库分表方法、装置、设备及可读存储介质 | |
CN116647560A (zh) | 物联网计算机集群协调优化控制方法、装置、设备及介质 | |
US9189382B2 (en) | Noncontiguous representation of an array | |
Savio | Online bounds on balancing two independent criteria with replication and reallocation | |
CN114595029B (zh) | 一种基于自动学习的云容器资源调度方法及*** | |
CN106537321A (zh) | 存取文件的方法、装置和存储*** | |
CN114338694A (zh) | 一站式云数据中心服务器调度方法及*** | |
US9183435B2 (en) | Feature generalization using topological model |
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 |