一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种多策略竞争方法、装置及系统与流程

2022-06-05 15:37:36 来源:中国专利 TAG:
1.本技术涉及计算机
技术领域
:,尤其涉及一种多策略竞争方法、装置及系统。
背景技术
::2.在用户系统正常工作之前,通常需要先对用户系统进行参数配置,不同的参数将会影响用户系统的性能,因此,常常需要为用户系统寻求最优的参数,即参数寻优,并使用最优的参数对用户系统进行配置。在现有技术中,有多种策略可以对用户系统的参数进行寻优,例如,专家规则、算法等。不同的策略具有的优势也不同,例如,专家规则具有良好的鲁棒性,算法具有良好的探索性。3.但是,在现有技术条件下,为了保证策略的通用性,通常依据专家对业务的了解,以折中的方式设定一个通用的策略以应用在不同的场景下。此方法虽然提升了策略的通用性,但会牺牲不同场景下该策略的应用效果,导致在用户系统中应用该通用的策略时,随着应用场景的改变,用户系统的性能将会变得不稳定或者用户系统的性能将会变差。技术实现要素:4.本技术实施例公开了一种多策略竞争方法、装置及系统,使得基于伸缩组的扩容以及减容需求能够实现应用于伸缩组的策略的灵活切换,以使伸缩组在不同需求下能尽量保持最优的运行状态。5.第一方面,本技术提供了一种多策略竞争方法,该方法包括:在需要对伸缩组扩容时,从多条扩容策略中确定一条或多条扩容策略;基于确定的扩容策略为伸缩组增加实例。6.上述方法中,在伸缩组需要扩容时,多条扩容策略竞争以确定一条或多条扩容策略对伸缩组进行扩容,实现了从多条扩容策略中动态地选择对应的策略,以使伸缩组的性能尽量保持最优的状态。7.在第一方面的一种可能的实现方式中,基于规则从多条扩容策略中确定一条或多条扩容策略。8.上述方法中,可以通过规则实现从多条扩容策略中决策出一条或多条策略,即将多条扩容策略中满足预设规则的扩容策略作为确定的扩容策略,实现了从多条扩容策略中动态地选择对应的策略。9.在第一方面的一种可能的实现方式中,基于伸缩组的历史的状态指标或者当前的状态指标,从多条扩容策略中确定一条或多条扩容策略。10.实施上述实现方式,状态指标反映了伸缩组的性能状态,状态指标包括cpu利用率、内存利用率、网络带宽利用率中的一种或多种,利用伸缩组的历史的状态指标或者当前的状态指标进行多条扩容策略的竞争以获得确定的扩容策略,实现了从多条扩容策略中动态地选择对应的策略。11.在第一方面的一种可能的实现方式中,使用算法或者机器学习从多条扩容策略中确定一条或多条扩容策略。12.实施上述实现方式,通过算法或机器学习的方式实现从多条扩容策略中确定一条或多条扩容策略,使得多条扩容策略之间可以相互学习,实现在多条扩容策略的动态决策中每条扩容策略有机会对伸缩组进行扩容。13.在第一方面的一种可能的实现方式中,使用评分参数从多条扩容策略中确定一条或多条扩容策略,评分参数包括平均收益。14.实施上述实现方式,采用评分机制对多条扩容策略进行评分,基于评分从多条扩容策略中获得确定的扩容策略,实现了对多条扩容策略的动态决策。影响评分的评分参数有平均收益,平均收益反映了对应扩容策略应用于伸缩组后伸缩组的性能状态。15.在第一方面的一种可能的实现方式中,评分参数还包括平均应用间隔和平均违规间隔中的至少一种。16.实施上述实现方式,在平均收益的基础上,还可以结合平均应用间隔和平均违规间隔中的至少一种对每条扩容策略进行评分,平均应用间隔能有效保护未应用于伸缩组的扩容策略,可提高未应用于伸缩组的扩容策略的胜出概率。平均违规间隔反映了应用于伸缩组的扩容策略的稳定性。17.在第一方面的一种可能的实现方式中,状态指标包括cpu利用率、内存利用率、网络带宽利用率中的一种或者多种。18.在第一方面的一种可能的实现方式中,多条扩容策略是基于用户在界面上的操作确定的。19.实施上述实现方式,用户可在界面上进行相应操作以确定多条扩容策略,提升了用户体验。20.在第一方面的一种可能的实现方式中,伸缩组为提供直播服务的直播伸缩组,状态指标来自直播伸缩组。21.实施上述实现方式,伸缩组可以为提供直播服务的直播伸缩组,以使直播伸缩组的性能尽量保持最优状态。22.在第一方面的一种可能的实现方式中,伸缩组为提供点播服务的点播伸缩组,状态指标来自点播伸缩组。23.实施上述实现方式,伸缩组可以为提供点播服务的点播伸缩组,以使点播伸缩组的性能尽量保持最优状态。24.第二方面,本技术提供了一种多策略竞争方法,该方法包括:在需要对伸缩组减容时,从多条移出策略中确定一条或多条移出策略;基于确定的移出策略从伸缩组移出实例。25.上述方法中,在伸缩组需要减容时,多条移出策略竞争以确定一条或多条移出策略对伸缩组进行减容,实现了从多条扩容策略中动态地选择对应的策略,以使伸缩组的性能尽量保持最优的状态。26.在第二方面的一种可能的实现方式中,基于规则从多条移出策略中确定一条或多条移出策略。27.上述方法中,可以通过规则实现从多条移出策略中决策出一条或多条移出策略,即将多条移出策略中满足预设规则的移出策略作为确定的移出策略,实现了从多条移出策略中动态地选择对应的策略。28.在第二方面的一种可能的实现方式中,策略确定模块,用于基于伸缩组的历史的状态指标或者当前的状态指标,从多条移出策略中确定一条或多条移出策略。29.实施上述实现方式,状态指标反映了伸缩组的性能状态,状态指标包括cpu利用率、内存利用率、网络带宽利用率中的一种或多种,利用伸缩组的历史的状态指标或者当前的状态指标进行多条移出策略的竞争以获得确定的移出策略,实现了从多条移出策略中动态地选择对应的策略。30.在第二方面的一种可能的实现方式中,使用算法或者机器学习从多条移出策略中确定一条或多条移出策略。31.实施上述实现方式,通过算法或机器学习的方式实现从多条移出策略中确定一条或多条移出策略,使得多条移出策略之间可以相互学习,以使在多条移出策略的动态决策中每条移出策略都有机会对伸缩组进行减容。32.在第二方面的一种可能的实现方式中,使用评分参数从多条移出策略中确定一条或多条移出策略,评分参数包括平均收益。33.实施上述实现方式,采用评分机制对多条移出策略进行评分,基于评分从多条移出策略中获得确定的移出策略,实现了对多条移出策略的动态决策。影响评分的评分参数有平均收益,平均收益反映了对应的移出策略应用于伸缩组后伸缩组的性能状态。34.在第二方面的一种可能的实现方式中,评分参数还包括平均应用间隔和平均违规间隔中的至少一种。35.实施上述实现方式,在平均收益的基础上,还可以结合平均应用间隔和平均违规间隔中的至少一种对每条移出策略进行评分,平均应用间隔能有效保护未应用于伸缩组的移出策略,可提高未应用于伸缩组的移出策略的胜出概率。平均违规间隔反映了应用于伸缩组的移出策略的稳定性。36.在第二方面的一种可能的实现方式中,状态指标包括cpu利用率、内存利用率、网络带宽利用率中的一种或者多种。37.在第二方面的一种可能的实现方式中,多条移出策略是基于用户在界面上的操作确定的。38.实施上述实现方式,用户可在界面上进行相应操作以确定多条移出策略,提升了用户体验。39.在第二方面的一种可能的实现方式中,伸缩组为提供直播服务的直播伸缩组,状态指标来自直播伸缩组。40.实施上述实现方式,伸缩组可以为提供直播服务的直播伸缩组,以使直播伸缩组的性能尽量保持最优状态。41.在第二方面的一种可能的实现方式中,伸缩组为提供点播服务的点播伸缩组,状态指标来自点播伸缩组。42.实施上述实现方式,伸缩组可以为提供点播服务的点播伸缩组,以使点播伸缩组的性能尽量保持最优状态。43.第三方面,本技术提供了一种弹性伸缩系统,该系统包括:策略确定模块,用于在需要对伸缩组扩容时,从多条扩容策略中确定一条或多条扩容策略;策略执行模块,用于基于确定的扩容策略为伸缩组增加实例。44.在第三方面的一种可能的实现方式中,策略确定模块,用于基于规则从多条扩容策略中确定一条或多条扩容策略。45.在第三方面的一种可能的实现方式中,策略确定模块,用于基于伸缩组的历史的状态指标或者当前的状态指标,从多条扩容策略中确定一条或多条扩容策略。46.在第三方面的一种可能的实现方式中,策略确定模块,用于使用算法或者机器学习从多条扩容策略中确定一条或多条扩容策略。47.在第三方面的一种可能的实现方式中,策略确定模块,用于使用评分参数从多条扩容策略中确定一条或多条扩容策略,评分参数包括平均收益。48.在第三方面的一种可能的实现方式中,评分参数还包括平均应用间隔和平均违规间隔中的至少一种。49.在第三方面的一种可能的实现方式中,状态指标包括cpu利用率、内存利用率、网络带宽利用率中的一种或者多种。50.在第三方面的一种可能的实现方式中,多条扩容策略是基于用户在界面上的操作确定的。51.在第三方面的一种可能的实现方式中,伸缩组为提供直播服务的直播伸缩组,状态指标来自直播伸缩组。52.在第三方面的一种可能的实现方式中,伸缩组为提供点播服务的点播伸缩组,状态指标来自点播伸缩组。53.第四方面,本技术提供了一种弹性伸缩系统,该系统包括:策略确定模块,用于在需要对伸缩组减容时,从多条移出策略中确定一条或多条移出策略;策略执行模块,用于基于确定的移出策略从伸缩组移出实例。54.在第四方面的一种可能的实现方式中,策略确定模块,用于基于规则从多条移出策略中确定一条或多条移出策略。55.在第四方面的一种可能的实现方式中,策略确定模块,用于基于伸缩组的历史的状态指标或者当前的状态指标,从多条移出策略中确定一条或多条移出策略。56.在第四方面的一种可能的实现方式中,策略确定模块,用于使用算法或者机器学习从多条移出策略中确定一条或多条移出策略。57.在第四方面的一种可能的实现方式中,策略确定模块,用于使用评分参数从多条移出策略中确定一条或多条移出策略,评分参数包括平均收益。58.在第四方面的一种可能的实现方式中,评分参数还包括平均应用间隔和平均违规间隔中的至少一种。59.在第四方面的一种可能的实现方式中,状态指标包括cpu利用率、内存利用率、网络带宽利用率中的一种或者多种。60.在第四方面的一种可能的实现方式中,多条移出策略是基于用户在界面上的操作确定的。61.在第四方面的一种可能的实现方式中,伸缩组为提供直播服务的直播伸缩组,状态指标来自直播伸缩组。62.在第四方面的一种可能的实现方式中,伸缩组为提供点播服务的点播伸缩组,状态指标来自点播伸缩组。63.第五方面,本技术提供了一种多策略竞争方法,应用于计算设备,计算设备提供有界面,该方法包括:接收用户在界面上的第一操作,第一操作用于指示多个弹性伸缩策略的类型为算法和规则中的一个或多个;接收用户在界面上的第二操作,第二操作用于设置多个弹性伸缩策略的参数;响应于第一操作和第二操作,确定多个弹性伸缩策略,多个弹性伸缩策略的评分中最高评分对应的弹性伸缩策略胜出,胜出的弹性伸缩策略对应的配置参数用于配置终端的用户系统。64.上述方法中,基于用户的操作确定多个弹性伸缩策略,提升了用户体验。多个弹性伸缩策略实时竞争以确定该时刻下的优胜策略,实现了多个弹性伸缩策略的动态切换。65.在第五方面的一种可能的实现方式中,多个弹性伸缩策略的评分由评分参数确定,目标策略为多个弹性伸缩策略中的任意一个,评分参数包括目标策略的平均收益,目标策略的平均收益为目标策略的历史多次的收益之和与目标策略的应用次数的比值,目标策略的收益为对用户系统应用了目标策略对应的目标配置参数后的各状态指标的加权求和,目标策略的应用次数为目标策略的胜出次数加1。66.在第五方面的一种可能的实现方式中,评分参数还包括目标策略的平均应用间隔和目标策略的平均违规间隔中的一个或多个,目标策略的平均应用间隔为多个弹性伸缩策略中各个弹性伸缩策略的应用次数之和与目标策略的应用次数的比值,策略的平均违规间隔为目标策略的胜出次数与目标策略的违规次数加1后的比值,目标策略违规是指各状态指标中至少有一个状态指标大于等于指标阈值。67.在第五方面的一种可能的实现方式中,配置参数包括计算节点数量、数据库软件参数中的一种或者多种。68.在第五方面的一种可能的实现方式中,各状态指标包括cpu利用率、内存利用率、网络带宽利用率中的一种或者多种。69.第六方面,本技术提供了一种多策略竞争系统,该系统包括:计算设备获取终端的用户系统的历史状态指标;计算设备向终端发送优胜策略基于历史状态指标输出的配置参数,优胜策略为多个弹性伸缩策略的评分中最高评分对应的弹性伸缩策略,多个弹性伸缩策略是基于用户的输入操作确定的;终端接收配置参数,以及应用配置参数对用户系统进行配置。70.上述方法中,终端基于计算设备确定的优胜策略对应的配置参数对用户系统进行配置,使得用户系统能尽量保持最优的运行状态。71.在第六方面的一种可能的实现方式中,配置参数包括计算节点数量、数据库软件参数中的一种或者多种。72.在第六方面的一种可能的实现方式中,多个弹性伸缩策略中每个弹性伸缩策略的类型为算法或规则。73.在第六方面的一种可能的实现方式中,目标策略为多个弹性伸缩策略中的任意一个,目标策略的评分由评分参数确定,评分参数包括目标策略的平均收益,目标策略的平均收益为目标策略的历史多次的收益之和与目标策略的应用次数的比值,目标策略的收益为对用户系统应用了目标策略对应的目标配置参数后的状态指标的加权求和,目标策略的应用次数为目标策略的胜出次数加1。74.在第六方面的一种可能的实现方式中,评分参数还包括目标策略的平均应用间隔和目标策略的平均违规间隔中的一个或多个,目标策略的平均应用间隔为多个弹性伸缩策略中各个弹性伸缩策略的应用次数之和与目标策略的应用次数的比值,策略的平均违规间隔为目标策略的胜出次数与目标策略的违规次数加1后的比值,目标策略违规是指各状态指标中至少有一个状态指标大于等于指标阈值。75.在第六方面的一种可能的实现方式中,多个弹性伸缩策略包括第一候选策略,第一候选策略的类型为算法,配置参数还用于训练第一候选策略的算法参数,以使第一候选策略的训练误差减小,第一候选策略的训练误差为第一候选策略经训练后对应的第一配置参数与配置参数之间的差距。76.在第六方面的一种可能的实现方式中,在应用配置参数对用户系统进行配置后,计算设备还用于接收终端发送的用户系统应用配置参数后的状态指标,在优胜策略的类型为算法时,用户系统应用配置参数后的状态指标用于调整优胜策略的算法参数。77.实施上述实现方式,在优胜策略的类型为算法时,对优胜策略进行调优以调整优胜策略自身的算法参数,使得优胜策略在竞争中不断学习,以使优胜策略针对用户系统的状态指标输出的配置参数最佳。78.在第六方面的一种可能的实现方式中,多个弹性伸缩策略包括第二候选策略,第二候选策略的评分不是最高,当第二候选策略的使用频率小于等于预设频率阈值且第二候选策略的平均训练误差小于等于预设误差阈值时,优胜策略为第二候选策略,第二候选策略的使用频率为第二候选策略的应用次数与多个弹性伸缩策略中各个弹性伸缩策略的应用次数之和的比值。79.实施上述实现方式,通过对某次竞争中未胜出的策略(算法类型)进行训练以调整策略自身的算法参数,使得经过训练后的策略基于用户系统的状态指标输出的配置参数与优胜策略基于用户系统的状态指标输出的配置参数相似,从而可以提高某次竞争中未胜出的策略在未来的竞争中胜出的概率。80.在第六方面的一种可能的实现方式中,在多个弹性伸缩策略的评分中有至少两个弹性伸缩策略的评分均为最高评分的情况下,优胜策略为至少两个弹性伸缩策略中最少胜出次数对应的弹性伸缩策略。81.第七方面,本技术实施例提供了一种计算装置,该计算装置包括处理器和存储器,处理器和存储器通过总线连接或者耦合在一起;其中,存储器用于存储程序指令;所述处理器调用所述存储器中的程序指令,以执行第一方面或者第一方面的任一可能的实现方式中的方法。82.第八方面,本技术实施例提供了一种计算装置,该计算装置包括处理器和存储器,处理器和存储器通过总线连接或者耦合在一起;其中,存储器用于存储程序指令;所述处理器调用所述存储器中的程序指令,以执行第二方面或者第二方面的任一可能的实现方式中的方法。83.第九方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读介质存储用于计算装置执行的程序代码,所述程序代码包括用于执行第一方面或者第一方面的任一可能的实现方式中的方法的指令。84.第十方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读介质存储用于计算装置执行的程序代码,所述程序代码包括用于执行第二方面或者第二方面的任一可能的实现方式中的方法的指令。85.第十一方面,本技术实施例提供了一种计算机软件产品,该计算机程序软件产品包括程序指令,当该计算机软件产品被计算装置执行时,该计算装置执行前述第一方面或者第一方面的任一可能的实施例中的所述方法。该计算机软件产品可以为一个软件安装包,在需要使用前述第一方面的任一种可能的设计提供的方法的情况下,可以下载该计算机软件产品并在计算装置上执行该计算机软件产品,以实现第一方面或者第一方面的任一可能的实施例中的所述方法。86.第十二方面,本技术实施例提供了一种计算机软件产品,该计算机程序软件产品包括程序指令,当该计算机软件产品被计算装置执行时,该计算装置执行前述第二方面或者第二方面的任一可能的实施例中的所述方法。该计算机软件产品可以为一个软件安装包,在需要使用前述第一方面的任一种可能的设计提供的方法的情况下,可以下载该计算机软件产品并在计算装置上执行该计算机软件产品,以实现第二方面或者第二方面的任一可能的实施例中的所述方法。附图说明87.为了更清楚地说明本技术实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。88.图1是本技术实施例提供的一种应用的系统架构;89.图2是本技术实施例提供的一种两个策略竞争过程的示意图;90.图3是本技术实施例提供的又一种三个策略竞争过程的示意图;91.图4是本技术实施例提供的一种多策略竞争的流程示意图;92.图5是本技术实施例提供的一种用户界面示意图;93.图6a是本技术实施例提供的又一种用户界面示意图;94.图6b是本技术实施例提供的又一种用户界面示意图;95.图7是本技术实施例提供的一种弹性伸缩系统的功能结构示意图;96.图8是本技术实施例提供的一种计算装置的结构示意图。具体实施方式97.在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。本技术实施例中的说明书和权利要求书中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。98.用户系统是指用于承载业务的系统其而需要占用一定的计算、网络以及存储资源的系统。例如,用户系统可以是视频云。其中,视频云在直播或点播业务下主要负责视频转码,即将已压缩编码的视频码流转换成另一个视频码流,以适应不同的网络带宽、不同的终端处理能力和不同的用户需求。以提升每个vm的中央处理器(centralprocessingunit,cpu)的利用率。99.以用户系统为视频云为例,在设定视频云参数寻优的策略时,通常具有两种倾向性,一种是激进策略,即使用较少数量的vm,以使每个vm的cpu利用率高,但遇到高峰期会违反sla,风险高;另一种是保守策略,即使用较多数量的vm,以使系统遇到高峰期时系统更加稳定,满足sla,但单个vm的cpu利用率较低,造成资源浪费。另外,造成高峰期的原因也多种多样,例如,晚高峰、节假日、重大比赛、重大活动等,可以看出,高峰期的到来无法预测,也就无法简单通过时间上的预测在不同场景下切换不同的策略。因此,业务专家通常会在激进策略和保守策略之间设定一个折中的策略,以在满足sla的前提下尽可能提高cpu的利用率,但仍然无法避免会出现cpu利用率低的情况,或者,高峰期违反sla的情况。100.本技术提出一种多策略竞争方法,各个策略之间实时竞争,随着用户系统的应用场景的改变,每次竞争对应有一个最优的策略胜出,从而实现了用户系统的策略随着场景的改变而灵活切换,使得用户系统尽量能保持最优的运行状态。101.下面描述本技术实施例提供的一种系统架构。参见图1,图1示例性地给出了本技术实施例提供的一种系统架构图。如图1所示,该系统包括计算设备110以及服务器集合120。其中,计算设备110可以与服务器集合120通过无线或者有线的方式进行通信。102.计算设备110包括云管理平台111、操作系统112以及硬件113。其中,云管理平台111可以是用于提供iaas服务的aws(amazonwebservice)、openstack、cloudstack,用于提供paas服务的hadoop、apachemesos,用于提供saas服务的kubernetes、swarm等等,此处不作具体限定。操作系统112可以是嵌入式操作系统、类unix操作系统等等,例如,嵌入式操作系统可以是vxworks、ecos、symbianos及palmos,图形操作系统可以是microsoftwindows以及macosx等等,类unix操作系统可以是systemv、bsd与linux等等。硬件113可以包括物理网卡。云管理平台111中部署有策略确定模块。103.在图1中,计算设备110是采用集中式设置,在其他的实施例中,计算设备110也可以采用分布式设置。例如,在采用集中式设置时,将计算设备110的功能都集中到一台超级服务器上实现,在采用分布式设置时,将计算设备110的功能都分布在多台普通服务器上实现,此处不作具体限定。104.计算设备110内存储有用户预先输入的多条策略,例如,策略1、策略2等,每条策略可用于对服务器集合120的用户系统进行配置。计算设备110的策略确定模块用于从多条策略中确定一条策略,确定的该条策略也可以称作优胜策略,计算设备110将优胜策略对应的配置参数发送给服务器集合120,以使服务器集合120对用户系统进行配置,如此循环往复,从而使不同场景下用户系统的性能尽量能保持最优。需要说明的是,策略对应的配置参数包括计算节点数量、数据库软件参数等中的一种或多种。105.服务器集合120包括终服务器a,服务器a中部署有策略执行模块。服务器a接收计算设备110发送的配置参数,策略执行模块基于配置参数对用户系统进行配置,或者说,指导用户系统应用该配置参数,例如,给用户系统增容或者给用户系统减容,并将用户系统应用该配置参数后的状态指标反馈给计算设备110,以使计算设备110的策略确定模块更新各个策略的评分以确定下个时刻(或者下次竞争)的优胜策略。配置参数不妨以计算节点数量为例,如图1,对于服务器a,计算设备110基于服务器a反馈的状态指标计算各个策略的评分,假设t1时刻策略1胜出,服务器a接收计算设备110发送的策略1对应的配置参数在用户系统中创建2个计算节点,即实例1和实例2;假设在t2时刻策略2胜出,服务器a接收计算设备110发送的策略2对应的配置参数在用户系统中创建3个计算节点,即实例1、实例2和实例3,相较于t1时刻,服务器a的用户系统完成了增容以使得用户系统的性能尽量保持最优。106.在一些可能的实施例中,服务器集合120中还包括服务器b,服务器b中也部署有策略执行模块,服务器b的用户系统的配置参数也可以由计算设备110的策略确定模块确定,确定方法可参考上述服务器a的用户系统的配置参数的确定方法。例如,假设t1时刻,服务器b的用户系统设置有三个实例,t2时刻,策略执行模块基于确定的策略对服务器b的用户系统进行配置,移出了一个实例,仅剩下实例1和实例2,则相较于t1时刻,服务器b的用户系统完成了减容,使得用户系统的性能尽量保持最优。需要说明的是,本技术并不限定服务器的数量仅为2个,也不限定每个策略根据用户系统当前的状态指标输出的配置参数,例如,实例(虚拟机或容器)数量。107.需要说明的是,当服务器集合120中服务器的个数为多个时,服务器集合120中的各个服务器中均部署有策略执行模块。108.需要说明的是,用户系统可以是伸缩集合。具体地,该伸缩集合可以是提供直播服务的伸缩集合,也可以是提供点播服务的伸缩集合,本技术不做具体限定。109.需要说明的是,计算设备110中的云管理平台111为openstack时,图1中的实例为创建的虚拟机实例;当云管理平台111为kubernetes时,图1中的实例为创建的容器实例。一些可能的实施例中,计算设备110可以同时安装有openstack和kubernetes,以同时为用户提供虚拟机和容器实例。110.应理解,图1只是一种系统的应用架构示例,在实际应用中,图1所示的系统还可以是其他的远程计算节点,例如,可以是单个服务器,或者多个服务器集合成的,此处不作具体限定。111.下面将以多个策略包括k个策略为例,详细介绍在各个时刻(不防以n个时刻为例)如何通过评分函数对多个策略分别进行评分,并从多个策略中选择一个评分最高的策略作为优胜策略,其他未胜出的其他策略可以称之为候选策略。112.在本技术具体的实施方式中,多个策略中的每个策略可根据当前的用户系统的状态指标输出对应的参数以对用户系统进行配置。另外,多个策略中的每个策略均不相同。策略可以是规则或者算法等等。113.在一些可能的实施例中,多个策略中的每个策略可根据用户系统的历史的状态指标输出对应的参数以对用户系统进行配置。所谓历史的状态指标可以是距离当前时刻往前一段时间内的某个时刻的状态指标,也可以是基于距离当前时刻往前一段时间内的多个时刻的状态指标获得的。114.在一具体的实施方式中,用户系统的状态指标可以是cpu使用率、内存利用率、网络带宽利用率、磁盘利用率、cpu饱和度、cpu错误数等。需要说明的是,在计算策略的收益时,本技术并不限定参于计算策略的收益的状态指标的数量以及状态指标的种类。例如,可以指定对cpu使用率、内存利用率和网络带宽利用率这三个状态指标进行加权求和以获得策略的是收益;又例如,若用户重点关注系统的cpu性能,即可以选择与cpu相关的性能指标进行加权求和,如,对cpu使用率、cpu饱和度和cpu错误数进行加权求和以获得策略的收益。115.在一具体的实施方式中,参数可以包括计算节点的数量等等,其中,计算节点可以是虚拟机、容器等等。在一些可能的实施例中,参数还可以包括用户系统的数据库的可调参数,例如,连接缓冲区大小(join_buffer_size)、读取缓冲区大小(read_buffer_size)、表高速缓存(table_open_cache)等。116.需要说明的是,当策略为规则时,该规则根据用户系统当前的状态指标进行推理以输出用户系统的参数;当策略为算法时,该算法根据用户系统当前的状态指标进行计算以输出用户系统的参数。117.一具体实施中,当策略为规则时,该策略中包括用户预先设置的、用于对用户系统进行配置的多组参数,且每组参数对应一种判断条件。例如,假设某规则是“当用户系统的cpu利用率小于a时,输出:第一组参数;当用户系统的cpu利用率大于等于a小于等于b时,输出:第二组参数”。所谓规则根据当前用户系统的状态指标进行推理以输出用户系统的参数是指:判断当前用户系统的状态指标满足哪个判断条件,然后输出满足该判断条件下的用户系统的参数。118.一具体实施中,当策略为算法时,算法根据当前用户系统的状态指标结合自身的算法参数进行计算,并输出对应的用于配置用户系统的参数。例如,假设某算法为π(r1,r2,…,ro),其中,r1,r2,…,ro为当前用户系统的各状态指标,π(r1,r2,…,ro)为算法根据输入的各状态指标输出对应的参数。119.需要说明的是,当策略为算法时,算法是具有学习能力的,算法可以根据用户系统的运行状态动态调整自身的参数以使自身输出的用户系统的参数最优。除此之外,该算法输出的用户系统的参数可供其他算法进行策略学习。当策略为规则时,由于规则给定的用户系统的参数是确定的,因此,规则是不具有学习能力的,但规则给定的用户系统的参数可供算法进行策略学习。120.在本技术具体的实施方式中,策略的胜出由策略的评分决定,策略的评分受到评分参数的影响,评分参数包括策略的平均收益,此外,评分参数还可以包括策略的平均应用间隔、策略的平均违规间隔等中的一个或者多个。其中,策略的平均收益为该策略的初始收益加上之前的多次胜出收益之和的平均值,举例说明,假设策略1的初始收益为s0,策略1在第一次胜出(第一次竞争中)得到的胜出收益为s1,假设策略1在第二次胜出(第三次竞争中)得到的胜出收益为s2,那么策略1的平均收益为(s0 s1 s2)/3。策略的平均应用间隔为各个策略在用户系统中的应用次数之和(也可以称为用户系统的总应用次数)除以该策略的应用次数。其中,某个策略的应用次数为该策略的胜出次数加1,某个策略的胜出次数为该策略在多次竞争中当选为优胜策略的次数。策略的平均违规间隔为策略的胜出次数与该策略的违规次数加1后的比值,某个策略的一次违规是指当该策略胜出后,应用了该策略对应的参数的用户系统的各状态指标中,至少有一个状态指标大于等于该状态指标对应的指标阈值。可以理解,上述评分参数仅仅作为具体例子,在实际应用中,评分参数还可以包括其他的参数,此处不作具体限定。通常来说,在其他评分参数不变的情况下,策略的平均收益越高,策略的评分越高。在其他评分参数不变的情况下,策略的平均应用间隔越大,策略的评分越高。在其他评分参数不变的情况下,策略的平均违规间隔越大,策略的评分越高。因此,当这些评分参数设置的比较高时,策略的评分也比较高。当然,也可能存在评分参数设置的越低,其对应的策略的评分越高的情况,评分参数是正相关还是负相关具体参考评分参数的物理含义。下文以全部评分参数为正相关的情况为例进行进一步介绍。121.在本技术具体的实施方式中,评分函数f()可以包括以下几种实施方式:122.第一种方式:评分函数f()可以表示为公式(1):123.124.其中,表示策略t第n次竞争的评分,rt表示策略t的平均收益,vt表示策略t在前n-1次竞争中的胜出次数,(vt 1)表示策略t在用户系统中的应用次数,“1”表示第一次竞争前策略t在用户系统中的第一次应用,第一次应用对应的策略t的初始收益为前策略t在用户系统中的第一次应用,第一次应用对应的策略t的初始收益为表示策略t第i次胜出对应的胜出收益。125.第二种方式:评分函数f()可以表示为公式(2):[0126][0127][0128]其中,表示策略t第n次竞争的评分,rt表示策略t的平均收益,rt的表达式具体可参考上述公式(1),vt表示策略t在前n-1次竞争中的胜出次数,(vt 1)表示策略t在用户系统中的应用次数,t表示用户系统的总应用次数,t的计算可参考公式(2),k表示用户输入的策略的数量,t即为用户输入的各策略在用户系统中的应用次数之和,表示策略t的平均应用间隔,a表示策略t的平均收益的加权系数,b表示策略t的平均应用间隔的加权系数。需要说明的是,参数a、b可由用户自由定义,以使策略的平均收益和策略的平均应用间隔处于同一计量维度。[0129]第三种方式:评分函数f()可以表示为公式(4):[0130][0131]其中,表示策略t第n次竞争的评分,rt表示策略t的平均收益,rt的表达式具体可参考上述公式(1),et表示策略t在前n-1次竞争中的违规次数,vt表示策略t在前n-1次竞争中的胜出次数,表示策略t的平均违规间隔,a表示策略t的平均收益的加权系数,c表示策略t的平均违规间隔的加权系数。需要说明的是,参数a、c可由用户自由定义,以使策略的平均收益和策略的平均违规间隔处于同一计量维度。[0132]第四种方式:评分函数f()可以表示为公式(5):[0133][0134]其中,表示策略t第n次竞争的评分,rt表示该策略t的平均收益,表示该策略的平均应用间隔,表示该策略的平均违规间隔,a表示该策略的平均收益的加权系数,b表示该策略的平均应用间隔的加权系数,c表示该策略的平均违规间隔的加权系数,参数rt、t、vt、et的说明可参考上述公式(2)-公式(4)中的相关描述,在此不再赘述。需要说明的是,参数a、b、c可由用户自由定义,可以理解,若设置c=0,则公式(5)变成上述公式(2);若设置b=0,则公式(5)变成上述公式(4),本技术不做具体限定。[0135]需要说明的是,上述公式(1)至公式(5)为本技术提供的几种获得策略的评分的示例,并不限定策略的评分的计算公式仅为这几种。[0136]下面将以第一种方式的评分函数为例,详细说明在各个时刻(以n个时刻为例)通过评分函数f()对多个策略(以k个策略为例)分别进行评分,并从多个策略中选择评分最高的策略作为优胜策略。每个时刻对应着一次竞争。其具体过程如下:[0137]第一次竞争:将策略1应用于用户系统一次。具体地,将策略1根据当前的用户系统的状态指标输出的参数对用户系统进行配置,获得用户系统反馈的第一状态指标,基于第一状态指标计算策略1的初始收益将策略2应用于用户系统一次。具体地,将策略2根据当前的用户系统的状态指标输出的参数对用户系统进行配置,获得用户系统反馈的第二状态指标,基于第二状态指标计算策略2的初始收益…;将策略k应用于用户系统一次。具体地,将策略k根据当前的用户系统的状态指标输出的参数对用户系统进行配置,获得用户系统反馈的第k状态指标,基于第k状态指标计算策略k的初始收益将策略1的初始收益输入评分函数f()获得第一次竞争中策略1的评分为将策略2的初始收益输入评分函数f()获得第一次竞争中策略2的评分为…;将策略k的初始收益输入评分函数f()获得第一次竞争中策略2的评分为将评分评分…、评分进行比较从而确定最高评分,并将最高评分对应策略作为优胜策略,即最高评分对应的策略胜出。将该优胜策略对应的参数对用户系统进行配置,从而得到该优胜策略在第一次竞争中胜出获得的胜出收益。需要说明的是,只有胜出的策略会获得胜出收益,没有胜出的其他策略将不会获得胜出收益。[0138]第二次竞争:将策略1的初始收益以及在前一次竞争中胜出时获得的胜出收益(假设策略1在第一竞争中胜出)输入评分函数f()获得第二次竞争中策略1的评分为将策略2的初始收益以及在前一次竞争中胜出时获得的胜出收益(假设策略2在第一次竞争中胜出)输入评分函数f()获得第二次竞争中策略2的评分为…;将策略k的初始收益以及在前一次竞争中胜出时获得的胜出收益(假设策略k在第一竞争中胜出)输入评分函数f()获得第二次竞争中策略k的评分为将评分评分…、评分进行比较从而确定最高评分,并将最高评分对应策略作为优胜策略。将该优胜策略对应的参数对用户系统进行配置,从而得到该优胜策略在第二次竞争中胜出获得的胜出收益。[0139]…;[0140]第n次竞争:将策略1的初始收益以及在前n-1次竞争中胜出时获得的各胜出收益输入评分函数f()获得第n次竞争中策略1的评分为将策略2的初始收益以及在前n次竞争中胜出时获得的各胜出收益输入评分函数f()获得第n次竞争中策略2的评分为…;至少将策略k的初始收益以及在前n-1次竞争中胜出时获得的各胜出收益输入评分函数f()获得第n次竞争中策略k的评分为比较评分评分…、评分进从而确定第n次竞争的最高评分,并将最高评分对应的策略作为第n次竞争的优胜策略。[0141]需要说明的是,多策略实时竞争的方法能较好地适应用户系统的状态指标的改变,导致状态指标发生改变的原因可可以是用户系统的业务量突变、用户系统的应用场景改变、用户系统所在的用户终端的硬件温度过高或损坏等。[0142]下面分别对上述四种评分函数的优点进行详细的介绍。[0143]在第一种方式中,评分参数包括策略的平均收益。在公式(1)所示的评分方式中,策略t的平均收益越大,策略t的评越高,策略t在竞争中胜出的概率越高。需要说明的是,策略t的平均收益可用于衡量用户系统应用了策略t后用户系统的状态性能,策略的平均收益越高,用户系统应用了策略t后用户系统的状态性能越好。[0144]在第二种方式中,评分参数包括策略的平均收益和策略的平均应用间隔,策略的评分为对策略的平均收益和策略的平均应用间隔的加权求和。由公式(2)可以看出,策略t的胜出次数vt越小,即说明策略t在用户系统中的使用频率(可以表示为)越小,但策略t的平均应用间隔越大,策略t的评分越高,策略t有机会在竞争中胜出从而作为优胜策略在用户系统上线(应用策略对应的参数对用户系统进行配置的过程也可以成为策略在用户系统中上线)。因此,策略的平均应用间隔能够有效保护候选策略,能够提高候选策略在系统中上线的可能性。[0145]在第三种方式中,评分参数包括策略的平均收益和策略的平均违规间隔,策略的评分为对策略的平均收益和策略的平均违规间隔的加权求和。需要说明的是,策略违规是一个严重事件,策略的平均违规间隔在策略的评分中是一个重要因素,其可用于表示策略的稳定性,策略t的平均违规间隔越大,则策略t越稳定。可以理解,策略t的违规次数越多,也会拉低策略t的平均收益。[0146]对于策略t发生一次违规的判定为:当策略t胜出时,将策略t对应的参数应用于用户系统获得用户系统反馈的各状态指标,比较各状态指标与各状态指标对应的指标阈值的大小,当各状态指标中有至少一个状态指标大于等于该状态指标对应的指标阈值时,记录策略t违规一次。例如,假设用户关注的状态指标有cpu利用率、内存利用率和网络带宽利用率,其中,cpu利用率对应的指标阈值设置为q1,内存利用率对应的指标阈值设置为q2,网络带宽利用率对应的指标阈值设置为q3。例如,某次竞争中策略a胜出,获得用户系统应用策略a后的各状态指标,其中,cpu利用率为p1、内存利用率为p2、网络带宽利用率为p3。分别比较p1是否大于等于q1、p2是否大于等于q2以及p3是否大于等于q3,若三者中至少有一个状态指标大于等于该状态指标对应的指标阈值,则策略a违规一次,将策略a的违规次数加1;若p1小于q1且p2小于q2且p3小于q3,则策略a的该次应用不违规。[0147]由此可以看出,当策略t胜出将策略t对应的参数应用于用户系统后,进一步地,才能判定策略t的该次应用是否发生违规。因此,策略t的违规次数小于等于策略t的胜出次数。因为,策略t在竞争中胜出后,应用策略t对应的参数对用户系统配置后,才能判断策略t该次应用是否有违规发生。[0148]在第四种方式中,评分参数包括策略的平均收益、策略的平均应用间隔和策略的平均违规间隔,策略的评分为对策略的平均收益、策略的平均应用间隔和策略的平均违规间隔的加权求和。第四种方式既通过策略的平均应用间隔有效保护候选策略,提高了候选策略成为优胜策略的概率,增加了候选策略在系统中上线的可能性,同时又通过策略的平均违规间隔衡量策略的稳定性。[0149]可以看出,在上述叙述中,策略的胜出由策略的评分决定,即将最高评分对应的策略作为该次竞争中的优胜策略。在一些可能的实施例中,当最高评分对应的策略的数量为至少两个时,换句话说,有至少两个策略的评分相等且为该次竞争中的最高评分,在此情况下,进一步地,判断最高评分对应的至少两个策略中各策略的胜出次数,将最小的胜出次数对应的策略作为该次竞争中的优胜策略。由此实现可以有不同的策略应用于用户系统。[0150]本技术的一种实施例中,在完成多个策略的一次竞争后,在更新各个策略的评分以进行下一次竞争之前,还需要基于该次竞争的优胜策略训练多个策略中的其他候选策略。具体地,不妨以第一时刻竞争第一策略胜出为例,即在确定第一时刻的优胜策略第一策略后,将第一策略对应的第一参数发送给用户系统以获得用户系统应用第一参数后反馈的第二状态指标,第一参数是第一策略基于自身的算法参数和第一状态指标输出的,基于第一策略对应的第一参数和第一状态指标对多个策略中剩余的其他候选策略进行训练以调整候选策略的算法参数,随着训练次数的递增,使得参与训练的每个候选策略的训练误差趋向于0。其中,训练误差指的是候选策略经过训练后输出的参数与该次竞争的优胜策略(即第一策略)输出的参数(即第一参数)之间的差距。在每个候选策略各进行了一次训练后,则重新计算各个策略(包括各个候选策略和优胜策略)的评分以实现各个策略的评分的更新。[0151]一具体实施中,每个算法类型的候选策略的训练目标可以由表达式(6)表示:[0152]x(θ1′)=l(π*(r),πθ1′(r))ꢀꢀ(6)[0153]θ1′=θ1 o1ꢀꢀ(7)[0154]其中,r表示当前的用户系统的第一状态指标,π*(r)表示优胜策略根据自身的算法参数和第一状态指标输出的第一参数,θ1′表示候选策略经训练后的算法参数,πθ1′(r)表示候选策略经训练后根据算法参数θ1′和第一状态指标输出的第二参数,l()表示第一参数与第二参数之间的训练误差。参见公式(7),公式(7)提供了一种候选策略的算法参数调整示例,θ1表示候选策略未经该次训练前的算法参数,o1表示该次训练的调整量,o1可为正也可为负,o1可以是预先设置的或者通过其他方法(例如,梯度下降法、牛顿法等)计算获得,本技术不做具体限定。[0155]可以理解,在训练过程中,在r和π*(r)不变的情况下,θ1′改变,会导致πθ1′(r)改变。经过一次训练,在算法参数θ1′下l()的输出小于在算法参数θ1下l()的输出。[0156]需要说明的是,候选策略的训练误差可以是平均绝对误差、均方根误差的平均值或者其他误差表达方式,本技术不做具体限定。[0157]可以看出,基于优胜策略训练该次竞争中暂未胜出的候选策略,候选策略虽暂时未能在用户系统中上线,但候选策略在后台模仿学习优胜策略输出的参数以调整自身的算法参数,使得经过训练后的候选策略输出的参数与优胜策略输出的参数接近,从而实现了训练后的候选策略作用于用户系统后的性能(若该候选策略胜出)要优于训练前的候选策略作用于用户系统后的性能(若该候选策略胜出)。[0158]需要说明的是,多个策略中的其他候选策略的类型包括算法和规则中的至少一种,但仅能对算法类型的候选策略进行训练,因为算法类型的候选策略具有学习能力,而规则类的候选策略不具有学习能力。另外,优胜策略的类型可以是规则也可以是算法,本技术不做具体限定。[0159]例如,参见图2,图2是一种两个策略竞争过程的简单示意图,假设用户输入的策略有策略a和策略b,其中,策略a的类型为算法,策略b的类型为规则。依据上述第二种方式中的评分函数(参见公式(2)-公式(3))计算各个策略的评分,则首次竞争中:策略a的评分为其中,为策略a的初始收益;策略b的评分为其中,为策略b的初始收益。假设首次竞争中胜出的为策略b(小于),则策略b的胜出次数由0变为1。将策略b基于当前的用户系统的第一状态指标输出的第一参数应用于用户系统,用户系统的总应用次数由2变为3,基于第一状态指标和策略b输出的第一参数对策略a进行一次训练以调整策略a自身的算法参数。然后分别更新策略a和策略b的评分以进行第二次竞争,则策略a的评分为策略b的评分为其中,表示策略b第一次胜出时的胜出收益,其是基于用户系统应用第一参数后反馈的第二状态指标获得。若大于则第二次竞争策略a胜出,则可将经该次训练后的策略a基于第二状态指标输出的第二参数应用于用户系统;若小于则第二次竞争中策略b胜出,将策略b根据第二状态指标输出的第三参数应用于系统。在一些可能实施例中,若等于则确定胜出次数少的策略在此次竞争中胜出,首次竞争后由于策略a的胜出次数小于策略b的胜出次数,故确定第二次竞争策略a胜出。需要说明的是,上述仅是对策略a和策略b的两次竞争过程进行了详细的阐述,第三次竞争以及后续竞争可参考上述过程,在此不再赘述。[0160]本技术的一种实施例中,在完成多个策略的一次竞争后,若优胜策略的类型为算法时,在更新各个策略的评分以进行下一次竞争之前,除了可以基于优胜策略输出的参数对算法类型的候选策略进行训练外,还可以对优胜策略进行调优。需要说明的是,关于候选策略的训练可参考上述描述,在此不再赘述。[0161]对于优胜策略的调优过程具体为:不妨以第一时刻竞争第一策略胜出为例,即在确定第一时刻的优胜策略第一策略后,第一策略基于自身的第一算法参数和当前的用户系统的第一状态指标输出第一参数,将第一参数发送给用户系统并获取用户系统应用第一参数后反馈的第二状态指标,根据第二状态指标计算优胜策略该次的第一胜出收益,最后,基于第一状态指标、第一参数和第一胜出收益调整优胜策略的第一算法参数,以优化优胜策略的胜出收益。在完成对优胜策略的调优以及对各算法类的候选策略的训练后,即可更新各个策略的评分以进行下一次竞争。[0162]一具体实施中,可以采用强化学习方法对优胜策略进行调优,例如,q-learning,可参考下述公式(8):[0163]q(r,θ2)=s(r,θ2) γ*max{q(r′,θ2′)}ꢀꢀ(8)[0164]其中,r表示当前的用户系统的第一状态指标(相当于q-learning中的当前状态),θ2表示当前优胜策略的算法参数(相当于q-learning中的当前行为),θ2′表示经一次调优后优胜策略的算法参数(相当于下一个行为),r′表示优胜策略对应的第一参数(基于r和θ2获得)被用户系统应用后反馈的第二状态指标(相当于q-learning中的下一个状态),s(r,θ2)表示基于第二状态指标计算的优胜策略的第一胜出收益(相当于及时奖励),γ表示学习参数,q(r,θ2)表示基于r和θ2的得分表。经上述公式,以使每次调优时θ2′对应的q值最大。[0165]例如,参见图3,图3是一种三个策略竞争过程的简单示意图,假设用户输入的策略有策略a、策略b和策略c,其中,策略a和策略c的类型均为算法,策略b为规则。依据上述第二种方式中的评分函数(参见公式(2)-公式(3))计算各个策略的评分,则首次竞争中:策略a的评分为其中,为策略a的初始收益;策略b的评分为其中,为策略b的初始收益;策略c的评分为其中,为策略c的初始收益。假设在首次竞争中策略c胜出(第一次比较:),则策略c的胜出次数由0变为1,将策略c基于当前的用户系统的第一状态指标输出的第一参数发送给用户系统并获取应用系统应用第一参数后反馈的第二状态指标,基于第二状态指标计算策略c该次胜出对应的第一胜出收益,然后基于第一状态指标、第一参数和第一胜出收益对策略c进行一次调优以更新策略c自身的算法参数,另外,还根据第一参数和第一状态指标仅对策略a进行一次训练以更新策略a自身的算法参数,在完成对策略c(优胜策略)的调优以及对策略a(候选策略)的训练后,分别更新各个策略的评分以确定第二次竞争的优胜策略,获得策略a的评分为策略b的评分为策略c的评分为相关参数的说明可参考上述相关描述,在此不再赘述。若大于且大于则第二次竞争策略a胜出,则可将经该次训练后的策略a基于第二状态指标输出的第二参数应用于用户系统;若大于且大于则第二次竞争策略b胜出,则可将策略b根据第二状态指标输出的第三参数应用于用户系统;若大于且大于则第二次竞争中策略c胜出,将经该次调优后的策略c基于第二状态指标输出的第四参数应用于用户系统。上述仅是对策略a、策略b和策略c的两次竞争过程进行了详细的阐述,第三次竞争以及后续竞争可参考上述过程,在此不再赘述。[0166]需要说明的是,本技术并不限定候选策略的训练和优胜策略的调优的执行顺序,也就是说,可以先执行候选策略的训练后执行优胜策略的调优,也可以先执行优胜策略的调优后执行候选策略的训练,还可以同时执行候选策略的训练和优胜策略的调优。[0167]在一些可能的实施例中,上述训练和调优过程需在下一次竞争前完成。当确定优胜策略并获得优胜策略对应的参数后,即可对算法类型的候选策略进行训练。当获得用户系统应用优胜策略对应的参数后反馈的状态指标后,若优胜策略的类型为算法,即可对优胜策略进行调优。[0168]可以理解,相邻两次竞争的优胜策略可以不同,也可以相同,本技术不做具体限定。例如,假设第一次胜出的策略为策略a,将策略a输出的参数作用于用户系统,由于系统的应用场景的变化导致应用了策略a的用户系统的性能降低,例如,第一次竞争中选用策略a输出的参数对用户系统进行配置,假设上午12点视频云的直播业务量小用户系统的性能较好,若下午1点视频云的直播业务量突然猛增,导致下午1点用户系统的性能比上午12点用户系统的性能差,故当前的策略a不再适用于当前的用户系统。因此第二次胜出的策略可以是策略b,在一具体实施中,策略b不同于策略a。在一些可能的实施例中,假设第一次胜出的策略为策略a,尽管应用场景发生了变化但系统的性能仍然维持最优状态,即说明当前应用的策略具有良好的稳定性,故第二次胜出的策略可以依然是策略a,在此情况下,策略a可以是规则,也可以是经过一次调优后的算法。需要说明的是,本技术并不限定相邻两次竞争之间的时间间隔以及每次竞争发生的时刻。[0169]上述方法可以应用于弹性伸缩场景,以实现对伸缩组的扩容或减容。其中,当伸缩组需要扩容时,多个策略可以称为多条扩容策略;当伸缩组需要减容时,多个策略可以称为多条移出策略。[0170]具体地,当伸缩组需要扩容时,利用上述方法从多条扩容策略中确定一条扩容策略,并基于确定的扩容策略为伸缩组增加实例。当伸缩组需要减容时,利用上述方法从多条移出策略中确定一条移出策略,并基于确定的移出策略从伸缩组移出实例。[0171]对于伸缩组需要扩容还是需要减容的判断可以是:当伸缩组的当前的状态指标小于最低指标阈值时,则伸缩组需要减容;当伸缩组的当前的状态指标大于最高指标阈值时,则伸缩组需要扩容。关于伸缩组需要扩容或者需要减容的判断还可以是:通过已确定的策略输出的配置参数与伸缩组当前的实例数量进行判断,当已确定的策略输出的配置参数小于伸缩组当前的实例数量,则伸缩组需要减容,即移出部分实例;当已确定的策略输出的配置参数大于伸缩组当前的实例数量,则伸缩组需要扩容,即增加部分实例。需要说明的是,一具体实施中,无论是扩容策略还是移出策略,若其输出的配置参数为实例数量时,其输出的配置参数均可以是建议伸缩组的当前适宜实例数量。另一具体实施中,扩容策略输出的配置参数可以是建议伸缩组新增加的实例数量,移出策略输出的配置参数可以是建议伸缩组移出的实例数量,本技术不做具体限定。[0172]需要说明的是,伸缩组即为上述中的用户系统。在一些可能的提供直播服务的伸缩组,也可以是提供点播服务的伸缩组,本技术不做具体限定。[0173]以直播伸缩组为例说明本技术提供的方法在直播场景下的应用。假设当前时刻为中午12点,直播在线人数较少,直播伸缩组的压力小且运行状态良好,直播伸缩组当前是基于策略a配置的,基于策略a给直播伸缩组设置了两个实例。假设到了下午一点,直线在线人数突增,直播伸缩组压力较大且运行出现卡顿,直播伸缩组所在的服务器接收到策略b对应的实例数量,直播伸缩组当前的实例数量小于策略b对应的实例数量,因此,基于策略b对应的实例数量为直播伸缩组增加实例以使直播伸缩组当前的实例数量与策略b对应的实例数量相等。又假设到了下午3点,直播在线人数发生了突降,直播伸缩组压力较小但直播伸缩组当前的状态指标小于最低指标阈值,直播伸缩组所在的服务器接收到策略c对应的实例数量,直播伸缩组当前的实例数量大于策略c对应的实例数量,因此,基于策略c对应的实例数量为直播伸缩组移出实例以使直播伸缩组当前的实例数量与策略c对应的实例数量相等。[0174]在一些可能的实施例中,当伸缩组需要扩容时,利用上述方法从多条扩容策略中确定的扩容策略的数量为多个,例如,利用上述方法从多条扩容策略中确定了两条扩容策略,一具体实施中,可以将这两条扩容策略同时应用于伸缩组,举例来说,若两条移出策略中有一条扩容策略用于确定实例(例如,虚拟机)的规格,另一条扩容策略用于确定伸缩组需要增加的实例数量,因此,将这两条扩容策略同时应用于伸缩组,为伸缩组增加指定数量的具有指定规格的实例。另一具体实施中,也可以从这两条扩容策略中进一步选出一条扩容策略应用于伸缩组,举例来说,这两条扩容策略都可以确定为伸缩组增加默认规格的实例的数量,且两条扩容策略的评分均为该次竞争中的最高评分,则可以选择这两条扩容策略中最少胜出次数对应的扩容策略为伸缩组增加实例。[0175]在一些可能的实施例中,当伸缩组需要减容时,利用上述方法从多条移出策略中确定的移出策略的数量为多个,例如,利用上述方法从多条扩容策略中确定了两条移出策略,一具体实施中,可以将这两条移出策略同时应用于伸缩组,举例来说,若两条移出策略中有一条移出策略用于确定实例的选择方式,例如,从最新创建的实例中选择,另一条移出策略用于确定从cpu利用率较高的实例中移出的实例的数量,因此,将这两条移出策略同时应用于伸缩组,可以为这两条移出策略设置优先级,例如,先确定伸缩组中最新创建的实例,再从最新创建的实例中移出指定数量的cpu利用率较高的实例。另一具体实施中,也可以从这两条移出策略中进一步选出一条移出策略应用于伸缩组,举例来说,这两条移出策略中有一条移出策略用于确定从最新创建的实例中移出的实例的数量,另一条移出策略用于确定从cpu利用率较高的实例中移出的实例的数量,且两条移出策略的评分均为该次竞争中的最高评分,则可以选择这两条移出策略中最少胜出次数对应的移出策略为伸缩组移出实例。[0176]由此可以看出,上述实施例中,在多策略各个时刻的竞争中,可以基于评分函数(相当于算法)实现从多个策略中确定一个或多个策略,确定的策略即为胜出的策略,且策略的胜出由策略的评分决定。[0177]在一些可能的实施中,还可以基于预设条件(相当于规则)从多个策略中确定一个或多个策略。例如,有些策略在竞争过程中由于策略的评分始终不是最高故总未能胜出,在此情况下,可以设置预设强制条件,判断候选策略是否满足该预设强制条件,当候选策略满足该预设强制条件时,则给予该候选策略上线机会以使其应用于用户系统。需要说明的是,当满足预设强制条件的策略有多个时,一具体实施中,可以将满足预设强制条件的多个策略同时应用于用户系统,相关描述具体可参考上述多个扩容策略应用于伸缩组的相关描述或者多个移出策略应用于伸缩组的相关描述。另一具体实施中,也可以从满足预设强制条件的多个策略中选择一个策略应用于用户系统,选择基准可以是最少胜出次数对应的策略或者最高评分对应的策略等,本技术不做具体限定。[0178]一具体实施中,预设条件可以是:策略的使用频率(其表示为策略的胜出次数与该策略的应用次数的比值)小于等于预设频率阈值且策略的平均训练误差小于等于预设误差阈值,其中,策略的平均训练误差为策略的历史各次训练误差的平均值。换句话说,当某候选策略的使用频率低且平均训练误差小时,尽管该候选策略的评分不是最高的,该候选策略仍有机会在用户系统中上线。在一些可能的实施例中,在候选策略满足预设强制条件时,尽管该候选策略的评分在某次竞争中不是最高的,将该候选策略替代该次竞争中的优胜策略应用于用户系统,另外,还可以设置将该候选策略在用户系统中连续使用p次,p为大于等于2的正整数。[0179]例如,假设用户输入的策略有策略a、策略b和策略c,在历史竞争中,策略b和策略c均有胜出且被用户系统应用,策略a(算法)一直在后台模仿学习每次竞争中胜出的优胜策略输出的参数。某次竞争中,策略a的使用频率为0,其小于预设频率阈值,策略a的平均训练误差也小于预设误差阈值,但策略a的评分依然分别小于策略b的评分和策略c的评分,在此情况下,由于策略a满足预设强制条件,即策略的使用频率小于预设频率阈值且策略的训练误差小于预设误差阈值,可将策略a输出的参数应用于用户系统,即应用策略a对应的参数对用户系统进行配置。[0180]在一些可能的实施例中,还可以为各策略的实时竞争设置结束条件。例如,预先设置用户系统的总应用次数的上限阈值。在策略的实时竞争过程中,当用户系统的总应用次数达到该上限阈值时,停止各个策略的实时竞争,将当前胜出的策略的参数作用于用户系统以使用户系统继续运行。又例如,策略的实时竞争过程中,当某策略在用户系统中连续应用次数达到第一阈值时,则说明当前用户系统的性能较优,可以停止各个策略的实时竞争,使用户系统以当前采用的策略继续运行。[0181]可以看到,实施本技术实施例,通过多个策略之间实时竞争确定最高评分对应的一个策略胜出,并将该优胜策略应用于用户系统,从而实现了用户系统的策略随着场景的改变而灵活切换,使得用户系统尽量能保持最优的运行状态。同时,未胜出的其他候选策略可在后台学习模仿优胜策略输出的用于配置用户系统的参数,以等待胜出的机会。有效融合了多个策略的优势,提升了配置用户系统的参数寻优的效率和精度。[0182]下面以图4为例对多策略竞争方法进行说明。参见图4,图4是本技术实施例提供的一种多策略竞争的方法流程图,图4实施例更直观地显示了多策略实时竞争的过程,该方法应用于竞争系统,该竞争系统包括计算设备和服务器,其中,服务器上部署有伸缩组,计算设备用于确定伸缩组的配置参数,该方法包括但不限于以下步骤:[0183]s101、计算设备接收用户输入的多个策略。[0184]一具体实施中,用户输入的多个策略中每个策略有自身的标识,该标识指示策略的类型,该标识可以由数字或字母等表示。例如,标识可以用“0”、“1”表示,其中,“0”表示算法,“1”表示规则。[0185]例如,计算设备可以给用户提供一个用户界面,参见图5,图5是本技术实施例提供的一种用户界面的示例,并不限定用户界面仅为图5所示的样子,用户界面上设置有“算法”、“规则”、输入框、“添加”按钮和“完成”按钮等,用户可通过触屏或者鼠标等在用户界面上点击要设置的策略类型,例如,算法,将对应的算法内容输入至“算法”下的输入框中,在完成一个算法的输入后,即可点击“添加”按钮,响应于该操作,计算设备接收并保存该次添加的算法类型的策略。重复上述步骤,在完成所有策略的输入后,即可点击“完成”按钮。在一些可能的实施例中,用户也可以通过键盘和鼠标进行策略的输入,本技术不做具体限定。[0186]s102、计算设备基于评分函数计算各个策略的评分,将最高评分对应的策略作为优胜策略。[0187]本技术实施例中,评分函数可以采用上述四种方式中的任意一种,策略的评分的具体计算方式可参考上述相关描述,在此不再赘述。[0188]需要说明的是,评分函数是基于用户在界面上选择的评分参数确定的。参见图6a,图6a是是本技术实施例提供的一种用于评分维度设置的用户界面,该用户界面上罗列了“平均收益”以及“平均应用间隔”、“平均违规间隔”与“平均收益”的组合方式。例如,用户点击“平均收益”以及“确定”键后即确定评分函数为上述的第一种方式。又例如,用户点击“平均收益 平均应用间隔”以及“确定”键后即确定评分函数为上述的第二种方式。在一些可能的实施例中,图6a所示的界面和图5所示的界面可以位于同一个界面上,也可以位于不同的界面上,本技术不做具体限定。[0189]在一些可能的实施例中,当用户设置的评分维度中包括多个维度时,用户还可以在该界面上设置评分维度中每个维度的权重。参见图6b,图6b是本技术实施例提供的又一种用于评分维度设置的用户界面,如图6b所示,用户选择“()平均收益 ()平均应用间隔”这种评分维度,并设置平均收益的权重为0.4、平均应用间隔的权重为0.6,点击“确定”键后,确定评分函数即为上述第二种方式,且公式(2)中的a为0.4且b为0.6。在一些可能的实施例中,图6b所示的界面和图5所示的界面可以位于同一个界面上,也可以位于不同的界面上,本技术不做具体限定。[0190]需要说明的是,在进行首次竞争时,计算设备会先获取当前的伸缩组的状态指标,多个策略中的每个策略基于当前的伸缩组的状态指标输出对应的配置参数,并将配置参数发送给伸缩组并获得伸缩组应用该配置参数后反馈的状态指标,采用评分函数基于反馈的状态指标即可获得该次竞争本策略的评分。由此,通过将多个策略中的每个策略对应的配置参数轮流应用于伸缩组一次,即可多个策略中各个策略的评分,以进行第一次竞争。[0191]一具体实施中,除了比较各个策略的评分外,还可以比较每个策略的使用频率与预设频率阈值的大小以及策略的平均训练误差与预设误差阈值的大小。尽管某些策略的评分不是最高的,但当该策略的使用频率小于等于预设频率阈值以及该策略的平均训练误差小于等于预设误差阈值时,将该策略替换该次竞争中评分最高的策略作为优胜策略。[0192]需要说明的是,在确定某策略为优胜策略时,将该策略的胜出次数加1。[0193]s103、计算设备获得优胜策略基于第一状态指标(伸缩组的当前的状态指标)输出的第一参数。[0194]计算设备获取伸缩组的当前的状态指标,不妨以第一状态指标为例,优胜策略基于第一状态指标输出第一参数。[0195]s104、计算设备向服务器发送第一参数。[0196]s105、服务器应用第一参数配置伸缩组,配置完成后伸缩组的当前的状态指标变化为第二状态指标。[0197]服务器接收到来自计算设备的第一参数后,应用第一参数配置伸缩组,伸缩组完成该次配置后伸缩组的当前的状态指标变化为第二状态指标。[0198]当第一参数为实例数量时,所谓应用第一参数配置伸缩组是指:当伸缩组当前的实例数量小于第一参数时,则为伸缩组增加实例以使伸缩组当前的实例数量为第一参数;当伸缩组当前的实例数量大于第一参数时,则为伸缩组移出实例以使伸缩组当前的实例数量为第一参数。当伸缩组当前的实例数等于第一参数时,则不对伸缩组做任何操作,在此情况下,第二状态指标与第一状态指标相同。[0199]需要说明的是,每当用户系统应用优胜策略对应的参数后,用户系统的总应用次数加1。[0200]s106、服务器向计算设备发送第二状态指标。[0201]服务器向计算设备发送第二状态指标,相应地,计算设备接收第二状态指标。需要说明的是,第二状态指标为伸缩组应用优胜策略对应的参数(即第一参数)后反馈的状态指标。[0202]一具体实施中,若依据上述第三种方式或者第四种方式中的评分函数计算各个策略的评分,在获得伸缩组反馈的第二状态指标后,还需判断伸缩组反馈的第二状态指标是否发生违规,在发生违规的情况下,记录该优胜策略的违规次数以用于后续策略的评分的更新计算。[0203]s107、计算设备判断优胜策略的类型是否为算法。[0204]具体地,判断优胜策略的类型是否为算法,在优胜策略的类型为算法的情况下,执行s108;在优胜策略的类型不是算法的情况下,即说明优胜策略的类型为规则,执行s109。[0205]s108、计算设备基于第二状态指标对优胜策略进行调优。[0206]优胜策略的调优过程可参考上述相关描述,为了说明书的简洁,在此不再赘述。[0207]s109、计算设备基于第一参数和第一状态指标对多个策略中算法类型的候选策略进行训练。[0208]候选策略的训练过程可参考上述相关描述,为了说明书的简洁,在此不再赘述。[0209]需要说明的是,每当候选策略完成一次训练后,还需记录下该候选策略该次训练的训练误差,以用于后续计算该候选策略的平均训练误差,即将该候选策略历史多次的训练误差之和除以该候选策略的训练次数。[0210]可以看出,当s107的判断结果为“是”时,需执行s108和s109,s108和s109的执行顺序可以是先执行s108后执行s109,也可以是先执行s109后执行s108,还可以是同时执行s108和s109,本技术不做具体限定。当s107的判断结果为“否”时,跳过s108,直接执行s109。[0211]在完成对各算法类的候选策略训练后,或者,在完成对优胜策略的调优和对各算法类的候选策略的训练后,跳转到s102以更新各个策略的评分,循环执行s102-s109。[0212]由图4可以看出,多个策略的实时竞争可以无限循环执行。在一些可能的实施例中,可以设置循环终止条件,例如,设置循环次数(或者伸缩组的总应用次数)的上限阈值。一具体实施中,在图4所示的s109后,判断当前循环次数是否等于该上限阈值时,若当前循环次数等于该上限阈值,则停止各策略的竞争,应用最后一次胜出的策略对应的参数对伸缩组进行配置;若当前循环次数小于该上限阈值,则跳转至s102循环执行直至当前循环次数达到该上限阈值。[0213]可以看到,实施本技术实施例,通过各个策略的实时竞争决策出最优的策略作为优胜策略应用于伸缩组,不仅提高了策略切换的灵活性,且能较好地适应伸缩组中应用场景的变化,使得伸缩组尽量能保持最优的运行状态。另外,每次竞争中暂未胜出的算法类的候选策略在后台可学习优胜策略的输出以等待胜出机会,且当优胜策略为算法类的策略时的,还可以对优胜策略进行调优,以提高伸缩组的性能。[0214]参见图7,图7是本技术实施例提供的一种弹性伸缩系统的功能结构示意图,弹性伸缩系统31包括策略确定模块310和策略执行模块312。策略确定模块310和策略执行模块312均可以通过硬件、软件或者软硬件结合的方式来实现。在一些可能的实施例中,策略确定模块310可以部署在图1的计算设备中,策略执行模块312可以部署在图1的服务器中。[0215]其中,策略确定模块310,用于在需要对伸缩组扩容时,从多条扩容策略中确定一条或多条扩容策略;策略执行模块312,用于基于确定的扩容策略为伸缩组增加实例。[0216]在一些可能的实施例中,策略确定模块310,还用于在需要对伸缩组减容时,从多条移出策略中确定一条移出策略;策略执行模块312,还用于基于确定的移出策略从伸缩组移出实例。[0217]该弹性伸缩系统31的各功能模块可用于实现图4实施例所描述的方法。在图4实施例中,策略确定模块310可用于执行s102、s103、s107、s108和s109;策略执行模块312可用于执行s105。[0218]参见图8,图8是本技术实施例提供的一种计算装置的结构示意图。[0219]如图8所示,包括处理器301、辅助存储器302、系统内存303、通信接口304、输入/输出接口305和总线300。其中,辅助存储器302、系统内存303、通信接口304、输入/输出接口305分别通过总线300与处理器301连接。[0220]总线300用于计算装置30的各部件之间传递信息,总线300可以使用有线的连接方式或者采用无线的连接方式,本技术并不对此进行限定。[0221]计算装置30可以是图1中的计算设备,在此情况下,处理器301执行各操作的具体实现可参考上述方法实施例中计算以及比较各策略的评分确定优胜策略、训练候选策略、对优胜策略调优以及更新各策略的权重等具体操作。计算装置30也可以是图1中的服务器,在此情况下,处理器301执行各操作的具体实现可参考上述方法实施例中应用第一参数配置伸缩组等。处理器301可以由一个或者多个通用处理器构成,例如中央处理器(centralprocessingunit,cpu),或者cpu和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic)、可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld)、现场可编程门阵列(field-programmablegatearray,fpga)、通用阵列逻辑(genericarraylogic,gal)或其任意组合。处理器301可以为单核处理器或多核处理器。[0222]系统内存303可以包括一些软件,例如,操作系统(例如darwin、rtxc、linux、unix、osx、windows或嵌入式操作系统(例如vxworks)),应用程序等。[0223]辅助存储器302一般也称为外存,辅助存储器302的存储介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如光盘)、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。辅助存储器302可以存储程序以及数据。当计算装置30为图1中的计算设备时,辅助存储器302中存储的程序包括:多个策略(包括算法和规则中的至少一种)、评分计算程序等,存储的数据包括:策略输出的配置参数、伸缩组的状态指标、策略自身的算法参数、伸缩组的总应用次数(各个策略的应用次数之和)、各个策略的胜出次数、各个策略的平均收益、各个策略的训练误差等。当计算装置30为图1中的服务器时,辅助存储器302中存储的程序包括:应用程序(例如,直播软件或点播软件)等,存储的数据包括:优胜策略输出的配置参数、伸缩组的状态指标等。[0224]输入/输出接口305用于接收输入的信息,输出操作结果。在一些可能的实施例中,计算装置30还包括输入/输出设备306,输入/输出设备306与输入/输出接口305连接,用于接收用户输入的信息,例如,用户输入的多个策略,并通过输入/输出接口305发送给处理器301。输入/输出设备306可以为鼠标、键盘、显示器、或者光驱等。[0225]通信接口304使用例如但不限于收发器一类的收发装置,来实现与其他设备之间的通信。通信接口304可以是有线接口或者无线接口。有线接口可以是以太网接口、局域互联网络(localinterconnectnetwork,lin)等,无线接口可以是蜂窝网络接口或无线局域网接口等。[0226]此外,图8仅仅是一个计算装置30的例子,计算装置30可能包含相比于图8展示的更多或者更少的组件,或者有不同的组件配置方式。同时,图8中展示的各种组件可以用硬件、软件或者硬件与软件的结合方式实施。[0227]本技术实施例中,计算装置30用于实现上述图4实施例中计算设备侧的方法或者图4实施例中服务器侧的方法。[0228]在本文上述的实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。[0229]需要说明的是,本领域普通技术人员可以看到上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(read-onlymemory,rom)、随机存储器(randomaccessmemory,ram)、可编程只读存储器(programmableread-onlymemory,prom)、可擦除可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、一次可编程只读存储器(one-timeprogrammableread-onlymemory,otprom)、电子抹除式可复写只读存储(electrically-erasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。[0230]本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是个人计算机,服务器,或者网络设备、机器人、单片机、芯片、机器人等)执行本技术各个实施例所述方法的全部或部分步骤。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献