命令控制方法和命令控制器的制作方法

文档序号:6600166阅读:238来源:国知局
专利名称:命令控制方法和命令控制器的制作方法
技术领域
本发明涉及一种命令控制方法和命令控制器,更具体地涉及一种用于控制多个命令在云环境中的远程机上的执行的命令控制方法和命令控制器。
背景技术
目前,云计算已经成为研究热点之一。为了有效地进行云计算,需要构造和不断地更新云环境。云环境由大量远程机组成。这里所述的远程机包括远程物理机和远程虚拟机,除非另行说明。构造和更新云环境的一种核心方法是在远程机上远程地执行命令,以便在该远程机上执行相应的活动,或者获取该远程机的动态信息,其中,远程物理机的动态信息包括该远程物理机(服务器)的服务器基本信息、以及与该远程物理机的CPU和内存 (memory)有关的信息等,远程虚拟机的动态信息包括该远程虚拟机(服务器)的服务器基本信息、与该远程虚拟机的虚拟CPU和虚拟内存有关的信息、以及该远程虚拟机的配置信肩、^^ ο 从另一个角度来说,在远程机上执行命令也是产生云环境工作负载的主要因素。 具体地,在远程机上执行命令要消耗该远程机的内存空间和CPU的计算能力,从而产生工作负载,而且,由于不同的命令是在不同的时间执行的,因此执行这些命令所产生的工作负载也不相同。
在构造和更新云环境时,往往需要远程地执行大量命令,这些命令的出现是随机的,并且很多命令都倾向于被实时执行。如果不加控制地在云环境中实时地执行这些命令, 将消耗更多的计算资源,并且使得云环境的工作负载变得不稳定且难以预测和管理,从而使云环境的性能降低。此外,为了实时执行命令,需要与远程机建立直接的网络连接,当有大量命令要实时执行时,将建立大量的这种网络连接,此时,一旦网络连接出现故障,就无法执行相应的命令,导致任务失败。而且,由于命令出现的随机性,远程机上的基本命令行接口也被不受控制地调用,使得命令执行失败的风险增大。另一方面,对于不需要实时执行的命令,使用缓存机制来处理这些命令,并且暂存其执行结果,如果缺乏相应的更新机制, 所暂存的执行结果随着时间的过去而变得不准确。
因此,需要一种能够优化命令在云环境(远程机)中的执行从而提高云环境性能的命令控制方法和命令控制器。

发明内容
考虑到以上问题而提出了本发明。本发明的一个目的是提供一种命令控制方法和命令控制器,其能够根据云环境(远程机)的工作负载,动态地调度要在远程机上执行的命令,从而优化这些命令的执行,提高云环境的性能。
根据本发明的一个方面,提供了一种命令控制方法,用于控制多个命令在远程机上的执行,该命令控制方法包括根据所述多个命令中的每一个命令的预定属性,确定该命令的优先级;根据远程机的当前工作负载,确定命令包的最大总执行时间;根据所述最大总执行时间,按照优先级的降序将所述多个命令分别打包到一个或多个所述命令包中;以及将一个或多个所述命令包发送给远程机。
根据本发明的另一方面,提供了一种命令控制器,用于控制多个命令在远程机上的执行,该命令控制器包括负载检测器,用于检测远程机的当前工作负载;以及命令分析器,用于根据所述多个命令中的每一个命令的预定属性,确定该命令的优先级,根据所检测的远程机的当前工作负载,确定命令包的最大总执行时间,根据所述最大总执行时间,按照优先级的降序将所述多个命令分别打包到一个或多个所述命令包中,并且将一个或多个所述命令包发送给远程机。
根据本发明上述方面的命令控制方法和命令控制器根据要在远程机上执行的命令的预定属性以及云环境的工作负载来将命令打包,从而对命令的执行进行有效的动态调度,提高云环境的性能。


通过结合附图对本发明的实施例进行详细描述,本发明的上述和其它目的、特征、 优点将会变得更加清楚,其中 图1是示出根据本发明实施例的命令控制方法的流程图; 图2示出根据本发明实施例的命令控制方法的示例实现方式的流程图; 图3是用于说明图2中的步骤S205的流程图; 图4A是示意性地示出第一执行时间与远程机的CPU使用率之间的关系的函数图; 图4B是示意性地示出第二执行时间与远程机的可用内存之间的关系的函数图; 图4C是示意性地示出预测传输时间与网络负载之间的关系的函数图; 图5是示意性地示出命令包的最大总执行时间与远程机工作负载之间的关系的函数图; 图6是用于说明图2中的步骤S208的流程图; 图7是用于说明图2中的步骤S208的另一流程图; 图8A是示意性地示出按照优先级的降序排列的命令的例子的图; 图8B是示意性地示出对图8A所示的命令进行打包的结果的图;以及 图9是示出根据本发明实施例的命令控制器的框图。
具体实施例方式下面将参照附图来描述根据本发明实施例的命令控制方法和命令控制器。
首先,参照图1来简要描述根据本发明实施例的命令控制方法。该命令控制方法可以由命令控制器来执行,该命令控制器位于用于构造和更新云环境并且发出一个和多个命令的管理平台和用于执行管理平台发出的命令的云环境中的远程机之间,或者属于所述管理平台的一部分(在这种情况下,可以认为所述命令控制方法是由管理平台执行的)。
如图1所示,在步骤S101,根据多个命令中的每一个命令的预定属性,确定该命令的优先级。如下文所述,所述预定属性可以包括该命令的预测执行时间、预测传输时间、执行结果生存时间和命令频率中的一个或多个。该优先级用来确定将命令打包的顺序,从而确定将命令发送给远程机的顺序。
接下来,在步骤S102,根据远程机的当前工作负载,确定命令包的最大总执行时间。然后,在步骤S103,根据所述最大总执行时间,按照优先级的降序将所述多个命令分别打包到一个或多个所述命令包中。
随后,在步骤S104,将所述一个或多个命令包发送给远程机,以便在远程机中执行。
在实践中,在构造和更新云环境时,往往需要执行大量命令。不同的命令对于实时执行的要求不同,即,一些命令最好实时执行,而另一些命令可以不实时执行。考虑到这一点,在根据本发明的实施例的命令控制方法的以下示例实现方式中,将管理平台发出的命令区分为两类要实时执行的命令和不实时执行的命令。对于要实时执行的命令,不进行下文所述的调度处理,而是直接将其发送给远程机以便执行。对于不实时执行的命令,对其进行下文所述的处理,从而对这些命令的执行进行有效的调度。
下面,参照图2来描述根据本发明实施例的命令控制方法的示例实现方式。
如图2所示,在步骤S201,确定是否从管理平台接收到要在远程机上执行的命令。如果没有接收到命令,则该过程返回步骤S201。反之,如果接收到所述命令,则在步骤 S202,确定是否要实时执行该命令。可由发送该命令的管理平台预先指定是否要实时执行该命令,也可以根据要执行的命令的性质(例如,其要实现的功能或该命令的执行者等)或者其它因素来确定是否实时执行该命令。应当注意,如果该命令控制方法是由管理平台执行的,则可以不执行步骤S201。
如果在步骤S202确定不实时执行该命令,则在步骤S203,确定该命令的执行结果是否已经存在。
在构造和更新云环境的过程中,常常会多次执行相同的命令,并且当远程机执行了一个命令时,其将该命令的执行结果发送回命令控制器,使得该执行结果被暂存在命令控制器中,然后被返回给管理平台。由于从执行结果的暂存到返回之间存在一时间段,因此,为了避免向管理平台返回过旧的执行结果,对与每个执行结果相对应的命令设置失效时刻ET (expire time),以指示该命令的执行结果在何时失效。如果在执行一个命令之前刚刚执行过相同的命令并且尚未达到该命令的执行结果的失效时刻,则可以将暂存在命令控制器中的执行结果返回给管理平台,而不需要执行该命令。反之,如果没有执行过相同的命令,或者虽然执行过相同的命令但是其执行结果已经失效,则认为该命令的执行结果不存在,需要执行该命令。
因此,返回图2,如果在步骤S203确定该命令的执行结果已经存在,则在步骤 S204,将该执行结果返回给管理平台,而不执行该命令,然后该过程结束。反之,如果该命令的执行结果不存在,则在步骤S205,根据该命令的预定属性确定该命令的优先级,稍后将详细描述确定优先级的方法。
随后,在步骤S206确定是否存在其它要执行的命令,即,是否从管理平台接收到其它要执行的命令。如果存在其它要执行的命令,则该过程返回步骤S202,并且按照上述方式执行步骤S202-S206。反之,如果不存在其它要执行的命令,则在步骤S207,根据远程机的当前工作负载,确定命令包的最大总执行时间,并且在步骤S208,根据所述最大总执行时间,按照优先级的降序将所述多个命令分别打包到一个或多个命令包中。稍后将详细描述确定最大总执行时间和将命令打包的方法。
接下来,在步骤S209,将所述一个或多个命令包发送给远程机,以便在远程机中执行。在这里,可以按照命令包内的命令的优先级的降序或者其它顺序来发送所述一个或多个命令包。然后,该过程结束。
另一方面,如果在步骤S202确定要实时执行该命令,则在步骤S210,将该命令发送给远程机以便执行,然后该过程结束。
下面,将参照图3来详细描述在图2所示的步骤S205中确定命令的优先级的过程。
如图2所示,在步骤S2051中,将该命令存储在命令注册表中,该命令注册表例如可以被存储在命令控制器的存储器中。
下表1给出了命令注册表的例子。如表1所示,命令注册表包括多个条目(行), 每个条目对应一条命令,并且包括项目“索引”、“名称”、“最近请求时间”、“生存时间”、“命令频率”、“预测传输时间”、“预测执行时间”和“结果指针”。“索弓丨”和“名称”用来标识存储在命令注册表中的命令。“最近请求时间”是指最近接收到该命令(换言之,与该命令相同的命令)的时间。预测执行时间PET是指所预测的、在远程机上执行该命令所需要的时间, 其取决于命令的复杂程度。预测传输时间PTT是指所预测的、将该命令从命令控制器经由网络传送到远程机所需要的时间,其取决于网络传输的延迟。生存时间LT(live time)是指该命令(换言之,与之相同的命令)的执行结果有效的时间。命令频率CF是指接收到该命令的频率,换言之,在单位时间内接收到与该命令相同的命令的次数。“结果指针”指示远程机执行该命令所获得的执行结果在命令控制器中的存储位置。如下文所述,所述执行结果可以被存储在命令控制器的命令结果存储器中,此时“结果指针”指示执行结果在命令结果存储器中的存储位置。当在命令注册表中存储命令时,从该命令中提取该命令的名称,并且将命令控制器自动记录的该命令的最近请求时间写入与该命令对应的条目中。
表1 命令注册表
权利要求
1.一种命令控制方法,用于控制多个命令在远程机上的执行,该命令控制方法包括根据所述多个命令中的每一个命令的预定属性,确定该命令的优先级;根据远程机的当前工作负载,确定命令包的最大总执行时间;根据所述最大总执行时间,按照优先级的降序将所述多个命令分别打包到一个或多个所述命令包中;以及将一个或多个所述命令包发送给远程机。
2.如权利要求1所述的命令控制方法,还包括计算所述多个命令中的每一个命令的预定属性,所述预定属性包括该命令的预测执行时间、预测传输时间、执行结果生存时间和命令频率中的至少一个。
3.如权利要求2所述的命令控制方法,其中,所述预测执行时间分别与远程机的CPU使用率和可用内存满足指数函数关系。
4.如权利要求2所述的命令控制方法,其中,所述预测传输时间与将该命令发送给远程机时的网络负载满足指数函数关系。
5.如权利要求3或4所述的命令控制方法,其中,根据该命令之前的命令的历史数据来确定所述指数函数的参数。
6.如权利要求5所述的命令控制方法,其中,在计算命令的预定属性之前,根据该命令之前的命令的历史数据来更新所述指数函数的参数。
7.如权利要求1或2所述的命令控制方法,其中,基于远程机的当前工作负载,根据预先定义的、远程机的工作负载与命令包的最大总执行时间之间的关系,来确定命令包的最大总执行时间。
8.如权利要求2所述的命令控制方法,其中,按照优先级的降序将所述多个命令分别打包到一个或多个所述命令包中的步骤包括按照优先级的降序将所述多个命令排序;从排序后的所述多个命令中选择命令,使得所选命令的预测执行时间之和不超过所述最大总执行时间;将所选命令打包到一个命令包中;以及重复上述选择和打包步骤,直到将所述多个命令分别打包到一个或多个所述命令包中为止。
9.如权利要求2所述的命令控制方法,其中,按照优先级的降序将所述多个命令分别打包到一个或多个所述命令包中的步骤包括按照优先级的降序将所述多个命令排序;从排序后的所述多个命令中选择命令,使得所选命令的预测执行时间之和不超过所述最大总执行时间,并且所选命令的数目不超过预先设定的命令包底线,所述命令包底线是允许命令包包含的命令的最大数目;将所选命令打包到一个命令包中;以及重复上述选择和打包步骤,直到将所述多个命令分别打包到一个或多个所述命令包中为止。
10.如权利要求9所述的命令控制方法,其中,所述命令包底线是按照黄金分割原则设定的。
11.如权利要求1所述的命令控制方法,其中,还包括检测远程机的即时工作负载,并且其中,如果该即时工作负载相对于所述当前工作负载的变化量超过预定阈值,则使用该即时工作负载来重新确定命令包的最大总执行时间。
12.—种命令控制器,用于控制多个命令在远程机上的执行,该命令控制器包括负载检测器,用于检测远程机的当前工作负载;以及命令分析器,用于根据所述多个命令中的每一个命令的预定属性,确定该命令的优先级,根据所检测的远程机的当前工作负载,确定命令包的最大总执行时间,根据所述最大总执行时间,按照优先级的降序将所述多个命令分别打包到一个或多个所述命令包中,并且将一个或多个所述命令包发送给远程机。
13.如权利要求12所述的命令控制器,其中,命令分析器还计算所述多个命令中的每一个命令的预定属性,所述预定属性包括命令的预测执行时间、预测传输时间、执行结果生存时间和命令频率中的至少一个。
14.如权利要求13所述的命令控制器,其中,所述预测执行时间分别与远程机的CPU使用率和可用内存满足指数函数关系。
15.如权利要求13所述的命令控制器,其中,所述预测传输时间与将该命令发送给远程机时的网络负载满足指数函数关系。
16.如权利要求14或15所述的命令控制器,其中,命令分析器根据该命令之前的命令的历史数据来确定所述指数函数的参数。
17.如权利要求16所述的命令控制器,其中,在计算命令的预定属性之前,命令分析器根据该命令之前的命令的历史数据来更新所述指数函数的参数。
18.如权利要求12或13所述的命令控制器,其中,命令分析器基于所述远程机的当前工作负载,根据预先定义的、远程机的工作负载与命令包的最大总执行时间之间的关系,来确定所述命令包的最大总执行时间。
19.如权利要求13所述的命令控制器,其中,命令分析器按照以下方式,按照优先级的降序将所述多个命令分别打包到一个或多个所述命令包中按照优先级的降序将所述多个命令排序;从排序后的所述多个命令中选择命令,使得所选命令的预测执行时间之和不超过所述最大总执行时间;将所选命令打包到一个命令包中;以及重复上述选择和打包步骤,直到将所述多个命令分别打包到一个或多个所述命令包中为止。
20.如权利要求13所述的命令控制器,其中,命令分析器按照以下方式,按照优先级的降序将所述多个命令分别打包到一个或多个所述命令包中按照优先级的降序将所述多个命令排序;从排序后的所述多个命令中选择命令,使得所选命令的预测执行时间之和不超过所述最大总执行时间,并且所选命令的数目不超过预先设定的命令包底线,所述命令包底线是允许命令包包含的命令的最大数目;将所选命令打包到一个命令包中;以及重复上述选择和打包步骤,直到将所述多个命令分别打包到一个或多个所述命令包中为止。
21.如权利要求20所述的命令控制器,其中,所述命令包底线是按照黄金分割原则设定的。
22.如权利要求12所述的命令控制器,其中,所述负载检测器还检测远程机的即时工作负载,并且其中,如果该即时工作负载相对于所述当前工作负载的变化量超过预定阈值, 则使用该即时工作负载来重新确定命令包的最大总执行时间。
全文摘要
提供了一种命令控制方法和命令控制器,用于控制多个命令在远程机上的执行。所述命令控制方法包括根据所述多个命令中的每一个命令的预定属性,确定该命令的优先级;根据远程机的当前工作负载,确定命令包的最大总执行时间;根据所述最大总执行时间,按照优先级的降序将所述多个命令分别打包到一个或多个所述命令包中;以及将一个或多个所述命令包发送给远程机。通过所述命令控制方法和命令控制器,可以优化命令在云环境中的执行,提高云环境的性能。
文档编号G06F9/50GK102207889SQ20101013912
公开日2011年10月5日 申请日期2010年3月31日 优先权日2010年3月31日
发明者操保华, 何乐, 金涬, 王庆波, 陈滢 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1