实例系统应用的安装调整计算及安装调整方法与流程

文档序号:11133680阅读:305来源:国知局
实例系统应用的安装调整计算及安装调整方法与制造工艺

本发明涉及实例系统应用的安装调整计算及安装调整方法。



背景技术:

某种操作系统(例如安卓操作系统)加上运行该操作系统所需的必要硬件(例如处理器、存储器等),可以视为一个实例系统,实例系统中可以运行各种应用(应用指能够在实例系统的操作系统中运行的软件或程序)。将若干个实例系统按照一定的架构方式(例如分布式)集中管理,可以形成云系统。通常云系统由运营商负责日常运营,为用户提供服务。用户可以在云系统的实例系统上运行某个应用,对于游戏等需要较高硬件配置支持的应用,用户选择在云系统的实例系统而不是本地设备上运行非常普遍。

如果实例系统的存储空间足够大,可以一次性安装所有用户可能需要的应用,后续自然不需要任何调整。但实际中有的实例系统的存储空间较小,每个实例系统上只能安装部分用户可能需要的应用,运营商需要采用一定的安装策略,将用户需求较多的应用安装在较多数量的实例系统上,用户需求较少的应用安装在较少数量的实例系统上。在云系统的运营过程中,应用的安装策略往往会进行调整。

调整应用的安装策略,最简单的办法是先把所有实例系统上的所有应用都卸载掉,再按照调整后的安装策略在所有实例系统上重新安装应用。但显然,这样做消耗的时间非常多,而且经常会出现同一应用在同一实例系统上先被卸载了后来又被安装的无效操作。使用反复迭代等方法,可以减少一些时间消耗,但还是不能很好的避免无效操作。

在说明书“背景技术”部分公开的内容,有助于本领域技术人员理解本发明的技术方案,但不应据此认为这些内容一定属于现有技术或公知常识。



技术实现要素:

为了克服“背景技术”部分所反映的缺陷,本发明提供实例系统应用的安装调整计算及安装调整方法。

实例系统应用的安装调整计算方法,包括:

计算每个应用的计划安装数与已安装数的差值;

遍历所有差值不为零的应用,将差值调整为零,将差值调整为零的方法为:

如果某应用的差值为正,则遍历所有能安装该应用的实例系统,如果某实例系统上存在差值为负的应用,则将差值为负的应用替换为该应用;如果所有能安装该应用的实例系统都不存在差值为负的应用,则在已安装应用数量最少的能安装该应用的实例系统上增加该应用;

如果某应用的差值为负,则遍历所有已安装该应用的实例系统,如果某实例系统能安装差值为正的应用,则将该应用替换为差值为正的应用;如果不存在差值为正的应用或者所有已安装该应用的实例系统都不能安装差值为正的应用,则在已安装应用数量最多的已安装该应用的实例系统上删除该应用。

进一步的,每个实例系统的设定应用安装数为或者其中M为所有应用的总期望安装数,N为实例系统的总数,F为可变参数。符号[x)表示大于或等于x的最小整数,符号(x]表示小于或等于x的最大整数。如果x是整数,则[x)=(x]=x;如果x不是整数,则[x)和(x]是实数轴上x的两端与x最接近的整数。

如果所有差值不为零的应用差值调整为零后,有实例系统的实际应用安装数不符合设定应用安装数,则通过转移应用调整不同实例系统的实际应用安装数,所述的转移应用指应用在原实例系统上删除而在能安装该应用的其他实例系统上增加。

更进一步的,所述的转移应用优先转移新应用。

更进一步的,如果应用安装后占用的存储空间较大导致部分实例系统的实际应用安装数不符合设定应用安装数,则将实际应用安装数不符合设定应用安装数的实例系统的数量减少至最低。

实例系统应用的安装调整方法,包括:

根据实例系统应用的安装调整计算方法的计算结果遍历所有相关的实例系统,在每个实例系统上安装和/或卸载相应的应用。

本发明技术方案中,“包括”、“用于”等词语应按照开放式表达方式理解。本领域技术人员通过阅读本说明书并结合现有技术或公知常识能够获知的内容,本说明书中不再赘述。

本发明提供的实例系统应用的安装调整计算及安装调整方法,能够利用很短的时间完成云系统内应用安装策略的调整,应用安装和卸载的总次数可以十分接近甚至达到理论最小次数,同时能够保证每个实例系统实际安装的应用数量满足或非常接近最优值。

附图说明

图1(a)为具体实施方式的简单示例中实例系统已安装应用的分布图。

图1(b)为具体实施方式的简单示例中作为计算结果的应用在实例系统的分布图。

具体实施方式

下面对本发明的实施方式进行进一步的具体说明。但应注意,本发明的范围并不局限于所描述的具体技术方案。任何对所描述的具体技术方案中的技术要素进行相同或等同替换获得的技术方案或本领域技术人员在所描述的具体技术方案的基础上不经过创造性劳动就可以获得的技术方案,都应当视为落入本发明的保护范围。

某种操作系统加上运行该操作系统所需的必要硬件(例如处理器、存储器等),可以构成一个实例系统。将若干个实例系统按照一定的架构方式集中管理,可以形成云系统。对于一些实例系统而言,其存储器的存储空间非常大,完全可以一次性安装所有用户可能需要的应用。但对于一些实例系统而言,例如,操作系统为安卓(Android)系统的实例系统,这类实例系统的成本较低,但存储空间也比较小,主要用于运行游戏等特定的应用(每个安卓游戏占用的存储空间一般在100MB到600MB之间),在这些实例系统上安装用户可能需要的所有应用并不现实。实际中,云系统的运营商往往会制订安装策略,每个实例系统上只安装部分用户可能需要的应用,将用户需求较多的应用安装在较多数量的实例系统上,用户需求较少的应用安装在较少数量的实例系统上。后续运营过程中,再根据对用户数据的分析统计等调整安装策略。

安装策略的必要内容,一是每款应用期望安装多少个,二是每个实例系统上安装哪些应用。每款应用期望在云系统中安装多少个,可以将应用的期望并发数作为期望安装数。并发数指云系统中能同时运行该款应用的人数。对于每一款应用,运营商可以基于该应用并发数的历史统计、排队等待云系统分配该应用的用户数量、该应用的市场营销或推广力度等因素综合考虑,合理预测该应用的期望并发数。至于每个实例系统上安装哪些应用,在确定每款应用的安装数量后,可以利用一些已经公开的算法将每款应用分配到不同的实例系统,本发明技术方案中不再赘述。

如果对安装策略进行调整,则意味着一些实例系统上要安装和/或卸载一些应用。利用实例系统应用的安装调整计算方法,可以计算具体在哪些实例系统上安装和/或卸载哪些应用。

实例系统应用的安装调整计算方法,包括:

计算每个应用的计划安装数与已安装数的差值。计划安装数,指应用计划在云系统中安装的数量,计划安装数对应安装策略的调整。已安装数,指应用已经在云系统中安装的数量。对于新应用(之前未安装过的应用),其已安装数为零。如果计划安装数与已安装数的差值为正值,表示该应用的安装数量不足,需要增加安装;如果计划安装数与已安装数的差值为负值,表示该应用的安装数量过多,需要卸载。所有应用的计划安装数与已安装数的差值的绝对值之和,是调整安装策略时应用安装和卸载的理论最小次数。

计算获得每个应用计划安装数与已安装数的差值后,遍历所有差值不为零的应用:

如果某应用的差值为正,则遍历所有能安装该应用(能安装该应用,可以理解为安装该应用有实际意义。例如在同一实例系统的操作系统上安装两个相同的应用,如果对于相同的应用操作系统同一时间只允许运行一个,则这种安装并不能提高该应用的并发数,没有实际意义,因此将没有安装过该应用的实例系统视为能安装该应用的实例系统。)的实例系统,如果某实例系统上存在差值为负的应用,则将差值为负的应用替换为该应用;如果所有能安装该应用的实例系统都不存在差值为负的应用,则在已安装应用数量最少的能安装该应用的实例系统上增加该应用。上述方法相当于在云系统中增加了一个该应用,相应的差值减1,同时也可能减少一个差值为负的应用。

如果某应用的差值为负,则遍历所有已安装该应用的实例系统,如果某实例系统能安装差值为正的应用,则将该应用替换为差值为正的应用;如果云系统中已经不存在差值为正的应用或者所有已安装该应用的实例系统都不能安装差值为正的应用,则在已安装应用数量最多的已安装该应用的实例系统上删除该应用。上述方法相当于在云系统中减少了一个该应用,相应的差值加1,同时也可能增加一个差值为正的应用。

遍历所有差值不为零的应用的目的,是将所有应用的差值调整为零。重复以上所述的步骤,可以将一个应用的差值调整为零,之后进入另一个差值不为零的应用,这样遍历所有差值不为零的应用后,所有应用的差值都可以调整为零。

利用上述方法获得结果,可能不是最优的,例如可能存在负载不均衡,一些实例系统上安装的应用数量过多或者过少。对于每个实例系统,可以设定应用安装数为或者其中M为所有应用的总期望安装数,N为实例系统的总数,F为可变参数。符号[x)表示大于或等于x的最小整数,符号(x]表示小于或等于x的最大整数。如果x是整数,则[x)=(x]=x;如果x不是整数,则[x)和(x]是实数轴上x的两端与x最接近的整数。

设定应用安装数的依据如下:如果云系统中有N个实例系统,需要安装P款应用,应用i的期望安装数(期望并发数)为Mi,则应用i的计划安装数为F是可变参数,可以根据云系统的实际情况取值。F的意义在于控制云系统中计划安装的应用的总数量,确保云系统整体上不会负担过重。通常F取为1,期望安装数和计划安装数相同,但如果所有应用的总期望安装数过大,则F取大于1的值,使得计划安装数小于期望安装数。设为所有应用的总期望安装数,考虑每个实例系统同款应用只安装一个的情形,则每个实例系统的设定应用安装数为或者从负载均衡、平摊并发数损失等角度看,上述设定应用安装数是最优值。

如果所有差值不为零的应用差值调整为零后,有实例系统的实际应用安装数不符合设定应用安装数,则通过转移应用调整不同实例系统的实际应用安装数,所述的转移应用指应用在原实例系统上删除而在能安装该应用的其他实例系统上增加。转移应用,实际上就是在实际应用安装数超过设定应用安装数的实例系统、实际应用安装数不足设定应用安装数的实例系统和实际应用安装数符合设定应用安装数的实例系统之间进行应用的匹配(由于设定应用安装数很多情况下是两个相差1的整数,增加或删除一个应用并不一定会使实例系统的实际应用安装数不符合设定应用安装数),如果实际应用安装数较多的实例系统的某一个或几个应用能安装在实际应用安装数较少的实例系统上,则转移这些应用。经过数次匹配后,可以实现所有实例系统的实际应用安装数与设定应用安装数相符合。

转移应用优先转移新应用,因为新应用之前未安装过,后续进行应用的实际调整时,就可以只执行一次安装操作而不执行卸载操作,节约了调整时间。

以上所述的方法,只单纯考虑了应用的安装数量,没有考虑如果应用安装后占用的存储空间较大会影响应用的安装数量的情况,主要理由是实际中实例系统的硬件配置要符合运行应用的要求,如果很多应用安装后占用的存储空间相对于实例系统的存储空间而言都比较大,则表明实例系统的存储器配置过低了,应该通过升级实例系统的硬件或者增加云系统中实例系统的数量来应对。

如果特殊情况确实有少数应用,安装后占用的存储空间较大导致部分实例系统的实际应用安装数不符合设定应用安装数,则将这些应用单独考虑,计算其对其他应用安装数量的影响,将实际应用安装数不符合设定应用安装数的实例系统的数量减少至最低。将实际应用安装数不符合设定应用安装数的实例系统的数量减少至最低,可以采用平摊的方法,避免两个或两个以上安装后占用存储空间较大的应用位于同一实例系统,在一个实例系统上先安排一个安装后占用存储空间较大的应用,再安排其他安装后占用存储空间不大的应用,尽可能使实际应用安装数符合设定应用安装数。这种情况下可能会有少数实例系统的实际应用安装数与设定应用安装数不符合,没有达到最优值,但考虑到安装后占用存储空间较大的应用的数量很小,对云系统的整体性能影响不大。

以上所述的实例系统应用的安装调整计算方法,可以计算出云系统中的实例系统在安装策略调整后应用分布的变化,而实例系统应用的安装调整方法则是执行实例系统应用的安装调整计算方法的计算结果,真正实现应用的安装调整。

实例系统应用的安装调整方法,包括:

根据实例系统应用的安装调整计算方法的计算结果遍历所有相关的实例系统,在每个实例系统上安装和/或卸载相应的应用。如果某些实例系统根据计算结果其上的应该并没有任何变化,则实例系统应用的安装调整方法不涉及这些实例系统。

将实例系统应用的安装调整计算方法与实例系统应用的安装调整方法分离,是因为实例系统应用的安装调整计算方法可能需要多次计算寻找最佳结果,在获得最佳结果之前就执行实际调整,可能造成不必要的时间及其他资源的浪费。基于目前的计算能力,只要云系统中总的应用数量不是非常大,实例系统应用的安装调整计算方法的执行时间几乎可以忽略不计,随后实例系统应用的安装调整方法根据最佳计算结果进行调整,通过尽可能少的安装和卸载操作完成应用的实际调整。

下面通过一个理想化的简单示例对实例系统应用的安装调整计算方法和实例系统应用的安装调整方法进行直观说明。

为了简单起见,假设云系统中只有5个实例系统,云系统中已经安装了3个应用,应用在实例系统的分布如图1(a)所示。应用1的已安装数为4,应用2的已安装数为5,应用3的已安装数为1。

运营商调整了安装策略,调整后应用1的期望安装数为2,应用2的期望安装数为4,应用3的期望安装数为5,新应用应用4的期望安装数为2。F取为1,则各应用的计划安装数等于期望安装数,M=13,N=5,每个实例系统的设定应用安装数为2或3。

计算各应用的的计划安装数与已安装数的差值,应用1的差值为-2,应用2的差值为-1,应用3的差值为4,应用4的差值为2。

应用1的差值为负数-2,遍历所有已安装应用1的实例系统(遍历的顺序不一定按照实例系统的编号),如果遍历的顺序是实例系统2、3、4、1,实例系统2、3,能安装差值为正的应用3或4,选择将实例系统2、3中的应用1分别替换为应用3。此时应用1的差值为0,应用3的差值为2。

应用2的差值为负数-1,遍历所有已安装应用2的实例系统,如果遍历的顺序是实例系统1、2、3、4,实例系统1能安装差值为正的应用3或4,选择将实例系统1中的应用2替换为应用4。此时应用2的差值为0,应用4的差值为1。

应用3的差值为正数2,遍历所有能安装应用3的实例系统,此时能安装应用3的实例系统只有实例系统1、4,但实例系统1、4上都不存在差值为负的应用,无法替换。由于实例1、4上安装的应用的数量都是2个,都为已安装应用数量最少的能安装应用3的实例系统,则分别在实例系统1、4上安装一个应用3,此时应用3的差值为0。

应用4的差值为正数1,遍历所有能安装应用4的实例系统,此时能安装应用4的实例系统有实例系统2、3、4、5,但实例系统2、3、4、5上都不存在差值为负的应用,无法替换。由于实例2、3、5上安装的应用的数量都是2个,而实例系统4上安装的应用的数量是3个,实例2、3、5都为已安装应用数量最少的能安装应用4的实例系统,选择在实例系统2上安装一个应用4,此时应用4的差值为0。

作为以上计算的结果,应用在实例系统的分布如图1(b)所示,图中的虚线框代表有变化的应用,实线框代表无变化的应用。由于每个实例系统的实际应用安装数都符合设定应用安装数,不需要进一步的调整,实例系统应用的安装调整计算结束。

在此基础上,实施实例系统应用的安装调整,由云系统中的控制节点(控制节点用于控制和管理云系统中的实例系统,作为一种实施方式,由具有X86架构的控制服务器实现)根据计算结果,在实例系统1、2、3、4上安装和/或卸载相应的应用,实例系统5上的应用无任何变化,实施实例系统应用的安装调整不涉及实例系统5。

控制节点在实例系统1卸载应用2,安装应用3、4;在实例系统2卸载应用1,安装应用3、4;在实例系统3卸载应用1,安装应用3;在实例系统4安装应用3。上述卸载和安装的总次数为9次,而所有应用的差值的绝对值也是9,通过理论最小次数的安装和卸载就完成了应用安装策略的调整。

本领域技术人员在以上所描述的具体技术方案的基础上,完全可以构造出其他方案。例如,实例系统的设定应用安装数设置为其他合理的数值。在此不一一列举。

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