一种云系统资源集合的推荐方法、装置及计算设备集群与流程

文档序号:20016932发布日期:2020-02-25 10:43阅读:221来源:国知局
一种云系统资源集合的推荐方法、装置及计算设备集群与流程

本申请涉及计算机技术领域,尤其涉及一种云系统资源集合的推荐方法、装置及计算设备集群。



背景技术:

随着云计算技术的高速发展,云端可以部署越来越多的云服务,以供给用户使用,而云端部署的云服务,通常需要租户预先在云端租用资源,这些资源构成的资源集合构建为一个云系统,在该云系统可以通过运行应用程序为用户提供云服务。

目前,云端只会提供有限的几种多种固定配置的资源集合,租户可以根据自身需求从这几种资源集合中选择其中一种。但是这些固定配置的资源集合通常不能完全贴合租户的自身需求。举例来说,租户a需要租用一个资源集合,租金为1000元/月以下、该资源集合需要可支持300并发(同时处理300个请求)、以及中央处理器(centralprocessingunit,cpu)利用率大于40%,而云端提供的通常只提供几个固定配置的资源集合。每个固定的资源配置通常也只能支持一种并发度,几种固定的资源配置支持的并发度有限,例如几种固定的资源配置仅支持100并发、500并发、1000并发。

租户只能选择云端提供的支持500并发的资源集合才能保证达到自身需求,该资源集合构建的云系统虽然能够较好的提高云服务,但是由于该资源集合中配置了较多的资源,成本较高,存在资源浪费,不能很好的贴合用户的自身需求。



技术实现要素:

本申请提供一种云系统资源集合的推荐方法、装置及计算设备集群,用以为用户推荐较为合适的云系统资源集合。

第一方面,本申请提供了一种云系统资源集合推荐方法,该方法可以由推荐装置执行,该方法包括:用户可以通过点击显示屏或键入参数等触发方式,向推荐装置发送云系统资源集合推荐请求,用以请求获取能够支持目标云服务的、且满足用户所要求的性能需求的云系统资源集合,其中,目标云服务能由至少一个功能组件配合提供,每个功能组件实现的功能不同。当推荐装置接收到接收由用户触发的云系统资源集合推荐请求后,可以根据云系统资源集合推荐请求,从已有的支持目标云服务的云系统资源集合中选择目标云系统资源集合,该目标云系统资源集合包括该至少一个功能组件,推荐装置还可以将该目标云系统资源集合反馈给用户。

通过上述方法,用户并不需要从有限的几种固定配置的资源集合中,选择所需要的云系统资源集合,只需将该云系统资源集合所需支持的目标云服务以及需要满足的性能需求告知推荐装置,有效的简化了用户的操作。由推荐装置从已有的、能够支持目标云服务的云系统资源集合中进行选择,选择范围不再是有限的几种云系统资源集合,选择范围更大,有利于选择出更加贴合用户的需求的云系统资源集合。

在一种可能的实现方式中,性能需求可以表现为对该目标云系统资源集合整体的性能需求以及该目标云系统资源集合中各个功能组件的性能需求。示例性的,性能需求包括目标云系统资源集合需支持的并发度,除了目标云系统资源集合需支持的并发度还可以包括下列的一种或多种:目标云系统资源集合需达到的中央处理器cpu的平均利用率、目标云系统资源集合需达到的内存平均利用率、目标云系统资源集合需达到的磁盘的平均读写速率、以及目标云系统资源集合中任一功能组件需达到的cpu的平均利用率、目标云系统资源集合中任一功能组件需达到的内存平均利用率以及目标云系统资源集合中任一功能组件需达到的磁盘的平均读写速率。

通过上述方法,性能需求中可以包括信息种类较多,便于推荐装置选择出能够真实贴近用户需求的目标云系统资源集合。

在一种可能的实现方式中,云系统资源集合推荐请求还可以包括目标云系统资源集合需满足的租金范围,推荐装置可以从已有的支持所述目标云服务的云系统资源集合中选择满足租金处于租金范围内目标云系统资源集合。

通过上述方法,云系统资源集合推荐请求携带有租金范围,能够使得选择出的目标云系统资源集合能够满足用户对租金的需求。

在一种可能的实现方式中,推荐装置在基于已有的支持目标云服务的云系统资源集合中选择满足性能需求的云系统资源集合时,可以利用已有的用于支持目标云服务的云系统资源集合对应的系统负载分配模型以及该至少一个功能组件对应的组件负载模型,根据系统负载分配模型以及组件负载模型所确定的数据,从已有的支持目标云服务的云系统资源集合中选择满足性能需求的目标云系统资源集合。

其中,每个云系统资源集合对应的系统负载分配模型用于根据云系统资源集合的负载情况确定云系统集合中每个功能组件的负载情况,每个功能组件对应的组件负载模型用于根据功能组件的负载情况确定功能组件的性能数据。

通过上述方法,推荐装置借助系统负载分配模型以及组件负载模型可以较为快捷的确定目标云系统资源集合,能够有效加快目标云系统资源集合的选择效率。

在一种可能的实现方式中,推荐装置在借助系统负载分配模型以及组件负载模型确定目标云系统资源集合之前,可以预先生成系统负载分配模型以及组件负载模型。示例性的,推荐装置可以先收集已有的支持目标云服务的云系统资源集合的结构数据以及运行数据,其中,任一支持目标云服务的云系统资源集合的结构数据指示该云系统资源集合中功能组件的组成以及每个功能组件的资源配置;任一支持目标云服务的云系统资源集合的运行数据用于指示云系统资源集合在运行过程中云系统资源集合的性能以及云系统资源集合中各个功能组件的性能;之后,再根据结构数据以及运行数据生成已有的支持目标云服务的云系统资源集合对应的系统负载分配模型以及功能组件对应的组件负载模型。上述说明中仅是以推荐装置生成系统负载分配模型以及组件负载模型为例,也可以使其他装置生成系统负载分配模型以及组件负载模型,将系统负载分配模型以及组件负载模型配置在推荐装置中。

通过上述方法,系统负载分配模型以及组件负载模型的生成过程中是基于预先收集的已有的支持目标云服务的云系统资源集合的结构数据以及运行数据进行的,能够保证生成有效的系统负载分配模型以及组件负载模型,系统负载分配模型以及组件负载模型所产生的数据更精确。

在一种可能的实现方式中,推荐装置在根据结构数据以及运行数据生成已有的支持目标云服务的云系统资源集合对应的系统负载分配模型以及该至少一个功能组件对应的组件负载模型时,可以将结构数据以及运行数据整合为多个组件负载模型的训练集以及多个系统负载分配模型的训练集;基于组件负载模型的训练集,生成该至少一个功能组件对应的组件负载模型;基于系统负载分配模型的训练集,生成已有的支持目标云服务的云系统资源集合对应的系统负载分配模型。

通过上述方法,推荐装置可以对结构数据以及运行数据进行整理,产生多个组件负载模型的训练集以及多个系统负载分配模型的训练集,便于生成较为有效的系统负载分配模型以及组件负载模型。

第二方面,本申请实施例还提供了一种推荐装置,有益效果可以参见第一方面的描述此处不再赘述。该装置具有实现上述第一方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述装置的结构中包括接收模块、资源选择模块、发送模块、组件负载模型、系统负载分配模型以及模型训练模块,这些模块或模型可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。

第三方面,本申请实施例还提供了一种计算设备,所述计算设备包括处理器和存储器,还可以包括通信接口。可选的,还包括显示屏。所述处理器执行所述存储器中的程序指令执行上述第一方面或第一方面任一可能的实现方式提供的方法。所述存储器与所述处理器耦合,其保存确定交通流量的过程中必要的程序指令和数据。所述通信接口,用于与其他设备进行通信,如接收云系统资源集合推荐请求。所述显示屏用于在所述处理器的触发下向用户显示信息,如显示目标云系统资源集合。

第四方面,本申请提供了一种计算设备集群,该计算设备集群包括至少一个计算设备。每个计算设备包括存储器和处理器。至少一个计算设备的处理器用于访问所述存储器中的代码以执行第一方面或第一方面的任意一种可能的实现方式提供的方法。

第五方面,本申请提供了一种非瞬态的可读存储介质,所述非瞬态的可读存储介质被计算设备执行时,所述计算设备执行前述第一方面或第一方面的任意可能的实现方式中提供的方法。该存储介质中存储了程序。该存储介质包括但不限于易失性存储器,例如随机访问存储器,非易失性存储器,例如快闪存储器、硬盘(harddiskdrive,hdd)、固态硬盘(solidstatedrive,ssd)。

第六方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,在被计算设备执行时,所述计算设备执行前述第一方面或第一方面的任意可能的实现方式中提供的方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第一方面或第一方面的任意可能的实现方式中提供的方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。

第七方面,本申请还提供一种计算机芯片,芯片与存储器相连,芯片用于读取并执行存储器中存储的软件程序,执行前述第一方面或第一方面的任意可能的实现方式中提供的方法。

附图说明

图1为本申请提供的一种推荐装置的结构示意图;

图2a为本申请提供的一种计算设备集群的结构示意图;

图2b为本申请提供的一种系统架构示意图;

图3为本申请提供的组件负载模型140以及系统负载分配模型150的训练方法示意图;

图4为本申请提供的系统推荐方法的示意图;

图5为本申请提供的一种向用户显示的选择界面的示意图;

图6为本申请提供的另一种向用户显示的选择界面的示意图;

图7为本申请提供的另一种向用户显示的选择界面的示意图;

图8为本申请提供的向用户显示目标云系统资源集合的界面示意图。

具体实施方式

通常,一个云系统资源集合可以用于支持一种云服务(一种云服务也可以称为一种云业务),一个云系统资源集合所能支持的云服务取决于该云系统资源集合中每个功能组件所运行的应用程序。从云服务角度来说,一种云服务可以部署在不同的云系统资源集合上,每个云系统资源集合的性能影响了所提供的云服务的质量。

任一云系统资源集合的性能与该云系统资源集合中包括的功能组件的种类以及每个功能组件的资源配置有关。云系统资源集合可以包括一个或多个功能组件,每个功能组件用于实现一种功能,多个功能组件配合支持一种云服务。举例来说,对于支持通话服务的一种云系统资源集合,可以包括三种功能组件,分为用于接收语音的功能组件、用于处理语音(如去噪)的功能组件、以及用于输出语音的功能组件。对于提供通话服务的另一种云系统资源集合,可以包括两种功能组件,分为用于接收语音的功能组件、以及用于输出语音的功能组件。这两种云系统资源集合均可以用于提供通话服务,但包括的功能组件不同,所提供的云服务的质量也存在差别。例如,对于前一种支持通话服务的云系统资源集合中由于包括用于处理语音的功能组件,对接收的语音进行了处理,可以使得最终输出的语音较为清晰,这种云系统资源集合能够对处于嘈杂环境的用户提供较好的通话服务;而后一种提供通话服务的云系统资源集合中并不包括用于处理语音的功能组件,省略了语音处理的操作,能够加快语音传输的效率,虽然不能较好的保证输出的语音的清晰度,却可以较好的保证语音传输的及时性,这种云系统资源集合适用于对语音传输速度有较高要求的场景中。

需要说明的是,若两个云系统资源集合中包括的功能组件的种类相同,且这两个云系统资源集合中能够实现相同功能的功能组件的资源配置不同,这两个云系统资源集合也属于不同的云系统资源集合。

任一功能组件的资源配置包括以下的任意一个或多个:该功能组件中包括的虚拟机(virtualmachine,vm)的数量、该功能组件中包括的容器的数量、该功能组件中包括的物理机(physicalmachine,pm)的数量、每个虚拟机的虚拟中央处理器(virtualcentralprocessingunit,vcpu)的数量、每个虚拟机的内存容量、每个虚拟机的磁盘容量、每个物理机的中央处理器(centralprocessingunit,cpu)的数量、每个物理机的内存容量、每个物理机的磁盘容量。为方便说明将功能组件中一个虚拟机或物理机称为该功能组件的一个实例。

有上可知,不同的云系统资源集合所支持的云服务的质量不同;租户在租用云系统资源集合时,可以考虑该云服务的受众用户以及应用场景,选择适宜的云系统资源集合;仅是靠云端提供的几种有限的云系统资源集合,很难满足租户的需求。为此本申请实施例提供了一种云系统资源集合推荐方法,在对该系统推荐方法说明之前,先对本申请实施例适用的系统架构进行说明。

本申请实施例提供一种云系统资源推荐方法,该方法由推荐装置执行。如图1所示,为本申请实施例提供的一种推荐装置的结构示意图,该推荐装置100包括接收模块110、资源选择模块120、发送模块130、该推荐装置100可以包括组件负载模型140以及系统负载分配模型150,本申请实施例并不限定组件负载模型140以及系统负载分配模型150的数量,这系统负载分配模型150的数量与已有的云系统资源集合的数量有关,组件负载模型140的数量与已有的云系统资源集合中所可能包括的功能组件的种类的数量有关。

接收模块110,用于接收用户触发的云系统资源集合推荐请求,云系统资源集合推荐请求用于请求获取能够支持某一类型的云服务的云系统资源集合。

系统负载分配模型150,一种云系统资源集合对应一个系统负载分配模型,一种云系统资源集合对应一个系统负载分配模型用于根据输入的云系统资源集合的负载情况确定该云资源集合中各个功能组件的负载情况。

组件负载模型140,在本申请实施例中一个功能组件对应一个组件负载模型,一个功能组件对应的组件负载模型用于根据输入的该功能组件的负载情况确定相应的该功能组件的性能数据。

资源选择模块120,用于从已有的支持该类型的云服务的云系统资源集合中选择的云系统资源集合。具体的,资源选择模块可以利用组件负载模型140以及系统负载分配模型150,从已有的支持该类型的云服务的云系统资源集合中选择云系统资源集合。

如图1所示,示例性的绘制了资源选择模块120所选择的两种云系统资源集合,分别为云系统资源集合170和云系统资源集合180。其中,云系统资源集合170中包括功能组件171、功能组件172以及功能组件173,功能组件171中包括一个pm以及一个vm,功能组件171中的pm包括两个cpu、内存以及磁盘,功能组件171中的pm的内存以及磁盘的容量分别为128吉字节(gigabyte,gb)和500gb。功能组件172中包括一个pm,功能组件172中的pm包括一个cpu、内存以及磁盘,功能组件172中vm的内存以及磁盘的容量分别为256gb和1太字节(terabyte,t)。功能组件173中包括一个vm以及三个容器,功能组件173中的vm包括一个vcpu、内存以及磁盘,功能组件173中vm的内存以及磁盘的容量分别为256gb和1t。

云系统资源集合180中包括功能组件181、功能组件182以及功能组件183,功能组件181中包括一个pm,功能组件181中的pm包括两个cpu、内存以及磁盘,功能组件181中内存以及磁盘的容量分别为256gb和500gb。功能组件182中包括一个vm,功能组件182中的vm包括两个vcpu、内存以及磁盘,功能组件182中vm的内存以及磁盘的容量分别为256gb和1t。功能组件183中包括两个vm,功能组件183中的每个vm包括一个vcpu、内存以及磁盘,功能组件183中每个vm的内存以及磁盘的容量分别为128gb和500gb。

发送模块130,用于将资源选择模块120选择的目标云系统资源集合发送给用户。

推荐装置100中的组件负载模型140和系统负载分配模型150可以是推荐装置100之外的装置训练完成并配置在推荐装置中的。作为一种可能的实施方式,推荐装置100中可以包括模型训练模块160,模型训练模块160用于对组件负载模型和系统负载分配模型进行训练,并将训练完成的组件负载模型和系统负载分配模型配置在推荐装置100中。

下面对本申请实施例所适用于的系统架构进行说明,如图2a所示,为本申请实施例提供的一种计算机集群,该计算机集群中包括至少一个计算设备10,每个计算设备10间通过通信网络建立通信通路。

每个计算设备10中包括总线101、处理器102、通信接口103以及存储器104。可选的,计算设备10中还可以包括显示屏105。处理器102、存储器104和通信接口103之间通过总线101通信。

其中,处理器102可以由一个或者多个通用处理器构成,例如中央处理器(centralprocessingunit,cpu),或者cpu和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic)、可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld)、现场可编程逻辑门阵列(field-programmablegatearray,fpga)、通用阵列逻辑(genericarraylogic,gal)或其任意组合。

存储器104可以包括易失性存储器(volatilememory),例如随机存取存储器(randomaccessmemory,ram)。存储器104还可以包括非易失性存储器(non-volatilememory,nvm),例如只读存储器(read-onlymemory,rom),快闪存储器,硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd)。存储器104还可以包括上述种类的组合。

存储器104中存储存可执行代码,处理器102可以读取存储器104中的该可执行代码实现功能,还可以通过通信接口103与其他计算设备进行通信,处理器102还可以触发显示屏105向用户显示信息,如本申请实施例中如图5~图8所示的界面中包括的信息。

在本申请实施例中,处理器102可以实现推荐装置100的一个或多个模块(如接收模块110、资源选择模块120、发送模块130、组件负载模型140、系统负载分配模型150以及模型训练模块160中的一个或多个模块)的功能,这种情况下,存储器104中存储有推荐装置100中的接收模块110、资源选择模块120、发送模块130、组件负载模型140以及系统负载分配模型150。

在本申请实施例中,多个计算设备10中的处理器102可以协调工作,执行本申请实施例提供的云系统资源集合推荐方法。

如图2b所示,为本申请实施例提供的一种系统架构,该系统架构中包括客户端200和部署有推荐装置的云端设备300,客户端200与云端设备300通过网络连接,该云端设备300位于云环境中,可以是部署在云数据中心中的服务器或者虚拟机,图2b中,仅是以该推荐装置部署在一个云端设备300为例,作为一种可能的实施方式,该推荐装置可以分布式地部署在多个云端设备300上。

如图2b所示,客户端200包括总线201、处理器202、通信接口203、存储器204。可选的包括客户端200还包括显示屏205。处理器202、存储器204和通信接口203之间通过总线201通信。其中,处理器202和存储器204的类型可以参见处理器102以及存储器104的相关说明,此处不再赘述。存储器204中存储存可执行代码,处理器202可以读取存储器204中的该可执行代码实现功能。处理器202还可以触发显示屏205向用户显示信息,如本申请实施例中如图5~图8所示的界面中包括的信息。处理器202还可以通过通信接口203与云端设备进行通信。例如处理器202可以通过显示屏提示用户输入信息,该信息可以为云系统资源集合推荐请求中携带的信息,如云系统资源集合所需支持的云服务的类型以及云系统资源集合的性能需求;通过通信接口203将携带有云系统资源集合所需支持的云服务的类型以及云系统资源集合的性能需求等信息的云系统资源集合推荐请求发送给云端设备300。

如图2b所示,云端设备300包括总线301、处理器302、通信接口303以及存储器304。处理器302、存储器304和通信接口303之间通过总线301通信。其中,处理器302和存储器304的类型可以参见处理器102以及存储器104的相关说明,此处不再赘述。存储器304中存储存可执行代码,处理器302可以读取存储器304中的该可执行代码实现功能,还可以通过通信接口303与客户端200进行通信。在本申请实施例中,参考图2b,可以由多个云端设备300的处理器302配合实现推荐装置100的功能,这种情况下,存储器304中存储有接收模块110、资源选择模块120、发送模块130、组件负载模型140、系统负载分配模型150以及模型训练模块160中的一个或多个。

处理器302通过通信接口303从客户端200接收到云系统资源集合推荐请求后,可以调用存储器304中存储的模块实现本申请实施例提供的云系统资源集合推荐方法,为用户选择云系统资源集合,处理器302可以通过通信接口303向客户端200发送选择的云系统资源集合。

客户端200中处理器202通过通信接口203在接收到云端设备300选择的云系统资源集合后,处理器202可以触发显示屏205向用户显示该选择的云系统资源集合。

无论推荐装置采用哪种系统架构,在本申请实施例中推荐装置中可以配置有两类不同的模型。

一类为组件负载模型140,每个功能组件对应一个组件负载模型140,一个功能组件对应的组件负载模型140是基于已有的各类云系统资源集合中该功能组件的负载情况与该功能组件的性能数据生成的,这样,该功能组件对应的组件负载模型140可以根据输入的该功能组件的负载情况确定该功能组件的性能数据。

其中,功能组件的负载情况可以用功能组件的并发度(也即在某个时刻该功能组件接收的内部请求数量),也可以用其他用于反映功能组件的负载情况的参数表征。

功能组件的性能数据包括以下的任意一个或多个:该功能组件的cpu(包括vcpu)平均利用率、该功能组件的内存平均利用率、该功能组件中磁盘的平均读写速率(input/outputoperationspersecond,iops)。在本申请实施例中仅是以功能组件的性能数据包括上述数据为例进行说明,应需理解的是功能组件的性能数据还可以包括其他能够反映功能组件的性能的数据。

该功能组件的cpu(包括vcpu)平均利用率等于该功能组件中所有实例(一个实例为一个虚拟机或一个物理机)的cpu利用率的平均值,一个实例的cpu的利用率反映一段时间内cpu运行时长占总时长的比重。

功能组件的内存平均利用率该功能组件中被占用的内存与该功能组件总的内存的比重。该功能组件中磁盘的平均iops等于该功能组件中所有实例的磁盘的iops的平均值,一个实例的磁盘的iops为磁盘每秒的读写次数。

上述三种功能组件的性能数据仅是举例,本申请实施例并不限定功能组件的性能数据的具体数据类型,凡是可以反映功能组件的性能的数据均适用于本申请实施例。

另一类为系统负载分配模型150,一种云系统资源集合对应一个系统负载分配模型150,一种云系统资源集合对应一个系统负载分配模型150是基于已有的该云系统资源集合的负载情况与该云系统资源集合中各个功能组件的负载情况生成的,这样,该云系统资源集合对应的系统负载分配模型150可以根据云系统资源集合的负载情况确定该云系统资源集合中各个功能组件的负载情况。

其中,云系统资源集合的负载情况可以用云系统资源集合的并发度(也即在某时刻云系统接收的外部请求的数量),还可以用其他用于反映云系统资源集合的负载情况的参数表征。在本申请实施例中,以云系统资源集合的并发度表征云系统资源集合的负载情况。功能组件的负载情况的表征方式可参见前述说明,此处不再赘述。

应需理解的是,云系统资源集合中的并发度中涉及到的请求为外部请求,所谓外部请求是指由云系统资源集合外的设备或用户发起的请求。例如为用户在需要云服务时所触发的请求。功能组件的并发度涉及的请求为功能组件发起的内部请求,所谓内部请求是指云系统资源集合内部的功能组件发起的请求。举例来说,以云系统资源集合为用户提供的云服务为网页服务,该云系统资源集合可以分为三个功能组件,分为前端组件、后端组件以及数据库组件,用户所见的网页由前端组件提供的,用户点击网页中的图片、链接以及图标等后台的网页的转换操作是由后台组件执行的;而数据库组件中保存了网页的相关信号,如网页中的文字、图片、以及该网页可跳转的网页信息。当用户点击网页中的图片、链接、以及图标时,触发前端组件向后端组件发起应用程序编程接口(applicationprogramminginterface,api)请求,该api请求是由用户触发的,为外部请求;后端组件收到前端组件的api请求后对数据库组件发起数据查询请求,后端组件将数据库组件反馈的查询结果返回给前端组件,这里数据查询请求为云系统资源集合中功能组件自己触发的api请求,为内部请求。

推荐装置中配置有上述两类不同的模型,资源选择模块120可以基于这两类不同的模型,根据用户对云系统资源集合的需求(如云系统资源集合所需支持的云服务类型以及用户对该云系统资源集合的性能需求),选取满足该需求的云系统资源集合。本申请实施例并不限定模型的类型,这两类不同的模型可以神经网络模型,也可以是基于统计的机器学习算法所建立的模型,比如基于多项式回归算法、岭回归算法、弹性网回归算法等算法建立的模型。资源选择模块120选择满足该需求的云系统资源集合的具体细节将在下文中进行说明。

下面先以上述两类模型是神经网络模型为例,对上述两类的模型的训练方式进行说明,之后再对资源选择模块120确定满足该需求的云系统资源集合的具体细节进行说明。

一、神经网络模型的训练方式。

在本申请实施例中并不限定训练这两类神经网络模型的装置,可以是推荐装置中包括模型训练模块160对这两类神经网络模型进行训练。也可以是其他装置对这两类神经网络模型进行训练,并在训练完成后,将训练完成的这两类神经网络模型配置在推荐装置中的,本申请实施例中仅是以模型训练模块160对这两类神经网络模型进行训练为例进行说明。

如图3所示,为组件负载模型140以及系统负载分配模型150的训练方法示意图,该方法包括:

步骤301:模型训练模块160从已有的云系统资源集合中收集数据,收集的数据可以划分为两类,一类为云系统资源集合的结构数据,另一类为云系统资源集合的运行数据。

1)、云系统资源集合的结构数据用于指示该云系统资源集合所支持的云服务、该云系统资源集合中功能组件的组成以及每个功能组件的资源配置,云系统资源集合的结构数据包括以下的任意一个或多个:每个云系统资源集合所支持的云服务、每个云系统资源集合中包括的功能组件、每个云系统资源集合中各个功能组件中的虚拟机的数量、物理机的数量、每个虚拟机/物理机的cpu(包括vcpu)的数量、每个虚拟机/物理机的内存容量、每个虚拟机/物理机的磁盘容量。

2)、云系统资源集合的运行数据为在该云系统资源集合运行过程中收集的数据,该运行数据可以表征该云系统资源集合整体的性能,以及具体到该云系统资源集合内部,各个功能组件的性能,云系统资源集合的运行数据包括以下的任意一个或多个:云系统资源集合的api调用记录,该云系统资源集合中各个功能组件中各实例的cpu利用率、内存利用率、以及磁盘iops。

本申请实施例并不限定云系统资源集合的性能数据包括的数据类型,云系统资源集合的性能数据包括的数据类型与需要训练的组件负载模型140有关,当组件负载模型140除了确定该功能组件的cpu(包括vcpu)平均利用率、该功能组件的内存平均利用率、该功能组件中磁盘的平均读写速率以外还可以确定其他性能数据时,模型训练模块160收集的云系统资源集合的性能数据也需要包括相同类型的性能数据,或能够计算出该其他性能数据的数据。本申请实施例仅是以的云系统资源集合的性能数据包括各个功能组件中各实例的cpu利用率、内存利用率、以及磁盘iops为例进行说明。

api调用记录中记录了云系统资源集合处理的每个api请求(包括该云系统资源集合执行的任一外部请求以及该云系统资源集合内部触发的任一内部请求)执行信息,如api请求的标识(identity,id)、api请求的触发时间、api请求的结束时间、api请求的返回结果等。

步骤302:模型训练模块160整理收集到的数据,分别生成组件负载模型140的训练集以及系统负载分配模型150的训练集。

由于每个组件负载模型140与一个功能组件对应,每个系统负载分配模型150与一个云系统资源集合对应;也就是说,当存在多个功能组件时,模型训练模块160需要生成每个功能组件对应的组件负载模型140的训练集;当存在多个云系统资源集合时,模型训练模块160需要生成每个云系统资源集合对应的组件负载模型140的训练集。

以功能组件a对应的组件负载模型140为例,对组件负载模型140的训练集中包括的数据进行说明,功能组件a对应的组件负载模型140的训练集包括功能组件a的并发度、功能组件a中实例数量、功能组件a中单个实例的cpu(包括vcpu)的数量、功能组件a中单个实例的内存容量、功能组件a中单个实例的磁盘容量;功能组件a中cpu(包括vcpu)的平均利用率、功能组件a中内存的平均利用率、功能组件a中磁盘的平均读写速率。

需要说明的是,本申请实施例以功能组件a的每一个实例的cpu数量、内存容量以及磁盘容量相同为例,如果该功能组件a中存在多种不同的实例,每种实例的cpu数量、内存容量或磁盘容量不同,则组件负载模型140的训练集中需要包括每种实例的cpu数量、内存容量或磁盘容量。

模型训练模块160为了生成组件负载模型140的训练集,需要对收集到的数据进行进一步整理,例如,模型训练模块160从api调用记录中获取时刻1云系统资源集合中功能组件接收的内部请求数量确定时刻1的功能组件a的并发度;模型训练模块160分析云系统资源集合的结构数据确定功能组件a中实例数量、功能组件a中单个实例的cpu(包括vcpu)的数量、功能组件a中单个实例的内存容量、以及功能组件a中单个实例的磁盘容量;模型训练模块160确定时刻1该云系统资源集合中各个功能组件中各实例的cpu利用率、内存利用率、以及磁盘iops,通过求解平均值的方式确定时刻1对应的功能组件a中cpu(包括vcpu)的平均利用率、功能组件a中内存的平均利用率、功能组件a中磁盘的平均读写速率。

应需理解的是,组件负载模型140的训练集中可以按照时刻分为多组训练数据,需要保证后续训练组件负载模型140时,输入的数据与预设的输出的数据对应于相同时刻。

作为一种可能的实施方式,模型训练模块160可以对所支持的云服务、功能组件、功能组件中各实例进行编号形成组织树,将收集到的数据整合到该组织树中,这样可以通过相应的编号,查询到对应的数据,能够较快速的生成组件负载模型140的训练集。

以云系统资源集合1对应的系统负载分配模型150为例,对系统负载分配模型150的训练集包括的数据进行说明,云系统资源集合1对应的系统负载分配模型150的训练集包括云系统资源集合1的并发度、云系统资源集合1的并发度下云系统资源集合1中包括的各个功能组件的并发度。

模型训练模块160为了生成系统负载分配模型150的训练集,需要对收集到的数据进行进一步整理,例如,模型训练模块160从api调用记录中获取时刻1云系统资源集合中各个功能组件接收的内部请求数量确定时刻1的各个功能组件a的并发度,获取时刻1云系统资源集合接收的外部请求数量确定时刻1的云系统资源集合的并发度。

应需理解的是,系统负载分配模型150的训练集中可以按照时刻分为多组训练数据,需要保证后续训练系统负载分配模型150时,输入的数据与预设的输出的数据对应于相同时刻。

模型训练模块160在生成组件负载模型140的训练集以及系统负载分配模型150的训练集之后,可以对各个组件负载模型140和系统负载分配模型150进行训练,如下步骤303为组件负载模型140的训练过程,步骤304为系统负载分配模型150的训练过程。

步骤303:模型训练模块160根据组件负载模型140的训练集,对组件负载模型140进行训练。

以功能组件a对应的组件负载模型140为例,模型训练模块160将功能组件a对应的组件负载模型140的训练集中功能组件a的并发度、功能组件a中的实例数量、每个实例的cpu(包括vcpu)的数量、每个实例的内存容量、每个实例的磁盘容量为输入值,功能组件a中cpu(包括vcpu)的平均利用率、功能组件a中内存的平均利用率、功能组件a中磁盘的平均读写速率为输出值,采用监督学习的方式对功能组件a对应的组件负载模型140进行训练,直至损失函数收敛。

步骤304:模型训练模块160根据系统负载分配模型150的训练集,对系统负载分配模型150进行训练。

以云系统资源集合1对应的系统负载分配模型150为例,模型训练模块160将云系统资源集合1对应的系统负载分配模型150的训练集中的云系统资源集合1的并发度作为输入值,将输入的云系统资源集合1的并发度下云系统资源集合1中各个功能组件的并发度作为输出值,采用监督学习的方式对云系统资源集合1对应的系统负载分配模型150进行训练,直至损失函数收敛。

二、推荐装置确定满足该用户需求的云系统资源集合的方式。

如图4所示,为本申请实施例提供的系统推荐方法的示意图,该方法包括:

步骤401:接收模块110接收由用户触发的云系统资源集合推荐请求,该云系统资源集合推荐请求中包括用户对云系统资源集合的需求(简称为用户需求),该需求中包括云系统资源集合所需要支持的云服务,还可以包括下列信息的任意一种或多种:云系统资源集合需支持的并发度、云系统资源集合需达到的cpu的平均利用率、云系统资源集合需达到的内存平均利用率、云系统资源集合需达到的磁盘的平均读写速率、云系统资源集合的租金范围以及云系统资源集合中功能组件需达到的cpu的平均利用率、内存平均利用率以及磁盘的平均读写速率。

如图5所示,为客户端200中显示屏或计算设备10中的显示屏显示的一个选择界面,在该界面中,提示用户选择云系统资源集合所需支持的云服务。用户可以通过点击相应的选项进行选择。

进一步地,如图6为客户端200中显示屏或计算设备10中的显示屏向用户显示的另一个选择界面,用户可以对该云系统集合的负载情况(如云系统资源集合所需要支持的并发度)以及性能(云系统资源集合需达到的cpu的平均利用率、云系统资源集合需达到的内存平均利用率、云系统资源集合需达到的磁盘的平均读写速率)进行设置。如图6的选项中还包括默认,当用户对该云系统集合的负载情况以及性能没有需求时,或无法确定该云系统集合需达到的负载情况以及性能,可以选择默认。该“默认”选项对应的云系统资源集合需支持的并发度、云系统资源集合需达到的cpu的平均利用率、云系统资源集合需达到的内存平均利用率或云系统资源集合需达到的磁盘的平均读写速率为预先设置的值,本申请实施例并不限定预先设置的值的确定方式,可以是经验值,也可以已存在的所有的支持该云服务的云系统资源集合对应数据的平均值。

用户也可以只对云系统资源集合所需要支持的并发度、云系统资源集合需达到的cpu的平均利用率、云系统资源集合需达到的内存平均利用率、云系统资源集合需达到的磁盘的平均读写速率中的一个或多个参数进行设置,对于用户未设置的参数可以默认为无具体需求、或将用户未设置的参数设置为预设值,该预设值可以是经验值,也可以是根据用户已设置的参数匹配的值。

作为一种可能的实施方式,用户除了能够对云系统资源集合所需要支持的并发度、云系统资源集合需达到的cpu的平均利用率、云系统资源集合需达到的内存平均利用率、云系统资源集合需达到的磁盘的平均读写速率中的一个或多个参数进行设置,还可以具体到云系统资源集合的内部,对云系统资源集合中的一个或多个功能组件需达到的cpu的平均利用率,一个或多个功能组件需达到的内存平均利用率以及一个或多个功能组件需达到的磁盘的平均读写速率中的一个或多个参数进行设置。而设置的前提是用户可以先确定云系统资源集合中包括的功能组件的类型,例如,用户可以在客户端200中显示屏或计算设备10中的显示屏向用户显示的界面中配置云系统资源集合推荐请求所述请求的支持网页服务的云系统资源集合中包括前端组件、后端组件以及数据库组件。进一步的,用户对客户端200中显示屏或计算设备10中的显示屏向用户显示的界面中配置该云系统资源集合中一个或多个功能组件需达到的cpu的平均利用率,一个或多个功能组件需达到的内存平均利用率以及一个或多个功能组件需达到的磁盘的平均读写速率的一个或多个参数,例如,用户可以在客户端200中显示屏或计算设备10中的显示屏向用户显示的界面中配置前端组件需达到的cpu的平均利用率、需达到的内存平均利用率以及磁盘的平均读写速率。

如图7所示,为客户端200中显示屏或计算设备10中的显示屏向用户显示的另一个选择界面,用户可以选择该云系统资源集合付费模式(月结、天结以及年结)以及具体费用。

用户通过点击相应的选项,可以触发客户端200向推荐装置发送云系统资源集合推荐请求。

步骤402:接收模块110在接收到该系统资源集合推荐请求后,资源选择模块120可以基于已有的支持该云服务的云系统资源集合中选择满足用户需求的目标云系统资源集合。

资源选择模块120可以利用预先训练好的用于支持该云服务的云系统资源集合对应的系统负载分配模型150以及各个功能组件对应的组件负载模型140,选择满足用户需求的云系统资源集合。

以系统资源集合推荐请求包括云系统资源集合所需要支持的云服务(以支持网页服务为例),云系统资源集合需支持的并发度(以300并发为例)、云系统资源集合需达到的cpu的平均利用率(以40%为例)对选择满足用户需求的云系统资源集合的方式进行说明。

第一步:资源选择模块120可以先基于已有的用于支持该云服务的云系统资源集合对应的系统负载分配模型150,根据云系统资源集合需支持的并发度确定已有的用于支持该云服务的云系统资源集合中各个功能组件的并发度。

示例性的,资源选择模块120可以根据云系统资源集合推荐请求中携带的云系统资源集合所需要提供的云服务,查询已有的用于支持该云服务的云系统资源集合对应的系统负载分配模型150。

对于已有的任一个用于支持该云服务的云系统资源集合对应的系统负载分配模型150,资源选择模块120可以将云系统资源集合需支持的并发度输入到该云系统资源集合对应的系统负载模型中,可以确定该云系统资源集合中每个功能组件的并发度。

例如,已有的云系统资源集合中存在三种用于支持网页服务的云系统资源集合,分别为云系统资源集合1、云系统资源集合2以及云系统资源集合3;云系统资源集合1中包括功能组件a、功能组件b以及功能组件c;云系统资源集合2中包括功能组件a、以及功能组件b;云系统资源集合3中包括功能组件a、功能组件b、功能组件c以及功能组件d。

其中,云系统资源集合1对应的系统负载分配模型f1(系统并发度)=(功能组件a并发度,功能组件b并发度,功能组件c并发度)。

云系统资源集合2对应的系统负载分配模型f2(系统并发度)=(功能组件a并发度,功能组件b并发度)。

云系统资源集合3对应的系统负载分配模型f3(系统并发度)=(功能组件a并发度,功能组件b并发度,功能组件c并发度,功能组件d并发度)。

资源选择模块120将云系统资源集合需支持的并发度(300)输入到系统负载分配模型f1(系统并发度)中可以获取功能组件a并发度f1(300)-a、功能组件b并发度f1(300)-b、以及功能组件c并发度f1(300)-c。

资源选择模块120将云系统资源集合需支持的并发度(300)输入到系统负载分配模型f2(300)中可以获取功能组件a并发度f2(300)-a、功能组件b并发度f2(300)-b。

资源选择模块120将云系统资源集合需支持的并发度(300)输入到系统负载分配模型f3(系统并发度)中可以获取功能组件a并发度f3(300)-a、功能组件b并发度f3(300)-b、功能组件c并发度f3(300)-c以及功能组件d并发度f4(300)-d。

第二步、资源选择模块120基于组件负载模型140,根据已有的用于支持该云服务的云系统资源集合中各个功能组件的并发度确定已有的用于支持该云服务的云系统资源集合中各个功能组件cpu的平均利用率。

对于已有的任一个用于提供该云服务的云系统资源集合,资源选择模块120可以将第一步中计算的该云系统资源集合中每个功能组件的并发度输入至对应的每个功能组件对应的组件负载模型140中,确定每个功能组件cpu的平均利用率。

仍以云系统资源集合推荐请求中携带的云系统资源集合所需要提供的云服务为网页应用为例,已有的云系统资源集合中存在三种用于网页应用的云系统资源集合,共有四种不同的功能组件,分别为功能组件a、功能组件b、功能组件c以及功能组件d。

功能组件a对应的组件负载模型fa(功能组件a的并发度,功能组件a的单实例cpu用量,功能组件a的单实例内存容量,功能组件a的单实例磁盘容量,功能组件a的实例数)=(功能组件a的平均cpu利用率,功能组件a的平均内存利用率,功能组件a的平均磁盘读写速度)。

功能组件b对应的组件负载模型fb(功能组件b的并发度,功能组件b的单实例cpu用量,功能组件b的单实例内存容量,功能组件b的单实例磁盘容量,功能组件b的实例数)=(功能组件b的平均cpu利用率,功能组件b的平均内存利用率,功能组件b的平均磁盘读写速度)。

功能组件c对应的组件负载模型fc(功能组件c的并发度,功能组件c的单实例cpu用量,功能组件c的单实例内存容量,功能组件c的单实例磁盘容量,功能组件c的实例数)=(功能组件c的平均cpu利用率,功能组件c的平均内存利用率,功能组件c的平均磁盘读写速度)。

功能组件d对应的组件负载模型fd(功能组件d的并发度,功能组件d的单实例cpu用量,功能组件d的单实例内存容量,功能组件d的单实例磁盘容量,功能组件d的实例数)=(功能组件d的平均cpu利用率,功能组件d的平均内存利用率,功能组件d的平均磁盘读写速度)。

对于云系统资源集合1,资源选择模块120可以将第一步中确定的功能组件a并发度f1(300)-a输入至功能组件a对应的组件负载模型fa,将功能组件b并发度f1(300)-b输入至功能组件b对应的组件负载模型fb,将功能组件c并发度f1(300)-c输入至功能组件c对应的组件负载模型fc。根据功能组件a对应的组件负载模型fa输出值可以确定功能组件a的平均cpu利用率,根据功能组件b对应的组件负载模型fb输出值可以确定功能组件b的平均cpu利用率,根据功能组件c对应的组件负载模型fc输出值可以确定功能组件c的平均cpu利用率。

对于云系统资源集合2,资源选择模块120可以将第一步中确定的功能组件a并发度f2(300)-a输入至功能组件a对应的组件负载模型fa,将功能组件b并发度f2(300)-b输入至功能组件b对应的组件负载模型fb。根据功能组件a对应的组件负载模型fa输出值可以确定功能组件a的平均cpu利用率,根据功能组件b对应的组件负载模型fb输出值可以确定功能组件b的平均cpu利用率。

对于云系统资源集合3,资源选择模块120可以将第一步中确定的功能组件a并发度f3(300)-a输入至功能组件a对应的组件负载模型fa,将功能组件b并发度f3(300)-b输入至功能组件b对应的组件负载模型fb,将功能组件c并发度f3(300)-c输入至功能组件c对应的组件负载模型fc,将功能组件d并发度f4(300)-d输入至功能组件d对应的组件负载模型fd。根据功能组件a对应的组件负载模型fa输出值可以确定功能组件a的平均cpu利用率,根据功能组件b对应的组件负载模型fb输出值可以确定功能组件b的平均cpu利用率,根据功能组件c对应的组件负载模型fc输出值可以确定功能组件c的平均cpu利用率,根据功能组件d对应的组件负载模型fd输出值可以确定功能组件d的平均cpu利用率。

第三步、资源选择模块120选取云系统资源集合中各个功能组件的cpu的平均利用率均大于云系统资源集合需支持的cpu的平均利用率的云系统资源集合,该云系统资源集合即为目标资源集合。

资源选择模块120也可以选取云系统资源集合中各个功能组件的cpu的平均利用率的均值大于云系统资源集合需支持的cpu的平均利用率的云系统资源集合,该云系统资源集合即为目标资源集合。

若云系统资源集合推荐请求中还携带有租金范围,资源选择模块120还可以从满足云系统资源集合cpu的平均利用率的云系统资源集合中进一步筛选出满足租金范围的目标云系统资源集合。当然,资源选择模块120也可以在执行第一步之前,将不满足租金范围的云系统资源集合剔除,只针对满足租金范围的云系统资源集合执行第一步。

步骤403:发送模块130将选取的目标云系统资源集合反馈给用户。

例如,发送模块130可以将选取的目标云系统资源集合反馈给客户端200,客户端200接收到发送模块130反馈的云系统资源集合,可以将发送模块130反馈的目标云系统资源集合推送给用户,以便用户进行查看。

又例如,发送模块130可以将选取的目标云系统资源集合通过计算设备10中的显示屏推送给用户,以便用户进行查看。

如图8所示,为客户端200中显示屏或计算设备10中的显示屏向用户显示的,客户端200可以将发送模块130反馈的云系统资源集合进行罗列,呈现给用户。客户端200可以采用价格升序或降序的方式对发送模块130反馈的目标云系统资源集合进行排列。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上所述,仅为本发明的具体实施方式。熟悉本技术领域的技术人员根据本发明提供的具体实施方式,可想到变化或替换,都应涵盖在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1