CN117056089B - 一种服务动态分配系统及方法 - Google Patents

一种服务动态分配系统及方法 Download PDF

Info

Publication number
CN117056089B
CN117056089B CN202311313586.2A CN202311313586A CN117056089B CN 117056089 B CN117056089 B CN 117056089B CN 202311313586 A CN202311313586 A CN 202311313586A CN 117056089 B CN117056089 B CN 117056089B
Authority
CN
China
Prior art keywords
vertex
task
tasks
server
representing
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
Application number
CN202311313586.2A
Other languages
English (en)
Other versions
CN117056089A (zh
Inventor
汪骥
秦慈江
余超
吴锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chuang Rui Technology Co ltd
Original Assignee
Chuang Rui Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chuang Rui Technology Co ltd filed Critical Chuang Rui Technology Co ltd
Priority to CN202311313586.2A priority Critical patent/CN117056089B/zh
Publication of CN117056089A publication Critical patent/CN117056089A/zh
Application granted granted Critical
Publication of CN117056089B publication Critical patent/CN117056089B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/042Knowledge-based neural networks; Logical representations of neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明涉及服务器管理技术领域,公开了一种服务动态分配系统及方法,其中一种服务动态分配方法包括:通过迭代次数设置为S次的蚁群算法对当前的待分配任务进行分配获得任务分配方案,根据任务分配方案能够将M个待分配任务分配给N个服务器;基于任务分配方案构建图结构数据,图结构数据包括顶点以及顶点的初始特征;将当前的待分配任务的任务分配方案的图结构数据输入训练完成的图神经网络模型,通过输出的第一邻接矩阵获得顶点之间的连接关系,并根据顶点建立映射关系的服务器和任务来进行任务的分配;本发明考虑待分配任务的多线程支持能力、服务器空闲线程和服务器的线程处理能力来优化服务器任务分配策略,能够合理利用服务器的线程资源。

Description

一种服务动态分配系统及方法
技术领域
本发明涉及服务器管理技术领域,更具体地说,它涉及一种服务动态分配系统及方法。
背景技术
公开号为CN109711526B,名称为基于SVM和蚁群算法的服务器集群调度方法的中国专利,公开了一种服务器集群调度方法,通过SVM算法对服务器集群进行负载状态分类,得到负载正常和过载两种负载状态的集群节点,通过SVM分类器得到负载正常的集群节点,并通过获取负载正常的节点服务器的CPU、内存、硬盘的特征值计算节点服务器的处理能力值,再通过分配给该节点服务器的任务队列的长度值除以该节点服务器的处理能力值获得该节点的处理时间,进一步可以将服务器集群调度问题定义为M个任务分配给N个节点服务器,通过节点的处理时间来构建处理时间矩阵,结合蚁群算法每迭代一次计算出任务的平均处理时间,直至满足迭代终止条件获得最优解作为最终的任务分配方案。
但是上述方案中并没有考虑到服务器内部存在多线程运行的策略,而且任务支持多线程的数量不同,上述方案并未考虑服务器内部的多线程运行的状态,实际选取策略无法实现服务器资源利用的最大化。
发明内容
本发明提供一种服务动态分配系统及方法,解决相关技术中传统的基于蚁群算法的服务器集群调度方法无法实现服务器资源利用的最大化的技术问题。
本发明提供了一种服务动态分配系统,包括:
第一模块,其用于通过迭代次数设置为S次的蚁群算法对当前的待分配任务进行分配获得任务分配方案,根据任务分配方案能够将M个待分配任务分配给N个服务器;
第二模块,基于第一模块的任务分配方案构建图结构数据,图结构数据包括顶点以及顶点的初始特征;
图结构数据的顶点包括:第一顶点和第二顶点,第一顶点与一个服务器建立映射关系,第二顶点与一个任务建立映射关系;
图结构数据的顶点之间的边包括:一个第二顶点与一个第一顶点之间存在边则表示该第二顶点对应的任务被分配到该第一顶点对应的服务器;
第三模块,其用于对图神经网络模型进行训练,对训练样本通过蚁群算法获得训练的任务分配方案,蚁群算法的迭代次数设置为H次,H>S;
训练样本包括G个待分配任务和J个服务器,根据训练的任务分配方案能够将G个待分配任务分配给J个服务器;
通过训练的任务分配方案构建训练的图结构数据,将训练的图结构数据输入图神经网络模型,输出第一邻接矩阵;
通过训练的图结构数据生成第二邻接矩阵,第二邻接矩阵表示训练的图结构数据的顶点的连接关系;基于第二邻接矩阵与第一邻接矩阵的差构建图神经网络模型训练时的损失函数;
第四模块,其用于将当前的待分配任务的任务分配方案的图结构数据输入训练完成的图神经网络模型,通过输出的第一邻接矩阵获得顶点之间的连接关系,并根据顶点建立映射关系的服务器和任务来进行任务的分配;
蚁群算法的优化目标是待分配任务的处理时间总和,待分配任务分配给服务器的处理时间根据待分配任务所需数据量、服务器的单位线程单位时间能够处理的数据量、服务器的实际处理线程数量来计算。
进一步地,S、M、N、H、J、G均为大于1的正整数。
进一步地,根据顶点建立映射关系的服务器和任务来进行任务的分配的方法包括:提取第二顶点建立映射关系的待分配任务,将其分配到与该第二顶点连接的第一顶点建立映射关系的服务器。
进一步地,蚁群算法迭代产生的最优解作为任务分配方案的方法包括以下步骤:
步骤S201,基于待分配任务在服务器的处理时间构建处理时间矩阵;表示处理时间矩阵中第x行第y列的元素,该元素的值表示第x个待分配任务分配给第y个服务器的处理时间;
步骤S202,初始化参数;蚁群规模m,一类节点规模为M,与待分配任务一一映射,二类节点规模为N,与服务器一一映射,设定信息素重要程度因子、启发函数重要程度因子、信息素释放总量Q、迭代次数初始值为1、信息素蒸发系数/>,初始化信息素浓度矩阵UE,每只蚂蚁的可转移节点集合的初始元素个数为N;
步骤S203,计算状态转移概率;将m个蚂蚁随机分布在各个一类节点,根据初始化参数计算每只蚂蚁的状态转移概率,蚂蚁只能够在一类节点与二类节点之间转移,蚂蚁从二类节点转移到一类节点时不记录路径,计算节点之间的状态转移概率,通过轮盘赌算法选择下一个转移的节点,并将下一个转移的节点从可转移节点集合中移除;
步骤S204,获得当前最优解;当m个蚂蚁的可转移节点集合中的一类节点个数都为0时表示完成一次迭代,并计算待分配任务的处理时间总和最小的蚂蚁的路径作为当前最优解;
第k个蚂蚁的待分配任务的处理时间总和的计算公式如下:/>,其中表示第i个待分配任务分配给第j个服务器的处理时间,/>表示待分配任务总数;
步骤S205,更新信息素浓度矩阵,信息素浓度矩阵是M行N列的矩阵;
更新信息素浓度矩阵的计算公式如下:
;
;
如果蚂蚁k的路径中包括从第i个节点移动到第j个节点,则;否则
其中表示第t+1个迭代次数的信息素浓度矩阵的第i行第j列的元素值,/>表示第t个迭代次数的信息素浓度矩阵的第i行第j列的元素值,/>表示m个蚂蚁在第i个节点连接到第j个节点释放的信息素浓度总和,/>表示第k个蚂蚁在第i个节点连接到第j个节点释放的信息素浓度,/>表示信息素蒸发系数,Q为信息素释放总量,/>是第k个蚂蚁的待分配任务的处理时间总和;
步骤S206,判断是否满足迭代终止条件,如果满足迭代终止条件则输出当前最优解作为最终的任务分配方案,否则返回步骤S202继续执行;迭代终止条件是达到最大迭代次数。
进一步地,当前最优解生成最终的任务分配方案的方法包括:按照当前最优解的蚂蚁的路径建立一类节点与二类节点之间的索引,通过索引将一类节点映射的待分配任务分配到二类节点映射的服务器。
进一步地,第i个待分配任务分配给第j个服务器的处理时间的计算公式如下:
,其中/>表示第i个待分配任务所需数据量,/>表示第j个服务器的单位线程单位时间能够处理的数据量,/>表示第j个服务器的实际处理线程数量。
进一步地,如果待分配任务所需最大支持处理线程数量大于待分配任务所分配的服务器的空闲线程数量,则将待分配任务所需最大支持处理线程数量作为实际处理线程数量,否则将待分配任务所分配的服务器的空闲线程数量作为实际处理线程数量。
进一步地,图神经网络模型的计算公式包括:
图神经网络模型的第u个顶点的更新特征的计算公式如下:
其中表示第u个顶点的更新特征,/>表示第u个顶点的邻域顶点的集合,第u个顶点的邻域顶点是图结构数据中与第u个顶点连接的顶点,/>表示第u个的顶点与/>的第v个领域顶点之间的归一化注意力分数,/>表示/>的第v个领域顶点的初始特征,/>表示第二权重参数,/>表示sigmoid激活函数;
归一化注意力分数的计算公式如下:
其中表示第u个顶点与第v个领域顶点之间的归一化注意力分数,/>表示第u个顶点与/>的第v个领域顶点之间的注意力分数,/>表示第u个顶点与/>的第s个领域顶点的注意力分数,/>表示取自然指数函数的幂运算,/>表示第u个顶点的领域顶点集合,softmax表示softmax激活函数;
注意力分数的计算公式如下:
其中/>表示第u个顶点与第v个领域顶点之间的注意力分数,/>表示第u个顶点的初始特征,/>表示第一权重参数,/>表示第二权重参数,/>表示转置操作,/>表示矩阵的拼接操作,LeakyReLU表示LeakyReLU激活函数;
连接性系数的计算公式如下:
其中表示第u个顶点与第p个顶点的连接性系数,如果/>,则生成的第一邻接矩阵的第u行第p列的元素值为1,如果/>,则生成的第一邻接矩阵的第u行第p列的元素值为0,/>表示sigmoid激活函数,/>表示第p个顶点的更新特征,/>表示转置操作。
进一步地,图结构数据的第一顶点的初始特征表示为:,其中、/>、/>、/>分别表示第一顶点对应的服务器的空闲线程数、空闲内存容量、空闲磁盘容量、空闲网络带宽;
图结构数据的第二顶点的初始特征表示为:,其中/>、/>、/>分别表示第二顶点对应的待分配任务的任务代码量、任务所需数据量和任务最大支持线程数量。
本发明还提供了一种服务动态分配方法,包括以下步骤:
步骤S401,通过迭代次数设置为S次的蚁群算法对当前的待分配任务进行分配获得任务分配方案,根据任务分配方案能够将M个待分配任务分配给N个服务器;
步骤S402,基于任务分配方案构建图结构数据,图结构数据包括顶点以及顶点的初始特征;
图结构数据的顶点包括:第一顶点和第二顶点,第一顶点与一个服务器建立映射关系,第二顶点与一个任务建立映射关系;
图结构数据的顶点之间的边包括:一个第二顶点与一个第一顶点之间存在边则表示该第二顶点对应的任务被分配到该第一顶点对应的服务器;
步骤S403,对图神经网络模型进行训练,对训练样本通过蚁群算法获得训练的任务分配方案,蚁群算法的迭代次数设置为H次,H>S;
训练样本包括G个待分配任务和J个服务器,根据训练的任务分配方案能够将G个待分配任务分配给J个服务器;
通过训练的任务分配方案构建训练的图结构数据,将训练的图结构数据输入图神经网络模型,输出第一邻接矩阵;
通过训练的图结构数据生成第二邻接矩阵,第二邻接矩阵表示训练的图结构数据的顶点的连接关系;基于第二邻接矩阵与第一邻接矩阵的差构建图神经网络模型训练时的损失函数;
步骤S404,将当前的待分配任务的任务分配方案的图结构数据输入训练完成的图神经网络模型,通过输出的第一邻接矩阵获得顶点之间的连接关系,并根据顶点建立映射关系的服务器和任务来进行任务的分配。
本发明的有益效果在于:本发明考虑待分配任务的多线程支持能力、服务器空闲线程和服务器的线程处理能力来优化服务器任务分配策略,能够合理利用服务器的线程资源;
另外本发明采用蚁群算法结合神经网络,能够降低蚁群算法的迭代次数,降低算法分配任务的时间,能够获取更短的任务分配周期,更快的响应任务请求,符合服务动态分配的需求。
附图说明
图1是本发明的一种服务动态分配系统的模块图;
图2是本发明的蚁群算法迭代搜索最优解作为任务分配方案的方法的流程图;
图3是本发明的获取待分配任务在服务器的处理时间的流程图;
图4是本发明的一种服务动态分配方法的流程图;
图5是本发明对一组任务分配的结果图;
图6是本发明对10组任务分配的结果图。
具体实施方式
现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,可以在不脱离本说明书内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。另外,相对一些示例所描述的特征在其他例子中也可以进行组合。
如图1所示,一种服务动态分配系统,包括:
第一模块101,其用于通过迭代次数设置为S次的蚁群算法对当前的待分配任务进行分配获得任务分配方案,根据任务分配方案能够将M个待分配任务分配给N个服务器;
第二模块102,基于第一模块101的任务分配方案构建图结构数据,图结构数据包括顶点以及顶点的初始特征;
图结构数据的顶点包括:第一顶点和第二顶点,第一顶点与一个服务器建立映射关系,第二顶点与一个任务建立映射关系;
图结构数据的顶点之间的边包括:一个第二顶点与一个第一顶点之间存在边则表示该第二顶点对应的任务被分配到该第一顶点对应的服务器;
第三模块103,其用于对图神经网络模型进行训练,对训练样本通过蚁群算法获得训练的任务分配方案,蚁群算法的迭代次数设置为H次,H>S;
训练样本包括G个待分配任务和J个服务器,根据训练的任务分配方案能够将G个待分配任务分配给J个服务器;
通过训练的任务分配方案构建训练的图结构数据,将训练的图结构数据输入图神经网络模型,输出第一邻接矩阵;
通过训练的图结构数据生成第二邻接矩阵,第二邻接矩阵表示训练的图结构数据的顶点的连接关系;基于第二邻接矩阵与第一邻接矩阵的差构建图神经网络模型训练时的损失函数;
第四模块104,其用于将当前的待分配任务的任务分配方案的图结构数据输入训练完成的图神经网络模型,通过输出的第一邻接矩阵获得顶点之间的连接关系,并根据顶点建立映射关系的服务器和任务来进行任务的分配。
在本公开的上述实施例中,S、M、N、H、J、G均为大于1的正整数。
在本公开的一个实施例中,N的数量为100,M的数量为80,S设置为20,H设置为100。S和H的值可以根据待分配任务的数量和服务器的数量来增加,但是H应当远大于S。
在本公开的一个实施例中,根据顶点建立映射关系的服务器和任务来进行任务的分配的方法包括:提取第二顶点建立映射关系的待分配任务,将其分配到与该第二顶点连接的第一顶点建立映射关系的服务器。
在本公开的一个实施例中,如图2所示,蚁群算法迭代搜索最优解作为任务分配方案的方法包括以下步骤:
步骤S201,基于待分配任务在服务器的处理时间构建处理时间矩阵;表示处理时间矩阵中第x行第y列的元素,该元素的值表示第x个待分配任务分配给第y个服务器的处理时间;
步骤S202,初始化参数;蚁群规模m,一类节点规模为M,与待分配任务一一映射,二类节点规模为N,与服务器一一映射,信息素重要程度因子,启发函数重要程度因子/>,信息素释放总量Q,迭代次数初始值为1,信息素浓度矩阵UE,信息素浓度矩阵的元素值的初始值为常数,取值范围为/>,信息素蒸发系数/>,取值范围为/>,每只蚂蚁的可转移节点集合的初始元素个数为N;
信息素重要程度因子,启发函数重要程度因子/>,信息素释放总量Q均是可以人为设置的常数,缺省值分别是1、3、100,信息素蒸发系数/>的缺省值为0.5,信息素浓度矩阵的元素值的初始值的缺省值为1。
步骤S203,计算状态转移概率;将m个蚂蚁随机分布在各个一类节点,根据初始化参数计算每只蚂蚁的状态转移概率,蚂蚁只能够在一类节点与二类节点之间转移,蚂蚁从二类节点转移到一类节点时不记录路径,计算节点之间的状态转移概率,通过轮盘赌算法选择下一个转移的节点,并将下一个转移的节点从可转移节点集合中移除;
状态转移概率的计算公式如下:
;
其中表示第t个迭代次数第k个蚂蚁从第i个节点转移到第j个节点的概率值,第i个节点和第j个节点不是同一类节点,/>表示第t个迭代次数的信息素浓度矩阵的第i行第j列的元素值,/>表示第t个迭代次数的信息素浓度矩阵的第i行第s列的元素值,/>表示蚂蚁在第t个迭代次数从第i个节点转移到第j个节点的期望程度,表示蚂蚁在第t个迭代次数从第i个节点转移到第s个节点的期望程度,,/>,/>表示处理时间矩阵的第i行第j列的元素值,/>表示处理时间矩阵的第i行第s列的元素值,/>表示第k个蚂蚁可转移节点集合;
步骤S204,获得当前最优解;当m个蚂蚁的可转移节点集合中的一类节点个数都为0时表示完成一次迭代,并计算待分配任务的处理时间总和最小的蚂蚁的路径作为当前最优解;
第k个蚂蚁的待分配任务的处理时间总和的计算公式如下:/>,其中表示第i个待分配任务分配给第j个服务器的处理时间,/>表示待分配任务总数;
步骤S205,更新信息素浓度矩阵,信息素浓度矩阵是M行N列的矩阵;
更新信息素浓度矩阵的计算公式如下:
;/>;
如果蚂蚁k的路径中包括从第i个节点移动到第j个节点,则;否则;
其中表示第t+1个迭代次数的信息素浓度矩阵的第i行第j列的元素值,/>表示第t个迭代次数的信息素浓度矩阵的第i行第j列的元素值,/>表示m个蚂蚁在第i个节点连接到第j个节点释放的信息素浓度总和,/>表示第k个蚂蚁在第i个节点连接到第j个节点释放的信息素浓度,/>表示信息素蒸发系数,Q为信息素释放总量,/>是第k个蚂蚁的待分配任务的处理时间总和;
步骤S206,判断是否满足迭代终止条件,如果满足迭代终止条件则输出当前最优解作为最终的任务分配方案,否则返回步骤S202继续执行;迭代终止条件是达到最大迭代次数;
在本公开的一个实施例中,当前最优解生成最终的任务分配方案的方法包括:按照当前最优解的蚂蚁的路径建立一类节点与二类节点之间的索引,通过索引将一类节点映射的待分配任务分配到二类节点映射的服务器。
在本公开的一个实施例中,蚁群算法迭代搜索最优解作为任务分配方案的方法中迭代终止的条件还包括:,/>表示第t次迭代的处理时间的总和值,/>表示第t-e次迭代的处理时间的总和值,/>表示设定的第一阈值,达到任一迭代终止条件则终止迭代。
在本公开的一个实施例中,如图3所示,获取待分配任务在服务器的处理时间包括以下步骤:
步骤S301,获取每个待分配任务处理所需的数据量和最大支持处理线程数量,获取服务器的空闲线程数量和单位线程单位时间能够处理的数据量;
待分配任务所需的最大支持处理线程数量表示一个待分配任务在一个服务器上执行时的最大线程数量;
步骤S302,确定实际处理线程数量;如果待分配任务所需最大支持处理线程数量大于待分配任务所分配的服务器的空闲线程数量,则将待分配任务所需最大支持处理线程数量作为实际处理线程数量,否则将待分配任务所分配的服务器的空闲线程数量作为实际处理线程数量;
步骤S303,获取第i个待分配任务分配给第j个服务器的处理时间的计算公式如下:
,其中/>表示第i个待分配任务所需数据量,/>表示第j个服务器的单位线程单位时间能够处理的数据量,/>表示第j个服务器的实际处理线程数量。
在本公开的一个实施例中,将历史执行过的任务所需的数据量、最大支持处理线程数量、任务类型、任务代码存储在数据库中,并为其分配唯一ID,对于待分配任务进行反编译获取任务类型、任务代码,然后先通过检索数据库中相同的任务类型的任务,再根据任务代码进行相似度计算获得相似度值,选择与待分配任务相似度值最高的检索数据库中的任务的所需的数据量和最大支持处理线程数量作为该待分配任务的所需的数据量和最大支持处理线程数量;
进一步地,可以为数据库中的任务类型建立索引,加快检索速度。
在本公开的一个实施例中,计算数据库中的任务中与待分配任务中的任务代码的相似度可以是采用一般的语义相似度计算方法;
在本公开的一个实施例中,通过现有的系统监视工具获取服务器的空闲线程数量。例如现有的系统监视工具可以是htop、Glances、Grafana等。
在本公开的一个实施例中,通过模拟实际负载和并发数对服务器进行压力测试,记录不同负载下的响应时间和吞吐量,并结合线程数进行分析,获得服务器的单位线程单位时间能够处理的数据量。
例如对服务器进行压力测试,记录单位线程的吞吐量为1000个请求/秒,平均响应时间为0.01秒,那么通过单位线程的吞吐量除以平均响应时间获得服务器的单位线程单位时间能够处理的数据量为100000。
前述的蚁群算法中考虑到服务器的多线程运行和待分配任务支持的线程数来计算待分配任务的处理时间,相对于传统的服务器任务分配的蚁群算法的计算量的大量增加,为了降低任务分配周期,在通过少量迭代次数的蚁群算法生成任务分配策略之后再通过图神经网络进行进一步优化,能够获得大量迭代次数的蚁群算法的效果,并且缩短的任务分配周期。
在本公开的一个实施例中,图结构数据的第一顶点的初始特征表示为:,/>、/>、/>、/>分别表示第一顶点对应的服务器的空闲线程数、空闲内存容量、空闲磁盘容量、空闲网络带宽;
图结构数据的第二顶点的初始特征表示为:,其中/>、/>、/>分别表示第二顶点对应的待分配任务的任务代码量、任务所需数据量和任务最大支持线程数量。
在本公开的一个实施例中,图结构数据的第二顶点的初始特征通过待分配任务的代码进行编码获得。编码的方式可以是一般的语义编码获得向量的方式。
在本公开的一个实施例中,图神经网络模型的计算公式包括:
图神经网络模型的第u个顶点的更新特征的计算公式如下:
;
其中表示第u个顶点的更新特征,/>表示第u个顶点的邻域顶点的集合,第u个顶点的邻域顶点是图结构数据中与第u个顶点连接的顶点,/>表示第u个的顶点与/>的第v个领域顶点之间的归一化注意力分数,/>表示/>的第v个领域顶点的初始特征,/>表示第二权重参数,/>表示sigmoid激活函数;
归一化注意力分数的计算公式如下:
;
其中表示第u个顶点与第v个领域顶点之间的归一化注意力分数,/>表示第u个顶点与/>的第v个领域顶点之间的注意力分数,/>表示第u个顶点与/>的第s个领域顶点的注意力分数,/>表示取自然指数函数的幂运算,/>表示第u个顶点的领域顶点集合,softmax表示softmax激活函数;
注意力分数的计算公式如下:
;
其中表示第u个顶点与第v个领域顶点之间的注意力分数,/>表示第u个顶点的初始特征,/>表示第一权重参数,/>表示第二权重参数,/>表示转置操作,/>表示矩阵的拼接操作,LeakyReLU表示LeakyReLU激活函数;
连接性系数的计算公式如下:;
其中表示第u个顶点与第p个顶点的连接性系数,如果/>,则生成的第一邻接矩阵的第u行第p列的元素值为1,如果/>,则生成的第一邻接矩阵的第u行第p列的元素值为0,/>表示sigmoid激活函数,/>表示第p个顶点的更新特征,/>表示转置操作。
如图4所示,在本发明的至少一个实施例中提供一种服务动态分配方法,包括以下步骤:
步骤S401,通过迭代次数设置为S次的蚁群算法对当前的待分配任务进行分配获得任务分配方案,根据任务分配方案能够将M个待分配任务分配给N个服务器;
步骤S402,基于任务分配方案构建图结构数据,图结构数据包括顶点以及顶点的初始特征;
图结构数据的顶点包括:第一顶点和第二顶点,第一顶点与一个服务器建立映射关系,第二顶点与一个任务建立映射关系;
图结构数据的顶点之间的边包括:一个第二顶点与一个第一顶点之间存在边则表示该第二顶点对应的任务被分配到该第一顶点对应的服务器;
步骤S403,对图神经网络模型进行训练,对训练样本通过蚁群算法获得训练的任务分配方案,蚁群算法的迭代次数设置为H次,H>S;
训练样本包括G个待分配任务和J个服务器,根据训练的任务分配方案能够将G个待分配任务分配给J个服务器;
通过训练的任务分配方案构建训练的图结构数据,将训练的图结构数据输入图神经网络模型,输出第一邻接矩阵;
通过训练的图结构数据生成第二邻接矩阵,第二邻接矩阵表示训练的图结构数据的顶点的连接关系;基于第二邻接矩阵与第一邻接矩阵的差构建图神经网络模型训练时的损失函数;
步骤S404,将当前的待分配任务的任务分配方案的图结构数据输入训练完成的图神经网络模型,通过输出的第一邻接矩阵获得顶点之间的连接关系,并根据顶点建立映射关系的服务器和任务来进行任务的分配。
对于一组200个待分配任务分配给300个服务器的任务分配过程,分别通过本发明的蚁群算法、本发明的服务动态分配方法和本发明的图神经网络来完成任务分配,分配后的待分配任务的处理时间总和如图4所示,单一的采用蚁群算法在接近80次迭代时收敛(也即获得全局最优解),而采用本发明的服务动态分配方法获得的最终的分配结果的待分配任务的处理时间总和与单一的采用蚁群算法收敛时的待分配任务的处理时间总和接近;
采用图神经网络进行任务分配时不会随着迭代次数而改变分配的结果。
需要说明的是,单一的采用本发明的图神经网络来完成任务分配时需要随机生成一个任务分配方案,然后基于该任务分配方案构建图结构数据。
对于10组200个待分配任务分配给300个服务器的任务分配过程,分别通过本发明的蚁群算法和本发明的服务动态分配方法来完成任务分配,结果如图5所示,本发明的服务动态分配方法的执行时间显著的低于单一的采用蚁群算法获得全局最优解的执行时间,能够更快的响应。
前述的蚁群算法进行任务分配过程时的蚂蚁的数量为80,其余参数为缺省值。
上面对本实施例的实施例进行了描述,但是本实施例并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本实施例的启示下,还可做出很多形式,均属于本实施例的保护之内。

Claims (9)

1.一种服务动态分配系统,其特征在于,包括:
第一模块,其用于通过迭代次数设置为S次的蚁群算法对当前的待分配任务进行分配获得任务分配方案,根据任务分配方案能够将M个待分配任务分配给N个服务器;
第二模块,基于第一模块的任务分配方案构建图结构数据,图结构数据包括顶点以及顶点的初始特征;
图结构数据的顶点包括:第一顶点和第二顶点,第一顶点与一个服务器建立映射关系,第二顶点与一个任务建立映射关系;
图结构数据的顶点之间的边包括:一个第二顶点与一个第一顶点之间存在边则表示该第二顶点对应的任务被分配到该第一顶点对应的服务器;
图结构数据的第一顶点的初始特征表示为:,其中/>、/>、/>、/>分别表示第一顶点对应的服务器的空闲线程数、空闲内存容量、空闲磁盘容量、空闲网络带宽;
图结构数据的第二顶点的初始特征表示为:,其中/>、/>、/>分别表示第二顶点对应的待分配任务的任务代码量、任务所需数据量和任务最大支持线程数量;
第三模块,其用于对图神经网络模型进行训练,对训练样本通过蚁群算法获得训练的任务分配方案,蚁群算法的迭代次数设置为H次,H>S;
训练样本包括G个待分配任务和J个服务器,根据训练的任务分配方案能够将G个待分配任务分配给J个服务器;
通过训练的任务分配方案构建训练的图结构数据,将训练的图结构数据输入图神经网络模型,输出第一邻接矩阵;
通过训练的图结构数据生成第二邻接矩阵,第二邻接矩阵表示训练的图结构数据的顶点的连接关系;基于第二邻接矩阵与第一邻接矩阵的差构建图神经网络模型训练时的损失函数;
第四模块,其用于将当前的待分配任务的任务分配方案的图结构数据输入训练完成的图神经网络模型,通过输出的第一邻接矩阵获得顶点之间的连接关系,并根据顶点建立映射关系的服务器和任务来进行任务的分配;
蚁群算法的优化目标是待分配任务的处理时间总和,待分配任务分配给服务器的处理时间根据待分配任务所需数据量、服务器的单位线程单位时间能够处理的数据量、服务器的实际处理线程数量来计算。
2.根据权利要求1所述的一种服务动态分配系统,其特征在于,S、M、N、H、J、G均为大于1的正整数。
3.根据权利要求1所述的一种服务动态分配系统,其特征在于,根据顶点建立映射关系的服务器和任务来进行任务的分配的方法包括:提取第二顶点建立映射关系的待分配任务,将其分配到与该第二顶点连接的第一顶点建立映射关系的服务器。
4.根据权利要求1所述的一种服务动态分配系统,其特征在于,蚁群算法迭代产生的最优解作为任务分配方案的方法包括以下步骤:
步骤S201,基于待分配任务在服务器的处理时间构建处理时间矩阵;表示处理时间矩阵中第x行第y列的元素,该元素的值表示第x个待分配任务分配给第y个服务器的处理时间;
步骤S202,初始化参数;蚁群规模m,一类节点规模为M,与待分配任务一一映射,二类节点规模为N,与服务器一一映射,设定信息素重要程度因子、启发函数重要程度因子/>、信息素释放总量Q、迭代次数初始值为1、信息素蒸发系数/>,初始化信息素浓度矩阵UE,每只蚂蚁的可转移节点集合的初始元素个数为N;
步骤S203,计算状态转移概率;将m个蚂蚁随机分布在各个一类节点,根据初始化参数计算每只蚂蚁的状态转移概率,蚂蚁只能够在一类节点与二类节点之间转移,蚂蚁从二类节点转移到一类节点时不记录路径,计算节点之间的状态转移概率,通过轮盘赌算法选择下一个转移的节点,并将下一个转移的节点从可转移节点集合中移除;
步骤S204,获得当前最优解;当m个蚂蚁的可转移节点集合中的一类节点个数都为0时表示完成一次迭代,并计算待分配任务的处理时间总和最小的蚂蚁的路径作为当前最优解;
第k个蚂蚁的待分配任务的处理时间总和的计算公式如下:/>,其中/>表示第i个待分配任务分配给第j个服务器的处理时间,/>表示待分配任务总数;
步骤S205,更新信息素浓度矩阵,信息素浓度矩阵是M行N列的矩阵;
更新信息素浓度矩阵的计算公式如下:
如果蚂蚁k的路径中包括从第i个节点移动到第j个节点,则;否则
其中表示第t+1个迭代次数的信息素浓度矩阵的第i行第j列的元素值,表示第t个迭代次数的信息素浓度矩阵的第i行第j列的元素值,/>表示m个蚂蚁在第i个节点连接到第j个节点释放的信息素浓度总和,/>表示第k个蚂蚁在第i个节点连接到第j个节点释放的信息素浓度,/>表示信息素蒸发系数,Q为信息素释放总量,/>是第k个蚂蚁的待分配任务的处理时间总和;
步骤S206,判断是否满足迭代终止条件,如果满足迭代终止条件则输出当前最优解作为最终的任务分配方案,否则返回步骤S202继续执行;迭代终止条件是达到最大迭代次数。
5.根据权利要求4所述的一种服务动态分配系统,其特征在于,当前最优解生成最终的任务分配方案的方法包括:按照当前最优解的蚂蚁的路径建立一类节点与二类节点之间的索引,通过索引将一类节点映射的待分配任务分配到二类节点映射的服务器。
6.根据权利要求4所述的一种服务动态分配系统,其特征在于,第i个待分配任务分配给第j个服务器的处理时间的计算公式如下:
,其中/>表示第i个待分配任务所需数据量,/>表示第j个服务器的单位线程单位时间能够处理的数据量,/>表示第j个服务器的实际处理线程数量。
7.根据权利要求6所述的一种服务动态分配系统,其特征在于,如果待分配任务所需最大支持处理线程数量大于待分配任务所分配的服务器的空闲线程数量,则将待分配任务所需最大支持处理线程数量作为实际处理线程数量,否则将待分配任务所分配的服务器的空闲线程数量作为实际处理线程数量。
8.根据权利要求1所述的一种服务动态分配系统,其特征在于,图神经网络模型的计算公式包括:
图神经网络模型的第u个顶点的更新特征的计算公式如下:
其中表示第u个顶点的更新特征,/>表示第u个顶点的邻域顶点的集合,第u个顶点的邻域顶点是图结构数据中与第u个顶点连接的顶点,/>表示第u个的顶点与/>的第v个领域顶点之间的归一化注意力分数,/>表示/>的第v个领域顶点的初始特征,/>表示第二权重参数,/>表示sigmoid激活函数;
归一化注意力分数的计算公式如下:
其中表示第u个顶点与第v个领域顶点之间的归一化注意力分数,/>表示第u个顶点与/>的第v个领域顶点之间的注意力分数,/>表示第u个顶点与/>的第s个领域顶点的注意力分数,/>表示取自然指数函数的幂运算,/>表示第u个顶点的领域顶点集合,softmax表示softmax激活函数;
注意力分数的计算公式如下:
其中表示第u个顶点与第v个领域顶点之间的注意力分数,/>表示第u个顶点的初始特征,/>表示第一权重参数,/>表示第二权重参数,/>表示转置操作,/>表示矩阵的拼接操作,LeakyReLU表示LeakyReLU激活函数;
连接性系数的计算公式如下:
其中表示第u个顶点与第p个顶点的连接性系数,如果/>,则生成的第一邻接矩阵的第u行第p列的元素值为1,如果/>,则生成的第一邻接矩阵的第u行第p列的元素值为0,/>表示sigmoid激活函数,/>表示第p个顶点的更新特征,/>表示转置操作。
9.一种服务动态分配方法,其特征在于,包括以下步骤:
步骤S401,通过迭代次数设置为S次的蚁群算法对当前的待分配任务进行分配获得任务分配方案,根据任务分配方案能够将M个待分配任务分配给N个服务器;
步骤S402,基于任务分配方案构建图结构数据,图结构数据包括顶点以及顶点的初始特征;
图结构数据的顶点包括:第一顶点和第二顶点,第一顶点与一个服务器建立映射关系,第二顶点与一个任务建立映射关系;
图结构数据的顶点之间的边包括:一个第二顶点与一个第一顶点之间存在边则表示该第二顶点对应的任务被分配到该第一顶点对应的服务器;
图结构数据的第一顶点的初始特征表示为:,其中/>、/>、/>、/>分别表示第一顶点对应的服务器的空闲线程数、空闲内存容量、空闲磁盘容量、空闲网络带宽;
图结构数据的第二顶点的初始特征表示为:,其中/>、/>、/>分别表示第二顶点对应的待分配任务的任务代码量、任务所需数据量和任务最大支持线程数量;
步骤S403,对图神经网络模型进行训练,对训练样本通过蚁群算法获得训练的任务分配方案,蚁群算法的迭代次数设置为H次,H>S;
训练样本包括G个待分配任务和J个服务器,根据训练的任务分配方案能够将G个待分配任务分配给J个服务器;
通过训练的任务分配方案构建训练的图结构数据,将训练的图结构数据输入图神经网络模型,输出第一邻接矩阵;
通过训练的图结构数据生成第二邻接矩阵,第二邻接矩阵表示训练的图结构数据的顶点的连接关系;基于第二邻接矩阵与第一邻接矩阵的差构建图神经网络模型训练时的损失函数;
步骤S404,将当前的待分配任务的任务分配方案的图结构数据输入训练完成的图神经网络模型,通过输出的第一邻接矩阵获得顶点之间的连接关系,并根据顶点建立映射关系的服务器和任务来进行任务的分配。
CN202311313586.2A 2023-10-11 2023-10-11 一种服务动态分配系统及方法 Active CN117056089B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311313586.2A CN117056089B (zh) 2023-10-11 2023-10-11 一种服务动态分配系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311313586.2A CN117056089B (zh) 2023-10-11 2023-10-11 一种服务动态分配系统及方法

Publications (2)

Publication Number Publication Date
CN117056089A CN117056089A (zh) 2023-11-14
CN117056089B true CN117056089B (zh) 2024-02-06

Family

ID=88653942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311313586.2A Active CN117056089B (zh) 2023-10-11 2023-10-11 一种服务动态分配系统及方法

Country Status (1)

Country Link
CN (1) CN117056089B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1470987A (zh) * 2002-06-10 2004-01-28 ���չ�˾ 在分布式计算机系统中生成服务需求到服务器容量的自动映射
CN109711526A (zh) * 2018-12-20 2019-05-03 广东工业大学 基于svm和蚁群算法的服务器集群调度方法
CN112328380A (zh) * 2020-11-10 2021-02-05 武汉理工大学 一种基于异构计算的任务调度方法及装置
CN114077475A (zh) * 2020-08-11 2022-02-22 中移(苏州)软件技术有限公司 任务调度方法、装置、电子设备及存储介质
CN114707881A (zh) * 2022-04-18 2022-07-05 贵州大学 一种基于深度强化学习的作业车间自适应调度方法
CN115480876A (zh) * 2022-09-15 2022-12-16 史志 基于蚁群算法优化的云计算任务调度方法及系统
CN115617510A (zh) * 2022-09-28 2023-01-17 湖北公众信息产业有限责任公司 一种基于信息素遗传蚁群算法的服务器动态均衡方法及系统
CN116107692A (zh) * 2022-12-16 2023-05-12 长沙理工大学 动态融合遗传算法的边缘容器多目标蚁群优化调度方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7165103B2 (en) * 2002-06-26 2007-01-16 Microsoft Corporation Method and system for matching network clients and servers under matching constraints
US7788199B2 (en) * 2005-01-30 2010-08-31 Elbit Systems Ltd. Method and apparatus for distributing assignments
CN108776612A (zh) * 2018-04-11 2018-11-09 深圳大学 一种云计算任务分配方法、装置、设备及存储介质
US10706376B2 (en) * 2018-07-09 2020-07-07 GoSpace AI Limited Computationally-efficient resource allocation
US11159391B2 (en) * 2019-01-08 2021-10-26 Hewlett Packard Enterprise Development Lp Instantiation of a telco blockchain in a NFV environment

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1470987A (zh) * 2002-06-10 2004-01-28 ���չ�˾ 在分布式计算机系统中生成服务需求到服务器容量的自动映射
CN109711526A (zh) * 2018-12-20 2019-05-03 广东工业大学 基于svm和蚁群算法的服务器集群调度方法
CN114077475A (zh) * 2020-08-11 2022-02-22 中移(苏州)软件技术有限公司 任务调度方法、装置、电子设备及存储介质
CN112328380A (zh) * 2020-11-10 2021-02-05 武汉理工大学 一种基于异构计算的任务调度方法及装置
CN114707881A (zh) * 2022-04-18 2022-07-05 贵州大学 一种基于深度强化学习的作业车间自适应调度方法
CN115480876A (zh) * 2022-09-15 2022-12-16 史志 基于蚁群算法优化的云计算任务调度方法及系统
CN115617510A (zh) * 2022-09-28 2023-01-17 湖北公众信息产业有限责任公司 一种基于信息素遗传蚁群算法的服务器动态均衡方法及系统
CN116107692A (zh) * 2022-12-16 2023-05-12 长沙理工大学 动态融合遗传算法的边缘容器多目标蚁群优化调度方法

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
A slave ants based ant colony optimization algorithm for task scheduling in cloud computing environments;YoungJu Moon等;Human-centric Computing and Information Sciences;全文 *
一种面向多核处理器并行系统的启发式任务分配算法;刘轶;张昕;李鹤;钱德沛;;计算机研究与发展(06);全文 *
基于多核SoC的负载平衡任务调度算法优化策略;张一哲;;软件导刊(05);全文 *
基于时间负载均衡蚁群算法的云任务调度优化;侯守明;张玉珍;;测控技术(07);全文 *
基于混合蚁群算法的MAS任务分配;严建峰;李伟华;刘明;;计算机应用研究(01);全文 *
基于遗传蚁群算法的CMP线程调度方法;刘清华;吴悦;杨洪斌;;计算机工程与设计(06);全文 *
异构环境下基于强化学习的大数据任务调度算法研究;陈天祥;中国优秀硕学位论文全文数据库 信息科技辑;第I138-264页 *
面向空天资源的智能任务规划方法研究;王原;中国博士学位论文全文数据库 (工程科技Ⅱ辑);第C031-2页 *

Also Published As

Publication number Publication date
CN117056089A (zh) 2023-11-14

Similar Documents

Publication Publication Date Title
Lei et al. GCN-GAN: A non-linear temporal link prediction model for weighted dynamic networks
US20220351019A1 (en) Adaptive Search Method and Apparatus for Neural Network
US20200218985A1 (en) System and method for synthetic-model-based benchmarking of ai hardware
Junaid et al. Modeling an optimized approach for load balancing in cloud
CN115358487A (zh) 面向电力数据共享的联邦学习聚合优化系统及方法
CN110598848A (zh) 一种基于通道剪枝的迁移学习加速方法
CN110321217A (zh) 一种多目标的云资源调度方法、装置、设备及存储介质
Li et al. Research on QoS service composition based on coevolutionary genetic algorithm
Jindal et al. An efficient fuzzy rule-based big data analytics scheme for providing healthcare-as-a-service
CN116663938A (zh) 基于企业数据中台系统的信息化管理方法及其相关装置
Prakash et al. A hybrid immune genetic algorithm for scheduling in computational grid
CN114936708A (zh) 基于边云协同任务卸载的故障诊断优化方法及电子设备
CN117056089B (zh) 一种服务动态分配系统及方法
Peng et al. Adaptive runtime exploiting sparsity in tensor of deep learning neural network on heterogeneous systems
CN114650321A (zh) 用于边缘计算的任务调度方法及边缘计算终端
CN116938323A (zh) 一种基于强化学习的卫星转发器资源分配方法
CN113722112B (zh) 一种服务资源负载均衡处理方法及系统
CN115361453A (zh) 一种面向边缘服务网络的负载公平卸载与迁移方法
WO2022186808A1 (en) Method for solving virtual network embedding problem in 5g and beyond networks with deep information maximization using multiple physical network structure
CN111522632A (zh) 基于核聚类特征选择的Hadoop配置参数选择方法
CN115242796B (zh) 一种面向云-边-端场景的任务调度方法
CN112036502B (zh) 图像数据比对方法、装置及系统
CN116302481B (zh) 基于稀疏知识图谱链接预测的资源分配方法及系统
CN114500551B (zh) 边缘计算传输负载均衡方法、装置、设备及存储介质
US20230130502A1 (en) Entity clustering

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