首页 / 专利库 / 信号处理 / 时间窗 / 一种面向云负载测试的共享式资源分配方法

一种面向负载测试的共享式资源分配方法

阅读:155发布:2020-05-11

专利汇可以提供一种面向负载测试的共享式资源分配方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种面向 云 负载测试的共享式资源分配方法,构建共享式资源分配模型,该模型包括共享式资源分配方案、资源分配的优化目标和测试约束,所述共享式资源分配方案允许在一个虚拟 节点 上同时执行多个负载测试任务,所述优化目标包括最小资源冗余、最小测试执行成本和最小网络冲突,所述测试约束为考虑节点资源提供能 力 ;采用多目标优化方法求解共享式资源分配模型,得到负载测试任务序列的最优资源分配方案。本发明相较于现有资源分配方式,能够在不影响负载测试独立执行的前提下,提高测试资源的利用率,降低测试执行成本。,下面是一种面向负载测试的共享式资源分配方法专利的具体信息内容。

1.一种面向负载测试的共享式资源分配方法,其特征在于:构建共享式资源分配模型,该模型包括共享式资源分配方案、资源分配的优化目标和测试约束,所述共享式资源分配方案允许在一个虚拟节点上同时执行多个负载测试任务,资源分配的单位由整个虚拟节点细化到单位测试资源,所述优化目标包括最小资源冗余、最小测试执行成本和最小网络冲突,所述测试约束为考虑节点资源提供能;采用多目标优化方法求解共享式资源分配模型,得到负载测试任务序列的最优资源分配方案。
2.根据权利要求1所述面向云负载测试的共享式资源分配方法,其特征在于:所述最小资源冗余为,设负载测试任务序列T在资源分配方案S下实际分配的虚拟节点集VMtasks(T,S)={vm1,vm2,...,vmn},定义资源冗余函数L(T,S):
其中,R(vmi)表示虚拟节点vmi的可用资源向量;R(Ti)表示负载测试任务Ti所需的资源向量;ω1为资源权重向量。
3.根据权利要求1所述面向云负载测试的共享式资源分配方法,其特征在于:所述最小测试执行成本为,设负载测试任务序列T在资源分配方案S下实际分配的虚拟节点集VMtasks(T,S)={vm1,vm2,...,vmn},定义测试执行成本函数Z(T,S):
其中,price(vmi)表示虚拟节点vmi单位时间内的占用成本,price(vmi)=ω2*R(vmi),ω2表示单位资源的成本向量,R(vmi)表示虚拟节点vmi的资源向量;occupyTtime(vmi)表示虚拟节点vmi的占用时间。
4.根据权利要求1所述面向云负载测试的共享式资源分配方法,其特征在于:所述最小网络冲突为,设负载测试任务序列T在资源分配方案S下实际占用的路由节点集Rtasks(T,S)={r1,r2,...,rk},而定义网络冲突函数C(T,S):
其中,conflict(ri)表示路由节点ri上的网络竞争。
5.根据权利要求1所述面向云负载测试的共享式资源分配方法,其特征在于:设负载测试任务序列T中的负载测试任务Tj在资源分配方案S下实际分配的虚拟节点集以节点资源提供能力作为测试约束,要求分配给Tj的虚拟
节点资源总和不小于发起负载测试任务Tj所需的资源底线,即:
其中, 表示虚拟节点VMi中分配给负载测试任务Tj的资源;R(Tj)表示负载测试任务Tj的资源向量。
6.根据权利要求1所述面向云负载测试的共享式资源分配方法,其特征在于:所述多目标优化方法的步骤如下:
(1)基于滑动窗口机制实现负载测试任务的实时资源分配,每一处理周期对指定时间窗口内的负载测试任务序列批量处理,为其分配云测试资源;
(2)为任务序列中每个负载测试任务随机分配一组支持发起该测试的虚拟节点,生成该测试任务序列的初始资源分配方案,以构造初代种群;对初代种群中的负载测试任务序列的资源分配方案进行编码,将一个虚拟节点编码为一个整数,一个负载测试任务的资源分配方案编码为一个长度可变的整数集合,整个负载测试任务序列的资源分配方案编码为一个变长整数集合的组合;
(3)完成种群的进化,其步骤如下:
(301)采用交叉、变异方法形成初步子代种群;
(302)对交叉、变异后的子代种群进行修复与优化;
(303)生成多目标优化的新种群;
(4)重复步骤(3)进化至预设的最大迭代次数,得到负载测试任务序列的最优资源分配方案。
7.根据权利要求6所述面向云负载测试的共享式资源分配方法,其特征在于:在步骤(301)中,对负载测试任务序列配对的父代资源分配方案按测试任务随机交叉互换;选择负载测试中的一个负载测试任务,为其重新分配一组支持发起该负载测试的新虚拟节点集,编码后替换原来的资源分配方案。
8.根据权利要求6所述面向云负载测试的共享式资源分配方法,其特征在于:在步骤(302)中,对于因资源不足而违背测试约束的负载测试任务序列资源分配方案,随机添加资源空闲的虚拟节点进行修复,使其满足测试约束;对于因资源冗余而与测试约束底限差距超过设定值的负载测试任务序列资源分配方案,移除提供最少资源的虚拟节点,优化资源分配目标取值。
9.根据权利要求6所述面向云负载测试的共享式资源分配方法,其特征在于:步骤(303)的具体过程如下:
(a)将父代种群与步骤(302)生成的子代种群合并成混合种群,计算混合种群中每个资源分配方案的目标函数取值;
(b)基于多目标优化中的Pareto支配关系将混合种群中的资源分配方案分层,采用拥挤度量对同一层中的资源分配方案排序,具体方法如下:
首先,确定混合种群中任意两个分配方案Si和Sj的支配关系,对于混合种群中每个分配方案S,计算支配S的分配方案数nS,将混合种群中nS=0的分配方案添加到集合F1中,标记为第一非支配层,并将F1从种群中移除;然后,继续从余下种群中找出nS=0方案添加到集合F2中,标记为第二非支配层,并将F2从种群中移除;重复此过程,直至整个混合种群被分层;
设定资源冗余目标函数为f1,测试执行成本目标函数为f2,网络冲突目标函数为f3,对于每个目标函数fk,k=1,2,3,将同一层中的资源分配方案按其在该目标上的取值升序排列,计算每个分配方案Si在该目标上的拥挤度量 其
中Si+1和Si-1是与Si相邻的两个资源分配方案,得到同一层中每个分配方案Si在各个目标上的拥挤度量之和 按照拥挤度量之和从大到小的顺序将资源分配方案排
序;
(c)将分层并排序后的种群中的非重复分配方案按层数递增的顺序选择进入新的种群,得到优化后的新种群。

说明书全文

一种面向负载测试的共享式资源分配方法

技术领域

[0001] 本发明属于计算机软件开发领域,特别涉及了一种面向云负载测试的共享式资源分配方法。

背景技术

[0002] 随着互联网的普及,现代的许多大型软件系统,如电子商务网站(eBay、亚逊、淘宝)和电信基础服务设施(如Gmail、WhatsApp和Skype)必须支持数百或数千万并发用户请求。研究表明,这些系统的故障往往是由于系统无法及时扩展以满足用户需求,而不是功能缺陷。负载测试是一种软件测试,用于检查软件系统在正常或预设的极端负载条件下的性能表现。为了保证软件系统的服务质量以及业务峰值稳定性,有必要对其进行有效地负载测试。
[0003] 随着云计算技术的发展,云测试应运而生,一些测试人员把负载测试迁移到云上。云测试作为软件测试的一种新模式,使得测试人员不再专注于本地服务器的搭建、程序的安装、测试工具的部署等,测试人员使用带有操作系统、运行时工具、测试管理、存储的虚拟环境构建一个几乎反映真实环境的测试环境。云测试致于最小化测试人员的工作量,节省硬件购买的高昂费用及硬件维护的成本,提高测试的执行效率。
[0004] 为将负载测试迁移到云上,需要解决资源分配、调度等一系列问题。资源分配是指为负载测试分配用以发起负载的客户端虚拟主机等云资源,以保证负载测试的正常执行。资源分配方法关系到任务的执行效率和云测试服务的运营成本。在云测试中,Kang,Pawel Lampe等人基于一种独占虚拟节点的方式实现测试任务的资源分配,要求一个虚拟节点上(测试资源)一次最多只能同时执行一个测试任务。在云负载测试方面,如华为云CPTS、阿里云PTS在脚本驱动的负载测试中也是基于一种独占虚拟节点资源的方式,独占的虚拟节点只能为其所属的负载测试提供测试服务。总而言之,目前支持负载测试的云测试框架或云测试资源分配方法存在的一个问题即资源分配的粒度较粗,即它们以虚拟节点为基本单位进行分配的。在这种粒度下,虚拟节点一旦分配给某个负载测试后,负载测试将独占虚拟节点资源直到测试完成,这往往会导致测试资源的浪费,增加测试成本。
[0005] 共享式资源分配能够提高资源利用率,减少资源的浪费。在云负载测试领域,共享式资源分配是指一个虚拟节点资源可以同时分配给多个负载测试,测试任务不再独占虚拟节点,资源分配的单位从整个虚拟节点细化到单位虚拟资源。目前关于云负载测试的共享式资源分配的研究还未见到,而与之相近的云任务资源分配领域存在一些相关工作,Agrawal,Cano等人分别基于共享处理器资源、云集群资源、虚拟节点资源的方式实现云任务与云资源的匹配,从而提高资源利用率,节省执行成本。但是这些方法并不适用于云负载测试的资源分配,负载测试的资源使用模型更为复杂,测试任务和虚拟节点间存在多对多关系,即一个负载测试可能需要多个虚拟节点共同为其提供测试服务,并且一个虚拟节点上可能同时执行多个子负载测试。

发明内容

[0006] 为了解决上述背景技术提出的技术问题,本发明提供了一种面向云负载测试的共享式资源分配方法。
[0007] 为了实现上述技术目的,本发明的技术方案为:
[0008] 一种面向云负载测试的共享式资源分配方法,构建共享式资源分配模型,该模型包括共享式资源分配方案、资源分配的优化目标和测试约束,所述共享式资源分配方案允许在一个虚拟节点上同时执行多个负载测试任务,资源分配的单位由整个虚拟节点细化到单位测试资源,所述优化目标包括最小资源冗余、最小测试执行成本和最小网络冲突,所述测试约束为考虑节点资源提供能力;采用多目标优化方法求解共享式资源分配模型,得到负载测试任务序列的最优资源分配方案。
[0009] 进一步地,所述最小资源冗余为,设负载测试任务序列T在资源分配方案S 下实际分配的虚拟节点集VMtasks(T,S)={vm1,vm2,...,vmn},定义资源冗余函数 L(T,S):
[0010]
[0011] 其中,R(vmi)表示虚拟节点vmi的可用资源向量;R(Ti)表示负载测试任务Ti所需的资源向量;ω1为资源权重向量。
[0012] 进一步地,所述最小测试执行成本为,设负载测试任务序列T在资源分配方案S下实际分配的虚拟节点集VMtasks(T,S)={vm1,vm2,...,vmn},定义测试执行成本函数Z(T,S):
[0013]
[0014] 其中,price(vmi)表示虚拟节点vmi单位时间内的占用成本, price(vmi)=ω2*R(vmi),ω2表示单位资源的成本向量,R(vmi)表示虚拟节点vmi的资源向量;occupyTtime(vmi)表示虚拟节点vmi的占用时间。
[0015] 进一步地,所述最小网络冲突为,设负载测试任务序列T在资源分配方案S 下实际占用的路由节点集Rtasks(T,S)={r1,r2,...,rk},而定义网络冲突函数C(T,S):
[0016]
[0017] 其中,conflict(ri)表示路由节点ri上的网络竞争。
[0018] 进一步地,设负载测试任务序列T中的负载测试任务Tj在资源分配方案S 下实际分配的虚拟节点集 以节点资源提供能力作为测试约束,要求分配给Tj的虚拟节点资源总和不小于发起负载测试任务Tj所需的资源底线,即:
[0019]
[0020] 其中, 表示虚拟节点VMi中分配给负载测试任务Tj的资源;R(Tj)表示负载测试任务Tj的资源向量。
[0021] 进一步地,所述多目标优化方法的步骤如下:
[0022] (1)基于滑动窗口机制实现负载测试任务的实时资源分配,每一处理周期对指定时间窗口内的负载测试任务序列批量处理,为其分配云测试资源;
[0023] (2)为任务序列中每个负载测试任务随机分配一组支持发起该测试的虚拟节点,生成该测试任务序列的初始资源分配方案,以构造初代种群;对初代种群中的负载测试任务序列的资源分配方案进行编码,将一个虚拟节点编码为一个整数,一个负载测试任务的资源分配方案编码为一个长度可变的整数集合,整个负载测试任务序列的资源分配方案编码为一个变长整数集合的组合;
[0024] (3)完成种群的进化,其步骤如下:
[0025] (301)采用交叉、变异方法形成初步子代种群;
[0026] (302)对交叉、变异后的子代种群进行修复与优化;
[0027] (303)生成多目标优化的新种群;
[0028] (4)重复步骤(3)进化至预设的最大迭代次数,得到负载测试任务序列的最优资源分配方案。
[0029] 进一步地,在步骤(301)中,对负载测试任务序列配对的父代资源分配方案按测试任务随机交叉互换;选择负载测试中的一个负载测试任务,为其重新分配一组支持发起该负载测试的新虚拟节点集,编码后替换原来的资源分配方案。
[0030] 进一步地,在步骤(302)中,对于因资源不足而违背测试约束的负载测试任务序列资源分配方案,随机添加资源空闲的虚拟节点进行修复,使其满足测试约束;对于因资源冗余而与测试约束底限差距超过设定值的负载测试任务序列资源分配方案,移除提供最少资源的虚拟节点,优化资源分配目标取值。
[0031] 进一步地,步骤(303)的具体过程如下:
[0032] (a)将父代种群与步骤(302)生成的子代种群合并成混合种群,计算混合种群中每个资源分配方案的目标函数取值;
[0033] (b)基于多目标优化中的Pareto支配关系将混合种群中的资源分配方案分层,采用拥挤度量对同一层中的资源分配方案排序,具体方法如下:
[0034] 首先,确定混合种群中任意两个分配方案Si和Sj的支配关系,对于混合种群中每个分配方案S,计算支配S的分配方案数nS,将混合种群中nS=0的分配方案添加到集合F1中,标记为第一非支配层,并将F1从种群中移除;然后,继续从余下种群中找出nS=0方案添加到集合F2中,标记为第二非支配层,并将F2从种群中移除;重复此过程,直至整个混合种群被分层;
[0035] 设定资源冗余目标函数为f1,测试执行成本目标函数为f2,网络冲突目标函数为f3,对于每个目标函数fk,k=1,2,3,将同一层中的资源分配方案按其在该目标上的取值升序排列,计算每个分配方案Si在该目标上的拥挤度量其中Si+1和Si-1是与Si相邻的两个资源分配方案,得到同一层中每个分配方案Si在各个目标上的拥挤度量之和 按照拥挤度量之和从大到小的顺序将资源分配方案
排序;
[0036] (c)将分层并排序后的种群中的非重复分配方案按层数递增的顺序选择进入新的种群,得到优化后的新种群。
[0037] 采用上述技术方案带来的有益效果:
[0038] 本发明与现有技术相比,主要优势在于负载测试任务不再独占虚拟节点资源来完成测试负载的发起,允许一个虚拟节点同时执行多个负载测试任务,并能够优化资源使用,保证测试任务的独立执行,有效地提高了云负载测试的资源的利用效率,能够节省测试执行成本,减少了测试资源的浪费,为云测试服务商提供了一种更加经济的资源分配方法。附图说明
[0039] 图1是本发明整体方法流程图
[0040] 图2是独占式资源分配示意图;
[0041] 图3是共享式资源分配示意图;
[0042] 图4是网络拓扑结构意图;
[0043] 图5是本发明中多目标优化资源分配方法的流程图;
[0044] 图6是滑动窗口机制意图;
[0045] 图7是共享式资源分配方案的编码案例示意图。

具体实施方式

[0046] 以下将结合附图,对本发明的技术方案进行详细说明。
[0047] 本发明设计了一种面向云负载测试的共享式资源分配方法,如图1所示,包括以下内容:
[0048] 1、一种共享式资源分配模型,包括共享式资源分配方案、资源分配的一组优化目标和基本约束。
[0049] 2、一种多目标优化的资源分配方法,针对待分配资源的负载测试任务序列,通过编码与初始化、交叉与变异、修复与优化、剔除等步骤,最终生成负载测试任务序列的最优资源分配方案。
[0050] 上述内容为本发明的基本方案,下文将对基本方案进行优选设计。
[0051] 一、共享式资源分配模型
[0052] (1)共享式资源分配方案
[0053] 现有云测试资源分配都是以虚拟节点为分配单位,即采用一种独占式资源分配方案。如图2所示,为负载测试任务Ti分配一组虚拟节点 VM1={v1,v2,v3,v4,v5},则VM1中的虚拟节点的空闲资源是无法分配给负载测试任务Tj使用的,只能为Tj分配另一组虚拟节点VM2={v6,v7,v8,v9,v10},导致测试资源的浪费。本发明提出了一种共享式资源分配方案,其特点是负载测试任务不再独占虚拟节点资源来完成测试负载的发起,允许一个虚拟节点同时执行多个负载测试任务,相较于传统的独占式资源分配方案而言,资源分配的单位由整个虚拟节点细化到单位测试资源。如图3所示,共享式资源分配能够为负载测试任务Ti分配一组虚拟节点VM1={v1,v2,v3,v4,v5},为Tj分配一组虚拟节点 VM2={v2,v4,v5,v6,v7,v8},其中虚拟节点v2,v4,v5同时被Ti和Tj共享,减少了虚拟节点的占用,从而优化云测试资源的使用。
[0054] 负载测试任务序列T=<T1,T2,T3,...,Tm>中测试任务Ti所需的测试资源可通过Ti对应的测试脚本si的资源使用模型(一个负载规模到测试资源向量的映射 fs,fs:load→R)预测得知。本发明称为负载测试任务Ti分配的一组用于发起负载测试的虚拟节点集为该测试任务的一个资源分配方案Si, T中所有测试任务的资源分配方案构成的向量S为T的一个资源分配方案,其中 S可表示为:
[0055]
[0056] (2)资源分配的优化目标
[0057] 在为负载测试任务分配云测试资源的过程中,为了既能提高资源利用率以节省测试执行成本,又能保证测试执行的效率,资源分配方案应尽可能满足多个方面的目标。本发明提出了资源分配的一组优化目标,这些目标之间可能存在冲突,可通过多目标优化实现方法协调。
[0058] 最小资源冗余:设负载测试任务序列T在资源分配方案S下实际分配的虚拟节点集VMtasks(T,S)={vm1,vm2,...,vmn},VMtasks(T,S)中虚拟节点的可用资源总和可能大于T中测试任务实际所需的资源,此时分配的虚拟节点资源会出现冗余。为了提高虚拟节点的资源利用率,减少资源的浪费,对于当前分配的负载测试任务序列T,本发明提出了最小资源冗余的优化目标,定义资源冗余函数L(T,S)为虚拟节点可用资源总和与负载测试所需的资源底线的差值:
[0059]
[0060] 其中,R(vmi)表示虚拟节点vmi的可用资源向量;R(Ti)表示负载测试任务Ti所需的资源向量;ω1为资源权重向量。资源分配的一个目标是使L(T,S)取值最小。
[0061] 最小测试执行成本:本发明以虚拟节点为计费单位,考虑测试执行期间虚拟节点的占用成本。设负载测试任务序列T在资源分配方案S下实际分配的虚拟节点集VMtasks(T,S)={vm1,vm2,...,vmn}。为了节省测试的成本开销,对于当前分配的负载测试任务序列T,本发明提出了最小测试执行成本的优化目标,定义测试执行成本函数Z(T,S)为VMtasks(T,S)中虚拟节点单位时间的占用成本与其占用时间乘积的总和:
[0062]
[0063] 其中,price(vmi)表示虚拟节点vmi单位时间内的占用成本,与vmi的资源能力成正比,price(vmi)=ω2*R(vmi),ω2表示单位资源的成本向量,R(vmi)表示虚拟节点vmi的资源向量;occupyTtime(vmi)表示虚拟节点vmi的占用时间,取决于负载测试任务序列T中分配到vmi上的测试任务的测试周期的最大值。
[0064] 最小网络冲突:负载测试执行过程中,如果过多的测试任务通过相同的网络链路发起,则容易加剧测试任务之间的网络竞争,影响参与其中的测试任务的执行。网络竞争可通过每个路由节点上经过的测试任务来表达,如果存在一个路由器上同时承载大量测试任务,则表明该路由节点对应的网络上网络带宽竞争激烈,可能影响测试。
[0065] 设conflict(ri)表示路由节点ri上的网络竞争指数,通过经过ri的负载测试任务的个数大致估计。如图4所示,假设为负载测试T1、T2分别分配虚拟节点 vm1,vm3,vm4和vm2,vm4,vm5,待测Web服务所在的虚拟节点均为vms,则有 conflict(r1)=2、conflict(r2)=2、conflict(r3)=2。
[0066] 设负载测试任务序列T在资源分配方案S下实际占用的路由节点集 Rtasks(T,S)={r1,r2,...,rk}。为了尽可能使负载测试任务间的网络竞争最小,保证该测试集的流畅性,对于当前分配的负载测试任务序列T,本发明提出最小网络冲突的目标,认为单个路由节点上最大网络冲突是限制测试流畅开展的重要因素,因而定义网络冲突函数C(T,S)为参与测试执行的路由节点上的最大网络竞争:
[0067]
[0068] 其中,conflict(ri)表示路由节点ri上的网络竞争,考虑本次分配的负载测试任务间的冲突以及之前分配的还在执行的负载测试任务。
[0069] (3)资源分配的约束
[0070] 设负载测试任务序列T中的负载测试任务Tj在资源分配方案S下实际分配的虚拟节点集 为保证测试集群能够对待测Web 服务产生预设的并发压力以及共享式负载测试的独立执行,本发明以节点资源保障能力作为测试约束,要求分配给Tj的虚拟节点资源总和不小于发起负载测试任务Tj所需的资源底线,即:
[0071]
[0072] 其中, 表示虚拟节点VMi中分配给负载测试任务Tj的资源;R(Tj)表示负载测试任务Tj的资源向量。
[0073] 二、多目标优化方法
[0074] 该多目标优化方法基于滑动窗口获取待分配资源的负载测试任务序列T。首先,生成T的初始化资源分配方案以构造初代种群,并采用变长整数集组合编码资源分配方案。然后,对编码后的分配方案进行交叉、变异形成初步子代种群;对初步子代种群进行修复并优化;接着将父子种群合并,对合并后的种群分层并排序,结合非重复分配方案的剔除操作生成优化的新种群,从而完成一次进化。重复上述过程直至进化至预设最大代数,得到T的最优资源分配方案。实现方法的工作流程如图5所示。
[0075] (1)负载测试任务序列的获取
[0076] 本发明基于滑动窗口机制实现负载测试任务的实时资源分配,滑动窗口机制示意图如图6所示。负载测试任务Ti按到达云测试中心的时间坐落在时间轴的ti位置上,对于时间轴上相邻的负载测试任务Tk、Tk+1,到达云测试中心tk≤tk+1。滑动窗口沿着时间轴向右移动Δt时间段,云测试中心每次在一个滑动窗口内对测试任务进行批量处理,为窗口内的测试任务序列T=<t1:T1,t2:T2,...,tm:Tm>分配云测试资源。
[0077] (2)资源分配方案的初始化与编码
[0078] 本发明为负载测试任务序列中的每个测试任务随机分配一组支持发起该测试的虚拟节点,生成该测试任务序列的一个初始资源分配方案,重复生成N个不同的初始资源分配方案以构造初代种群。
[0079] 为了对初代种群中的负载测试任务序列的资源分配方案进行编码,本发明提出了一种变长整数集组合编码,其中一个虚拟节点编码为一个整数,一个负载测试任务的资源分配方案编码为一个变长的整数集合,整个负载测试任务序列的资源分配方案编码为一个变长整数集合的组合。如图7所示,假设有3个负载测试任务A,B,C,其中为A分配虚拟节点集{vm1,vm2,vm4},为B分配虚拟节点集{vm3,vm4,vm5},为C分配虚拟节点集{vm5,vm6,vm7},S表示A,B,C构成的测试任务序列的资源分配方案编码,即:
[0080]
[0081] (3)种群的进化
[0082] ①交叉、变异形成初步子代种群
[0083] 本发明以上一轮种群作为父代,采用交叉、变异方法生成初步子代种群。其中,交叉方法用于引入新的资源分配方案,以保证本发明的共享式资源分配实现方法的全局搜索能力,引导其向更优资源分配方案搜索。变异方法用于引入新的虚拟节点,以保证种群中资源分配方案的多样性,防止种群早熟收敛。交叉、变异方法的具体操作如下:
[0084] 给定如下所示的两个配好对的待交叉资源分配方案father1和father2,交叉方法为:随机选择一行作为交叉点,如father1中{vm3,vm4,vm5},father2中的 {vm7,vm8,vm13},将father1和father2在选中行之后的各行相互交换位置进行交叉以构造两个子代分配方案child1和child2。
[0085]
[0086] 给定如下所示的资源分配方案S,变异方法为:随机选择分配方案中任意一行(如:{vm3,vm4,vm5}),即一个负载测试任务T的资源分配方案,随机为T 重新分配一组支持发起该负载测试的新虚拟节点集{vm6,vm8,vm10},将其编码,然后替换前述选中行。
[0087]
[0088] ②修复与优化初步子代种群
[0089] 本发明对交叉、变异方法生成的初步子代种群进行修复与优化,以保证资源分配方案的可行性与优越性。
[0090] 由于交叉、变异的随机性,初步子代种群中可能包含众多违背测试约束的不可行资源分配方案(为测试任务分配的虚拟节点资源总和小于测试所需的资源底线),本发明通过修复方法使其满足测试约束。给定如下所示的资源分配方案S,其中为测试任务T3分配的虚拟节点{vm5,vm6}的资源总和小于T3所需的资源 (RT3(vm5)+RT3(vm6)<R(T3)),修复方法为:为T3随机分配若干个资源空闲的虚拟节点(如:vm7),将其编码并添加到T3对应的虚拟节点集中进行修复。
[0091]
[0092] 对于初步子代种群的部分可行资源分配方案,由于其与测试约束底限差距较大,即提供测试服务的虚拟节点的资源总和远大于测试需要的资源底线,其资源冗余、测试执行成本等目标的取值较差,这样的方案显然不符合需求,本发明通过优化方法使其目标得到优化。给定如下所示的资源分配方案S,其中为测试任务T1分配的虚拟节点集{vm1,vm2,vm4}的资源总和远大于T1所需的资源 (RT1(vm1)+RT1(vm2)+RT1(vm4)>R(T1)+RT1(vm2)),优化方法为:在不违背测试约束的前提下,移除虚拟节点集中的为T1提供最少资源的虚拟节点(例如:vm2) 进行优化。
[0093]
[0094] ③生成多目标优化的新种群
[0095] 为了保证负载测试任务序列的优良资源分配方案被保留下来,参与到下一代进化当中去,使得资源分配方案的多目标朝着更优的方向进化,本发明按照如下步骤来构造优化的新种群。
[0096] 步骤1:将父代种群与步骤①~②生成的子代种群合并成混合种群,计算混合种群中每个资源分配方案的目标(资源冗余、测试执行成本以及网络冲突)函数取值。
[0097] 步骤2:基于多目标优化中的Pareto支配关系(资源分配方案A至少在一个目标上比B优,且在其余目标上不比B差,则A Pareto支配B)将混合种群中的资源分配方案分层,非支配层数越低,资源分配方案的优越性越高;采用拥挤度量对同一层中的资源分配方案排序,拥挤度量越大,种群中分配方案分布越均匀,越有利于种群的多样性。分层与排序的具体操作如下:
[0098] 分层:首先,确定混合种群中任意两个分配方案Si和Sj的支配关系。对于混合种群中每个分配方案S,计算支配S的分配方案数nS,将混合种群中nS=0 的分配方案(Pareto最优解)添加到集合F1中,标记为第一非支配层,并将F1从种群中移除;然后,继续从余下种群中找出nS=0方案添加到集合F2中,标记为第二非支配层,并将F2从种群中移除;最后,重复此过程,直至整个混合种群被分层。
[0099] 排序:设定资源冗余目标函数为f1,测试执行成本目标函数为f2,网络冲突目标函数为f3。对于每个目标函数fk(k=1,2,3),将同一层中的资源分配方案按其在该目标上的取值升序排列,计算每个分配方案Si在该目标上的拥挤度量得到同一层中每个分配方案Si在各个目标上的拥挤度量之和 按照拥挤
度量之和从大到小的顺序将资源分配方案排序。
[0100] 步骤3:将分层并排序的种群中的非重复分配方案按非支配层数递增的顺序依次选择进入新的种群,直到新种群的规模为N,从而保证了优良资源分配方案的优先选择权,最终得到优化后的新种群。
[0101] ④重复步骤③进化至预设的最大迭代次数,得到负载测试任务序列的最优资源分配方案。
[0102] 在实验过程中,分别基于如表1所示的不同规模的实时云测试环境开展实验,实验结果表明,本发明所提出的共享式资源分配方法的执行时间不超过1min,保证了负载测试的低延迟;相较于独占式资源分配方法,有效减少虚拟节点的占用,资源冗余、测试执行成本等目标均得到了一定程度的优化(约36%)。本发明提出的方法相较于传统的资源分配方法,优化了云测试资源的使用,为云测试服务商提供了一种资源分配的新方法。
[0103] 表1
[0104] 实时测试环境 物理节点数 虚拟节点数 窗口大小 路由节点数 待测集群数 S1 100 596 20 186 46S2 200 1170 40 370 88
S3 300 1902 60 542 156
S4 400 2496 80 764 200
S5 500 3032 100 915 240
S6 600 3696 120 1226 296
[0105] 实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈