一种资源分配方法、装置、设备及介质与流程

未命名 09-21 阅读:71 评论:0


1.本发明涉及云计算技术领域,特别涉及一种资源分配方法、装置、设备及介质。


背景技术:

2.随着信息技术发展的加速,云计算成为已成为一种重要技术。一云多芯即一套云平台管理不同架构的芯片集群,实现资源的统一调度和维护管理,目前,在一云多芯的场景下,面临虚拟机资源分配不合理,业务访问量剧增时,系统无法正常响应,导致业务卡顿的问题。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种资源分配方法、装置、设备及介质,能够合理分配虚拟机资源,从而保障业务稳定运行。其具体方案如下:第一方面,本发明公开了一种资源分配方法,包括:对同一云平台下的多个计算平台进行算力测试,得到每个计算平台的算力测试结果;所述多个计算平台采用不同的处理器架构;获取预设时间内的业务请求,识别每个所述业务请求的业务类型并确定所述预设时间内不同业务类型的业务请求数量;从所述多个计算平台中确定出目标计算平台,并基于所述业务请求数量、所述算力测试结果为所述目标计算平台所对应的虚拟机分配资源。
4.可选的,所述基于所述业务请求数量、所述算力测试结果为所述目标计算平台所对应的虚拟机分配资源,包括:基于所述业务请求数量、所述算力测试结果计算每个计算平台对应的综合结果;基于所述综合结果为所述目标计算平台所对应的虚拟机分配资源。
5.可选的,所述算力测试结果包括速率测试结果以及速度测试结果;所述基于所述业务请求数量、所述算力测试结果计算每个计算平台对应的综合结果,包括:基于所述业务请求数量计算所述速率测试结果对应的第一系数以及速度测试结果对应的第二系数;基于所述第一系数、所述速率测试结果、所述第二系数以及所述速度测试结果计算每个计算平台对应的综合结果。
6.可选的,所述基于所述业务请求数量计算所述速率测试结果对应的第一系数以及速度测试结果对应的第二系数,包括:利用公式b0=b0/(b0+b1)计算第一系数,以及利用公式b1=b1/(b0+b1)计算第二系数;其中,b0表示计算密集型业务对应的业务请求数量,b1表示输入输出密集型业务对应的业务请求数量,b0为第一系数,b1为第二系数。
7.可选的,所述速率测试结果和所述速度测试结果均包括整型测试结果和浮点型测
试结果;所述基于所述第一系数、所述速率测试结果、所述第二系数以及所述速度测试结果计算每个计算平台对应的综合结果,包括:确定整型测试结果对应的第三系数以及浮点型测试结果对应的第四系数;基于所述第一系数、所述速率测试结果、所述第二系数、所述速度测试结果、所述第三系数以及所述第四系数计算每个计算平台对应的综合结果。
8.可选的,所述基于所述第一系数、所述速率测试结果、所述第二系数、所述速度测试结果、所述第三系数以及所述第四系数计算每个计算平台对应的综合结果,包括:利用预设公式计算每个计算平台对应的综合结果;所述预设公式为:spec
base
=[rate
int
*a0+rate
fp
*a1]*b0+[speed
int
*a0+speed
fp
*a1]*b1;其中,spec
base
表示综合结果,b0为第一系数,b1为第二系数,a0为第三系数,a1为第四系数,rate
int
为速率测试结果中的整型测试结果,rate
fp
为速率测试结果中的浮点型测试结果,speed
int
为速率测试结果中的整型测试结果,speed
fp
为速率测试结果中的浮点型测试结果。
[0009]
可选的,所述对同一云平台下的多个计算平台进行算力测试,得到每个计算平台的算力测试结果,包括:对同一云平台下的多个计算平台进行速率测试以及速度测试,得到每个计算平台的速率测试结果以及速度测试结果。
[0010]
可选的,所述基于所述综合结果为所述目标计算平台所对应的虚拟机分配资源,包括:确定非目标计算平台对应的处理器核心数;其中,所述非目标计算平台为所述多个计算平台中性能最优的计算平台;基于非目标计算平台的综合结果与目标计算平台的综合结果以及所述处理器核心数,确定目标计算平台对应的待分配处理器核心数;基于所述待分配处理器核心数给目标计算平台所对应的虚拟机分配资源。
[0011]
可选的,所述基于非目标计算平台的综合结果与目标计算平台的综合结果以及所述处理器核心数,确定目标计算平台对应的待分配处理器核心数,包括:计算非目标计算平台的综合结果与目标计算平台的综合结果之间的比值;基于所述比值以及所述处理器核心数,确定目标计算平台对应的待分配处理器核心数。
[0012]
可选的,所述确定非目标计算平台对应的处理器核心数,包括:查找预设参考标准库,得到非目标计算平台对应的处理器核心数。
[0013]
可选的,所述从所述多个计算平台中确定出目标计算平台,包括:基于所述业务请求数量、所述算力测试结果,从所述多个计算平台中确定出目标计算平台。
[0014]
可选的,所述基于所述业务请求数量、所述算力测试结果,从所述多个计算平台中确定出目标计算平台,包括:基于所述业务请求数量、所述算力测试结果计算每个计算平台对应的综合结果;对所述综合结果进行排序,将最大综合结果所述对应的计算平台以外的计算平台确定为目标计算平台。
[0015]
可选的,所述从所述多个计算平台中确定出目标计算平台,包括:获取所述多个计算平台对应的标识信息;将所述标识信息与预设标识比对,当所述标识信息与所述预设标识不一致,则将该标识信息对应的计算平台确定为目标计算平台;其中,所述预设标识为所述多个计算平台中指定计算平台对应的标识。
[0016]
可选的,所述识别每个所述业务请求的业务类型,包括:提取每个所述业务请求中的关键字,并基于所述关键字确定每个所述业务请求的业务类型。
[0017]
可选的,在基于所述关键字确定每个所述业务请求的业务类型之后,还包括:将该业务类型对应的计数器进行值加1操作;相应的,所述确定所述预设时间内不同业务类型的业务请求数量,包括:当达到所述预设时间,则将不同业务类型对应的计数器的数值确定为不同业务类型的业务请求数量。
[0018]
可选的,所述提取每个所述业务请求中的关键字,并基于所述关键字确定每个所述业务请求的业务类型之前,还包括:针对不同的业务类型创建不同的计数器,并初始化每个计数器。
[0019]
可选的,所述对同一云平台下的多个计算平台进行算力测试,得到每个计算平台的算力测试结果,包括:在所述同一云平台下的多个计算平台中部署算力测试工具,利用所述算力测试工具对多个计算平台进行算力测试,得到每个计算平台的算力测试结果。
[0020]
可选的,还包括:确定所述多个计算平台中每个计算平台的请求分配比例;基于所述请求分配比例将业务请求分配至所述多个计算平台对应的虚拟机。
[0021]
可选的,所述确定所述多个计算平台中每个计算平台的请求分配比例,包括:获取每个计算平台对应的综合结果;其中,所述综合结果为基于所述业务请求数量、所述算力测试结果确定的表征平台算力的结果;基于所述综合结果确定所述多个计算平台中每个计算平台的请求分配比例。
[0022]
第二方面,本发明公开了一种资源分配装置,包括:算力测试模块,用于对同一云平台下的多个计算平台进行算力测试,得到每个计算平台的算力测试结果;所述多个计算平台采用不同的处理器架构;请求分类模块,用于获取预设时间内的业务请求,识别每个所述业务请求的业务类型并确定所述预设时间内不同业务类型的业务请求数量;平台确定模块,用于从所述多个计算平台中确定出目标计算平台;资源分配模块,用于基于所述业务请求数量、所述算力测试结果为所述目标计算平台所对应的虚拟机分配资源。
[0023]
可选的,资源分配模块,具体包括:综合结果计算子模块,用于基于所述业务请求数量、所述算力测试结果计算每个计算平台对应的综合结果;资源分配子模块,用于基于所述综合结果为所述目标计算平台所对应的虚拟机分
配资源。
[0024]
可选的,所述算力测试结果包括速率测试结果以及速度测试结果;综合结果计算子模块,具体包括:系数计算单元,用于基于所述业务请求数量计算所述速率测试结果对应的第一系数以及速度测试结果对应的第二系数;综合结果计算单元,用于基于所述第一系数、所述速率测试结果、所述第二系数以及所述速度测试结果计算每个计算平台对应的综合结果。
[0025]
其中,系数计算单元,具体用于利用公式b0=b0/(b0+b1)计算第一系数,以及利用公式b1=b1/(b0+b1)计算第二系数;其中,b0表示计算密集型业务对应的业务请求数量,b1表示输入输出密集型业务对应的业务请求数量,b0为第一系数,b1为第二系数。
[0026]
可选的,所述速率测试结果和所述速度测试结果均包括整型测试结果和浮点型测试结果;综合结果计算单元,具体用于:确定整型测试结果对应的第三系数以及浮点型测试结果对应的第四系数;基于所述第一系数、所述速率测试结果、所述第二系数、所述速度测试结果、所述第三系数以及所述第四系数计算每个计算平台对应的综合结果。
[0027]
可选的,综合结果计算单元,具体用于:利用预设公式计算每个计算平台对应的综合结果;所述预设公式为:spec
base
=[rate
int
*a0+rate
fp
*a1]*b0+[speed
int
*a0+speed
fp
*a1]*b1;其中,spec
base
表示综合结果,b0为第一系数,b1为第二系数,a0为第三系数,a1为第四系数,rate
int
为速率测试结果中的整型测试结果,rate
fp
为速率测试结果中的浮点型测试结果,speed
int
为速率测试结果中的整型测试结果,speed
fp
为速率测试结果中的浮点型测试结果。
[0028]
第三方面,一种电子设备,包括存储器和处理器,其中:所述存储器,用于保存计算机程序;所述处理器,用于执行所述计算机程序,以实现前述的资源分配方法。
[0029]
第四方面,本发明公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述的资源分配方法。
[0030]
可见,本发明先对同一云平台下的多个计算平台进行算力测试,得到每个计算平台的算力测试结果,多个计算平台采用不同的处理器架构,以及获取预设时间内的业务请求,识别每个所述业务请求的业务类型并确定所述预设时间内不同业务类型的业务请求数量,之后从所述多个计算平台中确定出目标计算平台,并基于所述业务请求数量、所述算力测试结果为所述目标计算平台所对应的虚拟机分配资源。对于同一云平台下不同处理器架构下的多个计算平台,进行算力测试,得到算力测试结果,并且,对一定时间内的业务请求进行了分类统计。
[0031]
本发明的有益效果在于:在给需要分配虚拟机资源的计算平台进行资源分配时,既考虑了不同计算平台的算力差异,也考虑了业务请求类型,这样,能够合理分配虚拟机资源,从而保障业务稳定运行。
附图说明
[0032]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0033]
图1为本发明实施例提供的一种资源分配方法流程图;图2为本发明实施例提供的一种业务请求分类流程图;图3为本发明实施例提供的一种算力测试流程图;图4为本发明实施例提供的一种综合结果计算流程图;图5为本发明实施例提供的一种资源分配流程图;图6为本发明实施例提供的一种具体的资源分配方法流程图;图7为本发明实施例提供的一种资源分配装置结构示意图;图8为本发明实施例提供的一种电子设备结构图。
具体实施方式
[0034]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035]
随着信息技术发展的加速,云计算成为已成为一种重要技术。当前云计算环境下虚拟机资源分配的研究主要集中在以下几个方面。1)基础设施,即服务级的虚拟机分配机制的研究,即根据用户对虚拟机资源需求的动态变化,实时地为虚拟机分配资源。2)基于服务请求量预测的资源分配。在这种方式中,云服务提供商首先对云用户的服务请求量进行预测,然后按照所预测的服务请求量为相应的云用户配置虚拟机资源。在一云多芯的场景下,面临如下问题:第一,资源不能灵活分配,业务访问量剧增时,系统无法正常响应。第二,资源利用率低。传统资源碎片化,物理设备资源利用率低,造成资源浪费。也即,目前,在一云多芯的场景下,面临虚拟机资源分配不合理,业务访问量剧增时,系统无法正常响应,导致业务卡顿的问题。为此,本发明提供了一种资源分配方案,能够合理分配虚拟机资源,从而保障业务稳定运行。
[0036]
参见图1所示,本发明实施例公开了一种资源分配方法,包括:步骤s11:对同一云平台下的多个计算平台进行算力测试,得到每个计算平台的算力测试结果;所述多个计算平台采用不同的处理器架构。
[0037]
其中,处理器架构可以包括:hygon-x86、ft-aarch64、intel-x86、loongarch等架构,也即,本发明可以针对一云多芯场景,多芯即多个不同处理器架构的计算平台。
[0038]
在具体的实施方式中可以在所述同一云平台下的多个计算平台中部署算力测试工具,利用所述算力测试工具对多个计算平台进行算力测试,得到每个计算平台的算力测试结果。比如,可以采用speccpu 2017作为算力测算工具,首先在各个计算平台上部署该工具,配置运行该算力测试工具需要的依赖环境,运行runcpu,最终会得到每个计算平台对应的算力测试结果。其中,speccpu 2017是一种行业标准化的cpu(即central processing unit,中央处理器)测试基准套件,重点测试系统的“cpu-内存”子系统以及编译器的优化程度。spec(即standard performance evaluation corporation,标准性能评估组织),
runcpu是speccpu 2017的主要工具,runcpu命令将编译,并生成可执行文件。
[0039]
进一步的,可以对同一云平台下的多个计算平台进行速率测试以及速度测试,得到每个计算平台的速率测试结果以及速度测试结果。其中,速率(rate)测试包含10个整型测试和13个浮点型测试,速率测试是运行多个相同的测试题,运行数量由测试者指定,分数高,代表更大的通量。速度(speed)测试包含10个整型测试和10个浮点型测试。速度测试只运行一次测试题,测试分数高,说明单次运行时间短。
[0040]
步骤s12:获取预设时间内的业务请求,识别每个所述业务请求的业务类型并确定所述预设时间内不同业务类型的业务请求数量。
[0041]
在具体的实施方式中,本发明实施例可以提取每个所述业务请求中的关键字,并基于所述关键字确定每个所述业务请求的业务类型。
[0042]
进一步的,在基于所述关键字确定每个所述业务请求的业务类型之后,本发明实施例可以将该业务类型对应的计数器进行值加1操作;相应的,所述确定所述预设时间内不同业务类型的业务请求数量,包括:当达到所述预设时间,则将不同业务类型对应的计数器的数值确定为不同业务类型的业务请求数量。
[0043]
另外,所述提取每个所述业务请求中的关键字,并基于所述关键字确定每个所述业务请求的业务类型之前,本发明实施例可以针对不同的业务类型创建不同的计数器,并初始化每个计数器。其中,计数器可以为一个变量,也可以为一个数组。例如,可以创建两个数组:第一数组和第二数组,分别存放计算密集型请求数和输入输出密集型请求数,当请求属于计算密集型时,第一数组+1;当请求是输入输出密集型事,第二数组+1。最后得出预设时间内的计算密集型请求总数以及输入输出密集型请求总数。
[0044]
步骤s13:从所述多个计算平台中确定出目标计算平台,并基于所述业务请求数量、所述算力测试结果为所述目标计算平台所对应的虚拟机分配资源。
[0045]
本发明实施例可以基于所述业务请求数量、所述算力测试结果计算每个计算平台对应的综合结果;基于所述综合结果为所述目标计算平台所对应的虚拟机分配资源。
[0046]
在具体的实施方式中,所述算力测试结果包括速率测试结果以及速度测试结果;本发明实施例可以基于所述业务请求数量计算所述速率测试结果对应的第一系数以及速度测试结果对应的第二系数;基于所述第一系数、所述速率测试结果、所述第二系数以及所述速度测试结果计算每个计算平台对应的综合结果。
[0047]
其中,可以利用公式b0=b0/(b0+b1)计算第一系数,以及利用公式b1=b1/(b0+b1)计算第二系数;b0表示计算密集型业务对应的业务请求数量,b1表示输入输出密集型业务对应的业务请求数量,b0为第一系数,b1为第二系数。
[0048]
进一步的,所述速率测试结果和所述速度测试结果均包括整型测试结果和浮点型测试结果;本发明实施例可以确定整型测试结果对应的第三系数以及浮点型测试结果对应的第四系数;基于所述第一系数、所述速率测试结果、所述第二系数、所述速度测试结果、所述第三系数以及所述第四系数计算每个计算平台对应的综合结果。
[0049]
在一种实施方式中,可以利用预设公式计算每个计算平台对应的综合结果;所述预设公式为:spec
base
=[rate
int
*a0+rate
fp
*a1]*b0+[speed
int
*a0+speed
fp
*a1]*b1;其中,spec
base
表示综合结果,b0为第一系数,b1为第二系数,a0为第三系数,a1为
第四系数,rate
int
为速率测试结果中的整型测试结果,rate
fp
为速率测试结果中的浮点型测试结果,speed
int
为速率测试结果中的整型测试结果,speed
fp
为速率测试结果中的浮点型测试结果。
[0050]
并且,在一种实施方式中,可以获取所述多个计算平台对应的标识信息;将所述标识信息与预设标识比对,当所述标识信息与所述预设标识不一致,则将该标识信息对应的计算平台确定为目标计算平台;其中,所述预设标识为所述多个计算平台中指定计算平台对应的标识。也即,可以指定一个性能最好的计算平台,其他平台参照该平台分配资源。
[0051]
在另一种实施方式中,可以基于所述业务请求数量、所述算力测试结果,从所述多个计算平台中确定出目标计算平台。具体的,可以基于所述业务请求数量、所述算力测试结果计算每个计算平台对应的综合结果;对所述综合结果进行排序,将最大综合结果所述对应的计算平台以外的计算平台确定为目标计算平台。可以理解的是,综合结果即可以为上述预设公式计算出的结果。
[0052]
其中,所述基于所述综合结果为所述目标计算平台所对应的虚拟机分配资源,可以包括以下步骤:步骤00:确定非目标计算平台对应的处理器核心数;其中,所述非目标计算平台为所述多个计算平台中性能最优的计算平台。
[0053]
在具体的实施方式中,可以查找预设参考标准库,得到非目标计算平台对应的处理器核心数。其中,预设参考标准库可以为非目标计算平台对应的参考标准库,参考标准库中包含非目标计算平台对应的处理器核心数。
[0054]
步骤01:基于非目标计算平台的综合结果与目标计算平台的综合结果以及所述处理器核心数,确定目标计算平台对应的待分配处理器核心数。
[0055]
在具体的实施方式中,可以计算非目标计算平台的综合结果与目标计算平台的综合结果之间的比值;基于所述比值以及所述处理器核心数,确定目标计算平台对应的待分配处理器核心数。
[0056]
步骤02:基于所述待分配处理器核心数给目标计算平台所对应的虚拟机分配资源。
[0057]
也即,给目标计算平台所对应的虚拟机分配待分配处理器核心数个处理器核心。
[0058]
进一步的,本发明实施例可以确定所述多个计算平台中每个计算平台的请求分配比例;基于所述请求分配比例将业务请求分配至所述多个计算平台对应的虚拟机。具体的,可以获取每个计算平台对应的综合结果;其中,所述综合结果为基于所述业务请求数量、所述算力测试结果确定的表征平台算力的结果;基于所述综合结果确定所述多个计算平台中每个计算平台的请求分配比例。可以理解的是,综合结果即可以为上述预设公式计算出的结果。
[0059]
可见,本发明实施例先对同一云平台下的多个计算平台进行算力测试,得到每个计算平台的算力测试结果,多个计算平台采用不同的处理器架构,以及获取预设时间内的业务请求,识别每个所述业务请求的业务类型并确定所述预设时间内不同业务类型的业务请求数量,之后从所述多个计算平台中确定出目标计算平台,并基于所述业务请求数量、所述算力测试结果为所述目标计算平台所对应的虚拟机分配资源。也即,本发明实施例中,对于同一云平台下不同处理器架构下的多个计算平台,进行算力测试,得到算力测试结果,并
且,对一定时间内的业务请求进行了分类统计,在给需要分配虚拟机资源的计算平台进行资源分配时,既考虑了不同计算平台的算力差异,也考虑了业务请求类型,这样,能够合理分配虚拟机资源,从而保障业务稳定运行。
[0060]
在一种实施方式中,可以实现四个模块:业务感知模块、算力测算模块、结果分析模块以及资源分配模块。其中,本发明实施例中,对于业务感知模块,可以创建系统服务单元(systemd unit),命名request_monitor.service,根据业务类型,划分并计算两类业务的请求总数,分别是io(即输入输出)密集型业务请求数、计算密集型业务数。通过业务感知模块获取一定时间内的应用请求,截取请求字符串中的关键字部分,来判断该请求属于计算密集型还是io密集型业务。并且,可以创建两个数组,第一数组和第二数组,分别存放计算密集型请求数和io密集型请求数,当请求属于计算密集型时,第一数组+1;当请求是输入输出密集型事,第二数组+1。最后得出一定时间内的计算密集型请求总数,io密集型请求总数。例如,参见图2所示,图2为本发明实施例提供的一种业务请求分类流程图。
[0061]
并且,本发明实施例中,对于业务感知模块,创建系统服务单元systemd unit,命名calc_test.service,负责进行不同架构下的cpu算力测算。采用speccpu 2017作为算力测算工具,首先在各个平台上部署该工具,配置运行speccpu需要的依赖环境,运行runcpu,最终会得到4个结果值,分别是specrate2017_int(速率测试结果中的整型测试结果),specrate2017_fp(速率测试结果中的浮点型测试结果),specspeed2017_int(速度测试结果中的整型测试结果),specspeed2017_fp(速度测试结果中的浮点型测试结果)。比如,hygon_7380下的测试结果为specrate2017_int:4.579493、specrate2017_fp:3.789079、specspeed2017_int:4.047959,specspeed2017_fp:4.331506;intel_6248r下的测试结果为:specrate2017_int:6.179037、specrate2017_fp:5.540061、specspeed2017_int:6.018179,specspeed2017_fp:6.420772。例如,参见图3所示,图3为本发明实施例提供的一种算力测试流程图。
[0062]
进一步的,本发明实施中,对于结果分析模块,创建系统服务单元systemd unit,命名result_analyze.service,负责根据业务类型和基础算力测算结果整合出表示整机有效算力的综合结果。具体算法公式如下:spec
base
=[rate
int
*a0+rate
fp
*a1]*b0+[speed
int
*a0+speed
fp
*a1]*b1;其中,spec
base
表示综合结果,b0为第一系数,b1为第二系数,a0为第三系数,a1为第四系数,rate
int
为速率测试结果中的整型测试结果,rate
fp
为速率测试结果中的浮点型测试结果,speed
int
为速率测试结果中的整型测试结果,speed
fp
为速率测试结果中的浮点型测试结果。利用公式b0=b0/(b0+b1)计算第一系数,以及利用公式b1=b1/(b0+b1)计算第二系数;b0表示计算密集型业务对应的业务请求数量,b1表示输入输出密集型业务对应的业务请求数量。a0、a1代表业务请求所用参数中整型和浮点型的比值,由于业务请求整型和浮点型都会涵盖,这里默认为50%。b0、b1为基于业务感知模块获取到的计算密集型和io密集型数量计算出的比值。例如,参见图4所示,图4为本发明实施例提供的一种综合结果计算流程图。
[0063]
进一步的,对于资源分配模块,可以创建系统服务单元systemd unit,命名resource_alloc.service,负责根据整机算力综合值来给虚拟机分配相应的cpu核心。该模块包含一个标准库,该标准库包含了intel环境下运行相应的应用所需要的cpu核心数。根
据结果模块计算得出的综合值,再参考标准库,最终会给另一平台虚拟机分配相应的cpu核心数。例如:假设通过算力测算得出intel_6248r环境下的综合值为100,hygon_7380环境下的综合值为70。通过查询标准库,得出intel_6248r环境下能够支撑某业务系统100并发的cpu核心数为8c,那么分配hygon_7380环境的虚拟机cpu核心数便是:100*8c/70=11.4≈12c。参见图5所示,图5为本发明实施例提供的一种资源分配流程图。
[0064]
进一步的,参见图6所示,图6为本发明实施例提供的一种具体的资源分配方法流程图。
[0065]
a)、首先分别在不同的计算平台上部署好speccpu2017算力测试工具,并配置好运行算力测试工具所需要的依赖。
[0066]
b)、分别在不同的计算平台运行算力测试工具进行算力测试,得出不同计算平台下的算力测试结果。
[0067]
c)、开启业务感知服务,获取一定时间内业务属于计算密集型和io密集型的总数。
[0068]
d)、计算不同计算平台的综合结果。
[0069]
e)、参考标准库,结合上面计算出的整机综合结果,来分配相应的计算平台下的虚拟机核心数。
[0070]
需要指出的是,传统的虚拟机资源分配并没有考虑到一云多芯环境下,各个的算力差异,也没有将业务类型与cpu基础算力相结合,仅根据请求数多少或者资源数来分配虚拟机的cpu核心,造成资源分配不合理,在某些平台下,由于算力差异导致上层业务运行缓慢甚至卡死。不同于传统的分配方案,本发明综合考虑到一云多芯环境下不同架构cpu的算力差异,以及区分业务类型,从综合值的角度,精准的分配一云多芯环境下国产化平台的虚拟机资源。这样,在一云多芯架构下,根据业务类型结合基础算力测试结果计算,合理进行一云多芯环境下的虚拟机资源分配,实现了不同类型的业务应用稳定高效运行,避免服务器资源不足引起业务卡顿或者崩溃。另外,由于在进行虚拟机资源分配时,兼顾了上层应用的请求业务类型,能够有效的将应用请求分配到最佳的虚拟机上运行,提升虚拟机资源的有效利用率。
[0071]
参见图7所示,本发明实施例公开了一种资源分配装置,包括:算力测试模块11,用于对同一云平台下的多个计算平台进行算力测试,得到每个计算平台的算力测试结果;所述多个计算平台采用不同的处理器架构;请求分类模块12,用于获取预设时间内的业务请求,识别每个所述业务请求的业务类型并确定所述预设时间内不同业务类型的业务请求数量;平台确定模块13,用于从所述多个计算平台中确定出目标计算平台;资源分配模块14,用于基于所述业务请求数量、所述算力测试结果为所述目标计算平台所对应的虚拟机分配资源。
[0072]
可见,本发明实施例先对同一云平台下的多个计算平台进行算力测试,得到每个计算平台的算力测试结果,多个计算平台采用不同的处理器架构,以及获取预设时间内的业务请求,识别每个所述业务请求的业务类型并确定所述预设时间内不同业务类型的业务请求数量,之后从所述多个计算平台中确定出目标计算平台,并基于所述业务请求数量、所述算力测试结果为所述目标计算平台所对应的虚拟机分配资源。也即,本发明实施例中,对于同一云平台下不同处理器架构下的多个计算平台,进行算力测试,得到算力测试结果,并
且,对一定时间内的业务请求进行了分类统计,在给需要分配虚拟机资源的计算平台进行资源分配时,既考虑了不同计算平台的算力差异,也考虑了业务请求类型,这样,能够合理分配虚拟机资源,从而保障业务稳定运行。
[0073]
其中,资源分配模块14,具体包括:综合结果计算子模块,用于基于所述业务请求数量、所述算力测试结果计算每个计算平台对应的综合结果;资源分配子模块,用于基于所述综合结果为所述目标计算平台所对应的虚拟机分配资源。
[0074]
在具体的实施方式中,所述算力测试结果包括速率测试结果以及速度测试结果;综合结果计算子模块,具体包括:系数计算单元,用于基于所述业务请求数量计算所述速率测试结果对应的第一系数以及速度测试结果对应的第二系数;综合结果计算单元,用于基于所述第一系数、所述速率测试结果、所述第二系数以及所述速度测试结果计算每个计算平台对应的综合结果。
[0075]
其中,系数计算单元,具体用于利用公式b0=b0/(b0+b1)计算第一系数,以及利用公式b1=b1/(b0+b1)计算第二系数;其中,b0表示计算密集型业务对应的业务请求数量,b1表示输入输出密集型业务对应的业务请求数量,b0为第一系数,b1为第二系数。
[0076]
进一步的,在具体的实施方式中,所述速率测试结果和所述速度测试结果均包括整型测试结果和浮点型测试结果;综合结果计算单元,具体用于:确定整型测试结果对应的第三系数以及浮点型测试结果对应的第四系数;基于所述第一系数、所述速率测试结果、所述第二系数、所述速度测试结果、所述第三系数以及所述第四系数计算每个计算平台对应的综合结果。
[0077]
并且,综合结果计算单元,具体用于:利用预设公式计算每个计算平台对应的综合结果;所述预设公式为:spec
base
=[rate
int
*a0+rate
fp
*a1]*b0+[speed
int
*a0+speed
fp
*a1]*b1;其中,spec
base
表示综合结果,b0为第一系数,b1为第二系数,a0为第三系数,a1为第四系数,rate
int
为速率测试结果中的整型测试结果,rate
fp
为速率测试结果中的浮点型测试结果,speed
int
为速率测试结果中的整型测试结果,speed
fp
为速率测试结果中的浮点型测试结果。
[0078]
算力测试模块11,具体用于对同一云平台下的多个计算平台进行速率测试以及速度测试,得到每个计算平台的速率测试结果以及速度测试结果。
[0079]
其中,资源分配子模块,具体包括:参考处理器核心数确定单元,用于确定非目标计算平台对应的处理器核心数;其中,所述非目标计算平台为所述多个计算平台中性能最优的计算平台;待分配处理器核心数确定单元,用于基于非目标计算平台的综合结果与目标计算平台的综合结果以及所述处理器核心数,确定目标计算平台对应的待分配处理器核心数;资源分配单元,用于基于所述待分配处理器核心数给目标计算平台所对应的虚拟机分配资源。
[0080]
待分配处理器核心数确定单元,具体用于计算非目标计算平台的综合结果与目标
计算平台的综合结果之间的比值;基于所述比值以及所述处理器核心数,确定目标计算平台对应的待分配处理器核心数。
[0081]
参考处理器核心数确定单元,具体用于查找预设参考标准库,得到非目标计算平台对应的处理器核心数。
[0082]
在一种实施方式中,平台确定模块13,具体用于基于所述业务请求数量、所述算力测试结果,从所述多个计算平台中确定出目标计算平台。具体的,用于基于所述业务请求数量、所述算力测试结果计算每个计算平台对应的综合结果;对所述综合结果进行排序,将最大综合结果所述对应的计算平台以外的计算平台确定为目标计算平台。
[0083]
在另一种实施方式中,平台确定模块13,具体用于获取所述多个计算平台对应的标识信息;将所述标识信息与预设标识比对,当所述标识信息与所述预设标识不一致,则将该标识信息对应的计算平台确定为目标计算平台;其中,所述预设标识为所述多个计算平台中指定计算平台对应的标识。
[0084]
请求分类模块12,具体用于提取每个所述业务请求中的关键字,并基于所述关键字确定每个所述业务请求的业务类型。
[0085]
并且,请求分类模块12,还用于在基于所述关键字确定每个所述业务请求的业务类型之后,将该业务类型对应的计数器进行值加1操作;当达到所述预设时间,则将不同业务类型对应的计数器的数值确定为不同业务类型的业务请求数量。
[0086]
进一步的,请求分类模块12,还用于在所述提取每个所述业务请求中的关键字,并基于所述关键字确定每个所述业务请求的业务类型之前,针对不同的业务类型创建不同的计数器,并初始化每个计数器。
[0087]
算力测试模块11,具体用于在所述同一云平台下的多个计算平台中部署算力测试工具,利用所述算力测试工具对多个计算平台进行算力测试,得到每个计算平台的算力测试结果。
[0088]
另外,所述装置还包括:请求分配比例确定模块,用于确定所述多个计算平台中每个计算平台的请求分配比例;请求分配模块,用于基于所述请求分配比例将业务请求分配至所述多个计算平台对应的虚拟机。
[0089]
其中,请求分配比例确定模块,具体用于获取每个计算平台对应的综合结果;其中,所述综合结果为基于所述业务请求数量、所述算力测试结果确定的表征平台算力的结果;基于所述综合结果确定所述多个计算平台中每个计算平台的请求分配比例。
[0090]
参见图8所示,本发明实施例公开了一种电子设备20,包括处理器21和存储器22;其中,所述存储器22,用于保存计算机程序;所述处理器21,用于执行所述计算机程序,前述实施例公开的资源分配方法。
[0091]
关于上述资源分配方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
[0092]
并且,所述存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,存储方式可以是短暂存储或者永久存储。
[0093]
另外,所述电子设备20还包括电源23、通信接口24、输入输出接口25和通信总线
26;其中,所述电源23用于为所述电子设备20上的各硬件设备提供工作电压;所述通信接口24能够为所述电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本发明技术方案的任意通信协议,在此不对其进行具体限定;所述输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
[0094]
进一步的,本发明实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的资源分配方法。
[0095]
关于上述资源分配方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
[0096]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0097]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0098]
以上对本发明所提供的一种资源分配方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

技术特征:
1.一种资源分配方法,其特征在于,包括:对同一云平台下的多个计算平台进行算力测试,得到每个计算平台的算力测试结果;所述多个计算平台采用不同的处理器架构;获取预设时间内的业务请求,识别每个所述业务请求的业务类型并确定所述预设时间内不同业务类型的业务请求数量;从所述多个计算平台中确定出目标计算平台,并基于所述业务请求数量、所述算力测试结果为所述目标计算平台所对应的虚拟机分配资源。2.根据权利要求1所述的资源分配方法,其特征在于,所述基于所述业务请求数量、所述算力测试结果为所述目标计算平台所对应的虚拟机分配资源,包括:基于所述业务请求数量、所述算力测试结果计算每个计算平台对应的综合结果;基于所述综合结果为所述目标计算平台所对应的虚拟机分配资源。3.根据权利要求2所述的资源分配方法,其特征在于,所述算力测试结果包括速率测试结果以及速度测试结果;所述基于所述业务请求数量、所述算力测试结果计算每个计算平台对应的综合结果,包括:基于所述业务请求数量计算所述速率测试结果对应的第一系数以及所述速度测试结果对应的第二系数;基于所述第一系数、所述速率测试结果、所述第二系数以及所述速度测试结果计算每个计算平台对应的综合结果。4.根据权利要求3所述的资源分配方法,其特征在于,所述基于所述业务请求数量计算所述速率测试结果对应的第一系数以及所述速度测试结果对应的第二系数,包括:利用公式b0=b0/(b0+b1)计算第一系数,以及利用公式b1=b1/(b0+b1)计算第二系数;其中,b0表示计算密集型业务对应的业务请求数量,b1表示输入输出密集型业务对应的业务请求数量,b0为第一系数,b1为第二系数。5.根据权利要求3所述的资源分配方法,其特征在于,所述速率测试结果和所述速度测试结果均包括整型测试结果和浮点型测试结果;所述基于所述第一系数、所述速率测试结果、所述第二系数以及所述速度测试结果计算每个计算平台对应的综合结果,包括:确定整型测试结果对应的第三系数以及浮点型测试结果对应的第四系数;基于所述第一系数、所述速率测试结果、所述第二系数、所述速度测试结果、所述第三系数以及所述第四系数计算每个计算平台对应的综合结果。6.根据权利要求5所述的资源分配方法,其特征在于,所述基于所述第一系数、所述速率测试结果、所述第二系数、所述速度测试结果、所述第三系数以及所述第四系数计算每个计算平台对应的综合结果,包括:利用预设公式计算每个计算平台对应的综合结果;所述预设公式为:spec
base
=[rate
int
*a0+rate
fp
*a1]*b0+[speed
int
*a0+speed
fp
*a1]*b1;其中,spec
base
表示综合结果,b0为第一系数,b1为第二系数,a0为第三系数,a1为第四系数,rate
int
为速率测试结果中的整型测试结果,rate
fp
为速率测试结果中的浮点型测试结果,speed
int
为速率测试结果中的整型测试结果,speed
fp
为速率测试结果中的浮点型测试结果。7.根据权利要求2所述的资源分配方法,其特征在于,所述基于所述综合结果为所述目
标计算平台所对应的虚拟机分配资源,包括:确定非目标计算平台对应的处理器核心数;其中,所述非目标计算平台为所述多个计算平台中性能最优的计算平台;基于所述非目标计算平台的综合结果与所述目标计算平台的综合结果以及所述处理器核心数,确定所述目标计算平台对应的待分配处理器核心数;基于所述待分配处理器核心数给所述目标计算平台所对应的虚拟机分配资源。8.根据权利要求7所述的资源分配方法,其特征在于,所述基于所述非目标计算平台的综合结果与所述目标计算平台的综合结果以及所述处理器核心数,确定所述目标计算平台对应的待分配处理器核心数,包括:计算所述非目标计算平台的综合结果与所述目标计算平台的综合结果之间的比值;基于所述比值以及所述处理器核心数,确定所述目标计算平台对应的待分配处理器核心数。9.根据权利要求7所述的资源分配方法,其特征在于,所述确定非目标计算平台对应的处理器核心数,包括:查找预设参考标准库,得到非目标计算平台对应的处理器核心数。10.根据权利要求1所述的资源分配方法,其特征在于,所述从所述多个计算平台中确定出目标计算平台,包括:基于所述业务请求数量、所述算力测试结果,从所述多个计算平台中确定出目标计算平台。11.根据权利要求10所述的资源分配方法,其特征在于,所述基于所述业务请求数量、所述算力测试结果,从所述多个计算平台中确定出目标计算平台,包括:基于所述业务请求数量、所述算力测试结果计算每个计算平台对应的综合结果;对所述综合结果进行排序,将最大综合结果所对应的计算平台以外的计算平台确定为目标计算平台。12.根据权利要求1所述的资源分配方法,其特征在于,所述从所述多个计算平台中确定出目标计算平台,包括:获取所述多个计算平台对应的标识信息;将所述标识信息与预设标识比对,当所述标识信息与所述预设标识不一致,则将该标识信息对应的计算平台确定为目标计算平台;其中,所述预设标识为所述多个计算平台中指定计算平台对应的标识。13.根据权利要求1所述的资源分配方法,其特征在于,所述识别每个所述业务请求的业务类型,包括:提取每个所述业务请求中的关键字,并基于所述关键字确定每个所述业务请求的业务类型。14.根据权利要求13所述的资源分配方法,其特征在于,在基于所述关键字确定每个所述业务请求的业务类型之后,还包括:将该业务类型对应的计数器进行值加1操作;相应的,所述确定所述预设时间内不同业务类型的业务请求数量,包括:当达到所述预设时间,则将不同业务类型对应的计数器的数值确定为不同业务类型的
业务请求数量。15.根据权利要求14所述的资源分配方法,其特征在于,所述提取每个所述业务请求中的关键字,并基于所述关键字确定每个所述业务请求的业务类型之前,还包括:针对不同的业务类型创建不同的计数器,并初始化每个计数器。16.根据权利要求1至15任一项所述的资源分配方法,其特征在于,还包括:确定所述多个计算平台中每个计算平台的请求分配比例;基于所述请求分配比例将业务请求分配至所述多个计算平台对应的虚拟机。17.根据权利要求16所述的资源分配方法,其特征在于,所述确定所述多个计算平台中每个计算平台的请求分配比例,包括:获取每个计算平台对应的综合结果;其中,所述综合结果为基于所述业务请求数量、所述算力测试结果确定的表征平台算力的结果;基于所述综合结果确定所述多个计算平台中每个计算平台的请求分配比例。18.一种资源分配装置,其特征在于,包括:算力测试模块,用于对同一云平台下的多个计算平台进行算力测试,得到每个计算平台的算力测试结果;所述多个计算平台采用不同的处理器架构;请求分类模块,用于获取预设时间内的业务请求,识别每个所述业务请求的业务类型并确定所述预设时间内不同业务类型的业务请求数量;平台确定模块,用于从所述多个计算平台中确定出目标计算平台;资源分配模块,用于基于所述业务请求数量、所述算力测试结果为所述目标计算平台所对应的虚拟机分配资源。19.一种电子设备,其特征在于,包括存储器和处理器,其中:所述存储器,用于保存计算机程序;所述处理器,用于执行所述计算机程序,以实现如权利要求1至17任一项所述的资源分配方法。20.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至17任一项所述的资源分配方法。

技术总结
本发明公开了一种资源分配方法、装置、设备及介质,应用于云计算技术领域,对同一云平台下的多个计算平台进行算力测试,得到每个计算平台的算力测试结果;所述多个计算平台采用不同的处理器架构;获取预设时间内的业务请求,识别每个所述业务请求的业务类型并确定所述预设时间内不同业务类型的业务请求数量;从所述多个计算平台中确定出目标计算平台,并基于所述业务请求数量、所述算力测试结果为所述目标计算平台所对应的虚拟机分配资源。这样,能够合理分配虚拟机资源,从而保障业务稳定运行。行。行。


技术研发人员:贾猛
受保护的技术使用者:浪潮(山东)计算机科技有限公司
技术研发日:2023.08.18
技术公布日:2023/9/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐