CN103761128A - 一种指令执行方法、装置及系统 - Google Patents

一种指令执行方法、装置及系统 Download PDF

Info

Publication number
CN103761128A
CN103761128A CN201410012409.5A CN201410012409A CN103761128A CN 103761128 A CN103761128 A CN 103761128A CN 201410012409 A CN201410012409 A CN 201410012409A CN 103761128 A CN103761128 A CN 103761128A
Authority
CN
China
Prior art keywords
instruction
execution
timing
resource allocation
carry out
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201410012409.5A
Other languages
English (en)
Inventor
王哲
张凯
孔德亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201410012409.5A priority Critical patent/CN103761128A/zh
Publication of CN103761128A publication Critical patent/CN103761128A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种指令执行方法及装置,该方法服务器在执行一个定时执行指令时,可以根据针对该定时执行指令预设的资源配置信息,采用相应的资源执行该定时执行指令,从而执行该定时执行指令时不会占用服务器全部的资源,因此可有效避免发生资源抢占的情况,在服务器执行定时执行指令的过程中可保证服务器提供的其他服务的质量。

Description

一种指令执行方法、装置及系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种指令执行方法、装置及系统。
背景技术
定时执行指令是操作系统中最常用的指令之一,用于在指定的时刻到来时执行,以完成某些操作。定时执行指令中携带执行时刻信息,用于指示该定时执行指令的执行时刻,这些定时执行指令通常被写入在某个特定的脚本中。
例如,在Unix和类Unix操作系统中,定时执行指令被写入在Crontab脚本中。Unix和类Unix操作系统中的Crontab脚本用于设置定时执行指令,Crontab脚本中的定时执行指令的执行过程为:服务器通过自身的Unix或类Unix操作系统启动crond守护进程,crond守护进程周期性(如以1分钟为周期)的根据当前时刻信息,判断Crontab脚本中是否存在执行时刻信息与当前时刻信息匹配的定时执行指令,如果存在,则执行相应的定时执行指令。
然而,在现有技术中,服务器在执行定时执行指令时,并未对执行该定时执行指令所占用的资源进行限制,这就意味着定时执行指令的执行过程将占用服务器中全部的资源(如服务器的CPU、内存等资源),影响了服务器所提供的其他服务的质量。
例如,假设Crontab脚本中的一个定时执行指令是整理一天时间内的日志文件,该定时执行指令的执行时刻信息是0点,则服务器会在每天的0点执行Crontab中的该定时执行指令。在执行该定时执行指令的过程中,由于服务器并未对其占用的资源进行限制,因此该定时执行指令的执行会占用该服务器中全部的资源。如果该定时执行指令在执行的过程中,有用户访问服务器,那么就会由于服务器自身的剩余资源过少而产生资源抢占的情况,降低该服务器向用户提供服务的质量。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的指令执行方法、装置及系统,能够有效地避免发生资源抢占的情况,在服务器执行定时执行指令的过程中提高服务器提供的其他服务的质量。
根据本发明的第一个方面,提出一种指令执行方法,包括:
为定时执行指令设置资源配置信息,其中,所述资源配置信息规定了所述定时执行指令执行时要使用的资源;
当所述定时执行指令的执行时刻信息与当前时刻信息匹配时,将所述资源配置信息中规定的资源分配给所述定时执行指令;
采用分配的资源执行所述定时执行指令。
可选地,为所述定时执行指令设置资源配置信息进一步包括:
设置所述定时执行指令在执行时所要使用的中央处理器CPU的CPU标识、相对共享CPU时间、内存、磁盘输入/输出接口的标识中的至少一种。
可选地,所述方法还包括:
为所述定时执行指令设置对应的设定时长;
采用分配的资源执行所述定时执行指令进一步包括:
在执行所述定时执行指令时,监控所述定时执行指令的执行时长;并
当监控的所述执行时长达到所述设定时长时,终止所述定时执行指令的执行。
可选地,所述方法还包括:
根据所述定时执行指令的执行开始时刻、执行结束时刻以及执行结果,生成所述定时执行指令的执行日志,并存储所述执行日志。
根据本发明的第二个方面,提出一种指令执行方法,包括:
根据当前时刻信息,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;
确定查找到的所述定时执行指令对应的资源配置信息,其中,所述资源配置信息是根据指定规则,预先针对所述定时执行指令设置的;以及
采用所述资源配置信息所规定的资源,执行所述定时执行指令。
可选地,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令之前,还包括:
接收管理器发送的携带定时执行指令以及定时执行指令对应的资源配置信息的脚本;
查找执行时刻信息与所述当前时刻信息匹配的定时执行指令进一步包括:
在接收到的所述脚本中,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;
确定查找到的所述定时执行指令对应的资源配置信息进一步包括:
在接收到的所述脚本中,确定查找到的所述定时执行指令对应的资源配置信息。
可选地,执行所述定时执行指令进一步包括:
确定所述定时执行指令对应的设定时长,其中,所述设定时长是预先针对所述定时执行指令设置的;并
监控所述定时执行指令的执行时长;以及
当监控的所述执行时长达到确定的所述设定时长时,终止所述定时执行指令的执行。
可选地,执行所述定时执行指令之后,还包括:
根据所述定时执行指令的执行开始时刻、执行结束时刻以及执行结果,生成所述定时执行指令的执行日志,并存储所述执行日志。
根据本发明的第三个方面,提出一种指令执行装置,包括:
查找模块,用于根据当前时刻信息,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;
确定模块,用于确定所述查找模块查找到的所述定时执行指令对应的资源配置信息,其中,所述资源配置信息是根据指定规则,预先针对所述定时执行指令设置的;
执行模块,用于采用所述资源配置信息所规定的资源,执行所述定时执行指令。
可选地,所述装置还包括:
接收模块,用于接收管理器发送的携带定时执行指令以及定时执行指令对应的资源配置信息的脚本;
所述查找模块具体用于,在所述接收模块接收到的所述脚本中,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;
所述确定模块具体用于,在所述接收模块接收到的所述脚本中,确定所述查找模块查找到的所述定时执行指令对应的资源配置信息。
可选地,所述执行模块具体用于,确定所述定时执行指令对应的设定时长,其中,所述设定时长是预先针对所述定时执行指令设置的;监控所述定时执行指令的执行时长,当监控的所述执行时长达到确定的所述设定时长时,终止所述定时执行指令的执行。
可选地,所述装置还包括:
日志模块,用于在所述执行模块执行所述定时执行指令之后,根据所述定时执行指令的执行开始时刻、执行结束时刻以及执行结果,生成所述定时执行指令的执行日志,并存储所述执行日志。
根据本发明的第四个方面,提出一种指令执行系统,包括:
管理器,用于为定时执行指令设置资源配置信息,向服务器发送定时执行指令以及所述定时执行指令对应的资源配置信息,其中,所述资源配置信息规定了所述定时执行指令执行时所要使用的资源;
服务器,用于根据当前时刻信息,在管理器发送的定时执行指令中查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;确定查找到的所述定时执行指令对应的资源配置信息;采用所述资源配置信息所规定的资源,执行查找到的所述定时执行指令。
可选地,所述管理器具体用于,向服务器发送携带定时执行指令以及定时执行指令对应的资源配置信息的脚本,其中,所述管理器向每个服务器发送的脚本均相同;
所述服务器具体用于,接收所述管理器发送的所述脚本,在接收到的所述脚本中,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令,并在接收到的所述脚本中,确定查找到的所述定时执行指令对应的资源配置信息。
可选地,所述管理器还用于,为定时执行指令设置对应的指定服务器标识,并将设置的指定服务器标识携带在所述脚本中;
所述服务器还用于,在执行查找到的所述定时执行指令之前,确定所述脚本中携带的、查找到的所述定时执行指令对应的指定服务器标识中包含所述服务器自身的服务器标识。
根据本发明提供的指令执行方法,服务器在执行一个定时执行指令时,可以根据针对该定时执行指令预设的资源配置信息,采用相应的资源执行该定时执行指令,从而执行该定时执行指令时不会占用服务器全部的资源,因此可有效避免发生资源抢占的情况,在服务器执行定时执行指令的过程中可保证服务器提供的其他服务的质量。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为依据本发明一个实施例的指令执行方法;
图2为依据本发明另一个实施例的指令执行方法;
图3为依据本发明一个实施例的管理器与多个服务器的组网架构示意图;
图4为依据本发明图3所示的实施例中任一服务器执行定时执行指令的详细方法;
图5为依据本发明一个实施例的指令执行装置结构示意图;
图6为依据本发明一个实施例的指令执行系统结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
下面结合说明书附图,对本发明实施例进行详细描述。
图1为依据本发明一个实施例的指令执行方法,可以包括步骤:
S101:为定时执行指令设置资源配置信息。
其中,资源配置信息规定了该定时执行指令执行时所要使用的资源。
S102:当该定时执行指令的执行时刻信息与当前时刻信息匹配时,将该资源配置信息中规定的资源分配给该定时执行指令。
S103:采用分配的资源执行该定时执行指令。
从上述可知,依据该实施例,为定时执行指令设置资源配置信息,即,为每一个定时执行指令设置该定时执行指令执行时所要使用的资源。当该定时执行指令的执行时刻信息与当前时刻信息匹配时,将该资源配置信息中规定的资源分配给该定时执行指令,也就是说,当该定时执行指令的执行时间到来时,就把为该定时执行指令设置的资源分配信息中规定的资源分配给该定时执行指令,然后,采用分配给该定时执行指令的资源来执行该定时执行指令。从而,使得在执行定时执行指令时,只采用资源配置信息所规定的资源,而不会采用全部资源,因此可以有效避免了定时执行指令执行过程中占用系统全部资源而影响对其他服务的资源供应,因而大大提高了系统提供服务的质量。
依据本发明的一个实施例,可预先针对每个要执行的定时执行指令设置对应的资源配置信息,预设的资源配置信息可以写入定时执行指令所在的脚本中。也即,除了将要执行的定时执行指令以及每个定时执行指令对应的执行时刻信息写入在脚本中以外,还可将预设的每个定时执行指令对应的资源配置信息写入在脚本中。
依据本发明的一个实施例,在图1所示的步骤S101中,可按照一定的规则,为每个要执行的定时执行指令设置资源配置信息,该资源配置信息所规定的资源就是该定时执行指令在执行时所要占用的资源。具体的,执行一个定时执行指令所要占用的资源包括:中央处理器(CentralProcessingUnit,CPU)、相对共享CPU时间、内存、磁盘输入/输出(Input/Output,I/O)接口中的至少一种。则针对一个定时执行指令设置资源配置信息的方法的一个示例可以包括:设置该定时执行指令在执行时所要占用的CPU的CPU标识、相对共享CPU时间、内存、磁盘I/O接口标识中的至少一种。也就是说,预设的资源配置信息中可包括:CPU标识、相对共享CPU时间、内存大小、磁盘I/O接口标识中的至少一种。需要说明的是,对于单核的服务器来说,资源配置信息中可不包括CPU标识,而对于多核的服务器来说,资源配置信息中则可以包括CPU标识。
在设定所要占用的CPU标识和磁盘I/O接口的标识时,可随机在服务器自身的多个CPU中任意选择一个或几个CPU,在服务器自身的多个磁盘I/O接口中任意选择一个或几个磁盘I/O接口,并将执行该定时执行指令所要占用的CPU的标识设定为选择出的CPU的标识,将所要占用的磁盘I/O接口的标识设定为选择出的磁盘I/O接口的标识。当然,也可以根据其他规则设定定时执行指令所要占用的CPU和磁盘I/O的标识,例如,基于负载均衡的考虑,可根据服务器自身CPU的数量,轮循的为每个要执行的定时执行指令设定其所要占用的CPU的标识,根据服务器自身磁盘I/O的数量,轮循的为每个要执行的定时执行指令设定其所要占用的磁盘I/O的标识。或者,也可以预设每个CPU与定时执行指令的指令类型的对应关系,当要执行某个定时执行指令时,根据该定时执行指令的指令类型,为该定时执行指令设定其要占用的CPU的标识即为该定时指令的指令类型对应的CPU的标识,类似的,可以预设每个I/O与定时执行指令的指令类型的对应关系,当要执行某个定时执行指令时,根据该定时执行指令的指令类型,为该定时执行指令设定其要占用的I/O的标识即为该定时指令的指令类型对应的I/O的标识。再或者,可预先保存各CPU的执行能力参数信息(执行能力参数信息用于表征CPU执行指令的能力),并预设每个定时执行指令所需的CPU执行能力参数范围,当要执行某个定时执行指令时,根据该定时执行指令所需的CPU执行能力参数范围,为该定时执行指令设定的CPU的标识即为:执行能力参数信息落在该CPU执行能力参数范围内的任一CPU的标识;类似的,可预先保存各I/O的传输能力参数信息(传输能力参数信息用于表征I/O传输数据的能力),并预设每个定时执行指令所需的I/O传输能力参数范围,当要执行某个定时执行指令时,根据该定时执行指令所需的I/O传输能力参数范围,为该定时执行指令设定的I/O的标识即为:传输能力参数信息落在该I/O传输能力参数范围内的任一I/O的标识。
在设定所要占用的相对共享CPU时间和内存大小时,可根据该定时执行指令所需的最小相对共享CPU时间和最小内存进行设定。当然,也可根据其他规则设定定时执行指令所要占用的相对共享CPU时间和内存大小,例如,根据每个要执行的定时执行指令所需的最小相对共享CPU时间的最大值,设定定时执行指令所要占用的相对共享CPU时间;根据每个要执行的定时执行指令所需的最小内存的最大值,设定定时执行指令所要占用的内存大小。其中,由于实际应用场景中CPU在执行定时执行指令时是在某个指定时间段内执行的,这个指定时间段又被分为若干个时间片,CPU在每个时间片中执行的定时执行指令可能相同,也可能不同,因此,本发明实施例中所述的一个定时执行指令所要占用的相对共享CPU时间是指CPU执行该定时执行指令所占的时间片与该指定时间段内所有时间片的比值,其可以表征CPU要使用多少时间片来执行该定时执行指令。
依据本发明的一个实施例,在上述图1所示的过程中,步骤S101~S103可均由服务器执行,即,服务器为自身要执行的定时执行指令设置资源配置信息,并根据设置的资源配置信息执行定时执行指令;或者,考虑到实际应用场景中往往存在多台服务器,为了便于对多台服务器的集中管理,上述图1所示的步骤S101可由管理器执行,步骤S102~S103由服务器执行,即,由管理器为定时执行指令设置资源配置信息,并由管理器将定时执行指令以及设置的资源配置信息下发给服务器,再由服务器根据资源配置信息执行定时执行指令。
下面以由管理器设置资源配置信息,服务器根据管理器设置的资源配置信息执行定时执行指令为例进行详细说明。
图2为依据本发明另一个实施例的指令执行方法,可以包括步骤:
S201:根据当前时刻信息,查找执行时刻信息与当前时刻信息匹配的定时执行指令。
S202:确定查找到的定时执行指令对应的资源配置信息。
其中,该资源配置信息是根据指定规则,预先针对定时执行指令设置的。
S203:采用资源配置信息所规定的资源,执行该定时执行指令。
在图2所示的步骤S201中,服务器可根据当前时刻信息,查找执行时刻信息与当前时刻信息匹配的定时执行指令。具体的,服务器可按照设定的时间间隔(如1分钟),在定时执行指令所在的脚本中周期性的查找执行时刻信息与当前时刻信息匹配的定时执行指令。其中,该脚本可以是预先配置在服务器中的,也可以是由管理器发送给服务器的。
例如,在操作系统为Unix或类Unix操作系统的服务器中,可预先将要执行的定时执行指令以及每个定时执行指令对应的执行时刻信息写入在Crontab脚本中,服务器则通过Unix或类Unix操作系统启动用于查找定时执行指令的crond守护进程,crond守护进程每分钟根据当前时刻信息,查找Crontab脚本中执行时刻信息与当前时刻信息匹配的定时执行指令。
假设当前时刻为10:38,则服务器查找Crontab脚本中执行时刻信息同样为10:38的定时执行指令。
依据本发明的一个实施例,服务器查找到执行时刻信息与当前时刻信息匹配的定时执行指令后,则可确定查找到的定时执行指令对应的资源配置信息,并将确定的资源配置信息所规定的资源分配给该定时执行指令,采用分配的资源来执行该定时执行指令。
例如,步骤S201中针对执行时刻信息为10:38的定时执行指令,预设的资源配置信息可以为:CPU标识为2、内存大小为100M。该资源配置信息表示服务器在执行上述执行时刻信息为10:38的定时执行指令时,采用自身CPU标识为2的CPU、100M的内存来执行该定时执行指令。服务器通过步骤S201查找到执行时刻信息为10:38的定时执行指令,并根据该定时执行指令对应的资源配置信息(CPU标识为2、内存大小为100M)为该定时执行指令分配相应的资源,最后采用分配的资源,即自身标识为2的CPU和100M的内存执行该定时执行指令。
如果该服务器是四核的服务器,总内存为8G,则依据本发明的上述实施例可以看出,服务器执行上述定时执行指令的过程只占用了标识为2的一个CPU和100M的内存,并未占用服务器的全部资源,从而,当服务器在执行上述定时执行指令的过程中还要提供其他服务时,就可利用自身的剩余资源提供其他服务,而不会发生资源抢占的情况,因此可有效提高服务器在执行定时执行指令时提供其他服务的质量。
考虑到在实际应用中,大规模服务器集群中一般具有数千台甚至上万台服务器,而每台服务器分别设置各自要执行的定时执行指令及其对应的资源配置信息显然效率较低,甚至是不现实的,因此,依据本发明的一个实施例,可通过用于管理多个服务器的管理器,统一向多个服务器发送定时执行指令以及定时执行指令对应的资源配置信息。具体的,管理器可向各服务器发送携带定时执行指令以及定时执行指令对应的资源配置信息的脚本,其中,管理器向每个服务器发送的脚本均相同。这样,管理员只需在管理器中配置一个脚本,并通过管理器将该脚本下发到各个服务器即可。则在上述图2所示的过程中,服务器在通过步骤S201查找执行时刻信息与当前时刻信息匹配的定时执行指令之前,还要接收管理器发送的携带定时执行指令以及定时执行指令对应的资源配置信息的脚本。在通过步骤S201查找执行时刻信息与当前时刻信息匹配的定时执行指令时,可在接收到的脚本中,查找执行时刻信息与当前时刻信息匹配的定时时刻指令。在通过步骤S202确定查找到的定时执行指令对应的资源配置信息时,可在接收到的脚本中,确定查找到的定时执行指令对应的资源配置信息,并将确定的资源配置信息所规定的资源分配给该定时执行指令。
依据本发明的一个实施例,由于各个服务器所要执行的定时执行指令并不完全相同,而由管理器统一向各服务器下发脚本势必会造成各个服务器都要执行相同的定时执行指令的问题,因此,本发明实施例中为了灵活配置每个服务器所要执行的定时执行指令,还可在脚本中针对每个定时执行指令预设相应的指定服务器标识。其中,针对一个定时执行指令预设的指定服务器标识对应的服务器即为:要执行该定时执行指令的服务器。
相应的,在图2所示的过程中,服务器在通过步骤S203执行查找到的定时执行指令之前,还要确定脚本中携带的、针对查找到的该定时执行指令预设的指定服务器标识,并判断确定的指定服务器标识中是否包含该服务器自身的服务器标识,若是,则执行该定时执行指令,否则,放弃执行该定时执行指令。
上述指定服务器标识可以是指定服务器的互联网协议(InternetProtocol,IP)地址信息、媒体接入控制(MediaAccessControl,MAC)地址信息或其他可以唯一标识一个服务器的信息。
依据本发明的一个实施例,当指定服务器标识是服务器的IP地址信息时,针对一个定时执行指令,可预设该定时执行指令对应的指定服务器标识为某一个服务器的IP地址信息,如10.121.21.2,也可以预设为IP地址连续的多个服务器的IP地址信息,如10.102.6.18-25,也可以预设为IP地址在某个网段的多个服务器的IP地址信息,如10.121.215.0。当指定服务器标识是服务器的MAC地址信息时,针对一个定时执行指令预设的指定服务器标识则可以预设为每个要执行该定时执行指令的服务器的MAC地址信息,这里就不再一一赘述。
类似的,通过管理器统一向各服务器下发脚本的方式也会使每个服务器在执行同一个定时执行指令时所占用的资源相同,因此,依据本发明的一个实施例,为了更加灵活的配置每个服务器执行同一个定时执行指令所占用的资源,在脚本中为定时执行指令预设了指定服务器标识后,还可以针对每个指定服务器标识预设相应的资源配置信息,则在图1所示的过程中,服务器在查找到执行时刻信息与当前时刻信息匹配的定时执行指令后,可先判断该脚本中携带的、针对该定时执行指令预设的指定服务器标识中是否包含该服务器自身的服务器标识,若是,则在该脚本中确定针对该定时执行指令预设的该服务器自身的服务器标识所对应的资源配置信息,并采用确定的资源配置信息所规定的资源执行该定时执行指令,相反的,若确定针对该定时执行指令预设的指定服务器标识中未包含该服务器自身的服务器标识,则放弃执行该定时执行指令。
当然,在脚本中,针对一个定时执行指令,也可以预设一个默认资源配置信息,并针对某些要执行该定时执行指令的特定服务器,为该特定服务器的服务器标识预设对应的资源配置信息,则服务器在要执行该定时执行指令时(即,确定针对该定时执行指令预设的指定服务器标识中包含该服务器自身的服务器标识时),在脚本中查找针对该服务器自身的服务器标识预设的资源配置信息,若查找到,则采用查找到的资源配置信息所规定的资源执行该定时执行指令,若未查找到,则采用针对该定时执行指令预设的默认资源配置信息所规定的资源执行该定时执行指令。
依据本发明的一个实施例,考虑到在实际应用场景中,如果服务器执行一个定时执行指令的时长过长,也会影响到服务器提供其他服务的质量,因此,本发明实施例中针对一个定时执行指令,还可针对该定时执行指令预设一个对应的设定时长,该设定时长也可以携带在由管理器下发给服务器的脚本中。相应的,服务器在通过如图2所示的步骤S203执行定时执行指令时,则需要确定该定时执行指令对应的设定时长,并监控该定时执行指令的执行时长,当监控的执行时长达到确定的该设定时长时,终止该定时执行指令的执行。也即,一旦执行某个定时执行指令的时间长度达到设定时长,服务器就强制结束该定时执行指令的执行。当然,该设定时长也可由服务器自身设置,无需由管理器下发给服务器。
依据本发明的一个实施例,为了便于后续查看各定时执行指令的执行情况,服务器还可记录定时执行指令的执行开始时刻和执行结束时刻,并实时的记录定时执行指令在执行过程中所产生的执行结果。具体的,对于执行结束时刻来说,如果一个定时执行指令的执行是被服务器强制结束的,则服务器强制结束执行该定时执行指令的时刻就是该定时执行指令的执行结束时刻。后续的,服务器在执行定时执行指令之后,则可根据该定时执行指令的执行开始时刻、执行结束时刻以及执行结果,生成该定时执行指令的执行日志,并存储该执行日志。具体的,可将该执行日志导入到数据库中存储。例如,服务器可调用诸如超文本传输协议(Hyper Text Transport Protocol,HTTP)的应用程序编程接口(Application Programming Interface,API),将执行日志导入到数据库中。
另外,当服务器所使用的操作系统是Unix或类Unix操作系统时,管理器可将要执行的定时执行指令以及每个定时执行指令对应的执行时刻信息、资源配置信息、指定服务器标识和设定时长封装为一个cronwrapper.sh脚本,并将该cronwrapper.sh脚本下发给各个服务器,使各个服务器将接收到的cronwrapper.sh脚本配置在各自的Crontab脚本中,这样,当Unix系统启动时,crond守护进程就会周期性的执行Crontab脚本中的cronwrapper.sh脚本,从而按照cronwrapper.sh脚本中的执行时刻信息、资源配置信息等执行cronwrapper.sh脚本中的定时执行指令。
需要注意的是,依据本发明的一些实施例,采用了将为定时执行指令设置的资源配置信息放在了一个脚本中,也即以脚本的形式提供给服务器等设备的,本领域技术人员应当可以想到,还可以把为定时执行指令设置的资源配置信息放置在一个数据表中、放在一个缓存器中、放在一个动态存储区中等等,只要在需要执行定时执行指令的时候,能够从该数据表、缓存器或动态存储区等中取得该资源配置信息即可。
图3为依据本发明一个实施例的管理器与多个服务器的组网架构示意图,在图3中,管理器分别与服务器1、服务器2、服务器3这三个服务器相连,这三个服务器又与数据库相连。
基于图3所示的架构,假设这三个服务器的操作系统都是Unix操作系统或类Unix操作系统,则管理员可先在管理器上配置要执行的每个定时执行指令以及每个定时执行指令对应的执行时刻信息、资源配置信息、指定服务器标识和设定时长,再将配置的上述信息封装成一个cronwrapper.sh脚本,管理器则将该cronwrapper.sh脚本分别下发给这三个服务器,这三个服务器则分别将cronwrapper.sh脚本配置在各自的Crontab脚本中。
图4为依据本发明图3所示的实施例中任一服务器执行定时执行指令的详细方法,包括步骤:
S401:服务器的Unix系统或类Unix系统在启动时启动crond守护进程,crond守护进程周期性的执行自身Crontab脚本中的cronwrapper.sh脚本,并执行下述步骤S402~S410。
S402:查找cronwrapper.sh脚本中执行时刻信息与当前时刻信息匹配的定时执行指令。
S403:判断cronwrapper.sh脚本中查找到的定时执行指令对应的指定服务器标识中是否包含服务器自身的服务器标识,若是,执行步骤S404,否则执行步骤S410。
S404:确定cronwrapper.sh脚本中携带的该定时执行指令对应的资源配置信息和设定时长。
S405:采用确定的资源配置信息所规定的资源,执行该定时执行指令,并监控该定时执行指令的执行时长。
S406:判断该定时执行指令是否执行结束,若是,则执行步骤S409,否则执行步骤S407。
S407:判断监控的执行时长是否达到该定时执行指令对应的设定时长,若是,则执行步骤S408,否则返回步骤S406。
S408:终止该定时执行指令的执行,执行步骤S409。
S409:根据该定时执行指令的执行开始时刻、执行结束时刻以及执行结果,生成该定时执行指令的执行日志,并将执行日志导入数据库存储。
S410:放弃执行该定时执行指令。
依据本发明的一个实施例,在步骤S403中,假设指定服务器标识为服务器的IP地址信息,则基于Unix或类Unix操作系统,本发明实施例提供的一种判断指定服务器标识中是否包含该服务器自身的服务器标识的代码如下:
Figure BDA0000455626040000151
Figure BDA0000455626040000161
Figure BDA0000455626040000171
依据本发明的一个实施例,在步骤S404中,基于Unix或类Unix操作系统,本发明实施例提供的一种在cronwrapper.sh脚本中标识该定时执行指令是否需要限制其占用的资源的代码具体如下:
Figure BDA0000455626040000172
上述代码中“1”表示需要限制该定时执行指令所占用的资源,“0”表示不需要限制该定时执行指令所占用的资源。
在识别出需要限制该定时执行指令所占用的资源后,crond守护进程则确定cronwrapper.sh脚本中携带的该定时执行指令对应的资源配置信息。具体的,基于Unix或类Unix操作系统,可通过Unix或类Unix操作系统提供的cgroup机制来限制定时执行指令所占用的资源,本发明实施例提供的一种在cronwrapper.sh脚本中携带的该定时执行指令对应的资源配置信息的代码具体如下:
[rootcgroup01v~]#cat/cgroup/cpuset/tailor/cpuset.cpus2    /*对添加到tailor组中的进程所占用的CPU限制为服务器自身标识为2的CPU*/
[rootcgroup01v~]#cat/cgroup/cpuset/tailor/cpu.shares50    /*对添加到tailor组中的进程所占用的相对共享CPU时间限制为50%*/
上述第一行代码表示该定时执行指令在执行时只占用标识为2的CPU,第二行代码表示该定时执行指令在执行时只占用50%的相对共享CPU时间。
依据本发明的一个实施例,在步骤S407~S408中,基于Unix或类Unix操作系统,本发明实施例提供的一种判断执行时长是否达到设定时长,并在达到时终止定时执行指令的代码如下:
Figure BDA0000455626040000181
依据本发明的一个实施例,在步骤S409中,基于Unix或类Unix操作系统,本发明实施例提供的一种生成执行日志并将其导入数据库中的代码如下:
Figure BDA0000455626040000191
以上为本发明实施例提供的一种指令执行方法,基于同样的发明思路,本发明实施例还提供一种指令执行装置,如图5所示。
图5为依据本发明一个实施例的指令执行装置结构示意图,具体包括:
查找模块501,用于根据当前时刻信息,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;
确定模块502,用于确定所述查找模块501查找到的所述定时执行指令对应的资源配置信息;
执行模块503,用于采用所述资源配置信息所规定的资源,执行所述定时执行指令。
所述装置还包括:
接收模块504,用于接收管理器发送的携带定时执行指令以及定时执行指令对应的资源配置信息的脚本;
所述查找模块501具体用于,在所述接收模块504接收到的所述脚本中,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;
所述确定模块502具体用于,在所述接收模块504接收到的所述脚本中,确定所述查找模块查找到的所述定时执行指令对应的资源配置信息。
所述执行模块503具体用于,确定所述定时执行指令对应的设定时长,其中,所述设定时长是预先针对所述定时执行指令设定的;监控所述定时执行指令的执行时长,当监控的所述执行时长达到确定的所述设定时长时,终止所述定时执行指令的执行。
所述装置还包括:
日志模块505,用于在所述执行模块503执行所述定时执行指令之后,根据所述定时执行指令的执行开始时刻、执行结束时刻以及执行结果,生成所述定时执行指令的执行日志,并存储所述执行日志。
具体的上述如图5所示的指令执行装置可以位于服务器中。
图6为依据本发明一个实施例的指令执行系统结构示意图,具体包括:
管理器601,用于为定时执行指令设置资源配置信息,向服务器602发送定时执行指令以及所述定时执行指令对应的资源配置信息,其中,所述资源配置信息规定了所述定时执行指令执行时所要使用的资源;
服务器602,用于根据当前时刻信息,在管理器601发送的定时执行指令中查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;确定查找到的所述定时执行指令对应的资源配置信息;采用所述资源配置信息所规定的资源,执行查找到的所述定时执行指令。
所述管理器601具体用于,向服务器602发送携带定时执行指令以及定时执行指令对应的资源配置信息的脚本,其中,所述管理器601向每个服务器602发送的脚本均相同;
所述服务器602具体用于,接收所述管理器601发送的所述脚本,在接收到的所述脚本中,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令,并在接收到的所述脚本中,确定查找到的所述定时执行指令对应的资源配置信息。
所述管理器601还用于,为定时执行指令设置对应的指定服务器标识,并将设置的指定服务器标识携带在所述脚本中;
所述服务器602还用于,在执行查找到的所述定时执行指令之前,确定所述脚本中携带的、针对查找到的所述定时执行指令预设的指定服务器602标识中包含所述服务器602自身的服务器602标识。
在如图6所示的系统中,一个管理器601可与多个服务器602相连,管理员可先在管理器601上配置要执行的每个定时执行指令以及每个定时执行指令对应的执行时刻信息、资源配置信息、指定服务器标识和设定时长再将配置的上述信息封装成一个脚本,管理器601则可将该脚本下发给连接的每个服务器602,使服务器602根据接收到的脚本中包含的执行时刻信息、资源配置信息、指定服务器标识和设定时长,相应执行脚本中的定时执行指令。
本发明实施例提供一种指令执行方法及装置,该方法服务器在执行一个定时执行指令时,可以根据针对该定时执行指令预设的资源配置信息,采用相应的资源执行该定时执行指令,从而执行该定时执行指令时不会占用服务器全部的资源,因此可有效避免发生资源抢占的情况,在服务器执行定时执行指令的过程中可保证服务器提供的其他服务的质量。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的拦截应用程序中的植入信息的设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本申请可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
本发明包括A9、一种指令执行装置,其包括:
查找模块,用于根据当前时刻信息,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;
确定模块,用于确定所述查找模块查找到的所述定时执行指令对应的资源配置信息,其中,所述资源配置信息是根据指定规则,预先针对所述定时执行指令设置的;
执行模块,用于采用所述资源配置信息所规定的资源,执行所述定时执行指令。
A10、如权利要求A9所述的装置,还包括:
接收模块,用于接收管理器发送的携带定时执行指令以及定时执行指令对应的资源配置信息的脚本;
所述查找模块具体用于,在所述接收模块接收到的所述脚本中,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;
所述确定模块具体用于,在所述接收模块接收到的所述脚本中,确定所述查找模块查找到的所述定时执行指令对应的资源配置信息。
A11、如权利要求A9所述的装置,其中,所述执行模块具体用于,确定所述定时执行指令对应的设定时长,其中,所述设定时长是预先针对所述定时执行指令设置的;监控所述定时执行指令的执行时长,当监控的所述执行时长达到确定的所述设定时长时,终止所述定时执行指令的执行。
A12、如权利要求A9所述的装置,还包括:
日志模块,用于在所述执行模块执行所述定时执行指令之后,根据所述定时执行指令的执行开始时刻、执行结束时刻以及执行结果,生成所述定时执行指令的执行日志,并存储所述执行日志。
本发明包括A13、一种指令执行系统,其包括:
管理器,用于为定时执行指令设置资源配置信息,向服务器发送定时执行指令以及所述定时执行指令对应的资源配置信息,其中,所述资源配置信息规定了所述定时执行指令执行时所要使用的资源;
服务器,用于根据当前时刻信息,在管理器发送的定时执行指令中查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;确定查找到的所述定时执行指令对应的资源配置信息;采用所述资源配置信息所规定的资源,执行查找到的所述定时执行指令。
A14、如权利要求A13所述的系统,其中,所述管理器具体用于,向服务器发送携带定时执行指令以及定时执行指令对应的资源配置信息的脚本,其中,所述管理器向每个服务器发送的脚本均相同;
所述服务器具体用于,接收所述管理器发送的所述脚本,在接收到的所述脚本中,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令,并在接收到的所述脚本中,确定查找到的所述定时执行指令对应的资源配置信息。
A15、如权利要求A14所述的系统,所述管理器还用于,为定时执行指令设置对应的指定服务器标识,并将设置的指定服务器标识携带在所述脚本中;
所述服务器还用于,在执行查找到的所述定时执行指令之前,确定所述脚本中携带的、查找到的所述定时执行指令对应的指定服务器标识中包含所述服务器自身的服务器标识。

Claims (10)

1.一种指令执行方法,其包括:
为定时执行指令设置资源配置信息,其中,所述资源配置信息规定了所述定时执行指令执行时要使用的资源;
当所述定时执行指令的执行时刻信息与当前时刻信息匹配时,将所述资源配置信息中规定的资源分配给所述定时执行指令;
采用分配的资源执行所述定时执行指令。
2.如权利要求1所述的方法,其中,为所述定时执行指令设置资源配置信息进一步包括:
设置所述定时执行指令在执行时所要使用的中央处理器CPU的CPU标识、相对共享CPU时间、内存、磁盘输入/输出接口的标识中的至少一种。
3.如权利要求1或2所述的方法,还包括:
为所述定时执行指令设置对应的设定时长;
采用分配的资源执行所述定时执行指令进一步包括:
在执行所述定时执行指令时,监控所述定时执行指令的执行时长;并
当监控的所述执行时长达到所述设定时长时,终止所述定时执行指令的执行。
4.如权利要求1所述的方法,还包括:
根据所述定时执行指令的执行开始时刻、执行结束时刻以及执行结果,生成所述定时执行指令的执行日志,并存储所述执行日志。
5.一种指令执行方法,其包括:
根据当前时刻信息,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;
确定查找到的所述定时执行指令对应的资源配置信息,其中,所述资源配置信息是根据指定规则,预先针对所述定时执行指令设置的;以及
采用所述资源配置信息所规定的资源,执行所述定时执行指令。
6.如权利要求5所述的方法,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令之前,还包括:
接收管理器发送的携带定时执行指令以及定时执行指令对应的资源配置信息的脚本;
查找执行时刻信息与所述当前时刻信息匹配的定时执行指令进一步包括:
在接收到的所述脚本中,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;
确定查找到的所述定时执行指令对应的资源配置信息进一步包括:
在接收到的所述脚本中,确定查找到的所述定时执行指令对应的资源配置信息。
7.如权利要求5所述的方法,其中,执行所述定时执行指令进一步包括:
确定所述定时执行指令对应的设定时长,其中,所述设定时长是预先针对所述定时执行指令设置的;并
监控所述定时执行指令的执行时长;以及
当监控的所述执行时长达到确定的所述设定时长时,终止所述定时执行指令的执行。
8.如权利要求5所述的方法,执行所述定时执行指令之后,还包括:
根据所述定时执行指令的执行开始时刻、执行结束时刻以及执行结果,生成所述定时执行指令的执行日志,并存储所述执行日志。
9.一种指令执行装置,其包括:
查找模块,用于根据当前时刻信息,查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;
确定模块,用于确定所述查找模块查找到的所述定时执行指令对应的资源配置信息,其中,所述资源配置信息是根据指定规则,预先针对所述定时执行指令设置的;
执行模块,用于采用所述资源配置信息所规定的资源,执行所述定时执行指令。
10.一种指令执行系统,其包括:
管理器,用于为定时执行指令设置资源配置信息,向服务器发送定时执行指令以及所述定时执行指令对应的资源配置信息,其中,所述资源配置信息规定了所述定时执行指令执行时所要使用的资源;
服务器,用于根据当前时刻信息,在管理器发送的定时执行指令中查找执行时刻信息与所述当前时刻信息匹配的定时执行指令;确定查找到的所述定时执行指令对应的资源配置信息;采用所述资源配置信息所规定的资源,执行查找到的所述定时执行指令。
CN201410012409.5A 2014-01-10 2014-01-10 一种指令执行方法、装置及系统 Pending CN103761128A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410012409.5A CN103761128A (zh) 2014-01-10 2014-01-10 一种指令执行方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410012409.5A CN103761128A (zh) 2014-01-10 2014-01-10 一种指令执行方法、装置及系统

Publications (1)

Publication Number Publication Date
CN103761128A true CN103761128A (zh) 2014-04-30

Family

ID=50528372

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410012409.5A Pending CN103761128A (zh) 2014-01-10 2014-01-10 一种指令执行方法、装置及系统

Country Status (1)

Country Link
CN (1) CN103761128A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105991965A (zh) * 2015-01-27 2016-10-05 上海天跃科技股份有限公司 安防监控系统中的录像数据完整性检查方法
CN106569878A (zh) * 2015-10-08 2017-04-19 北京奇虎科技有限公司 一种分布式定时任务管理方法和系统
CN109783201A (zh) * 2017-11-13 2019-05-21 北京京东尚科信息技术有限公司 数据交换方法及其系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105991965A (zh) * 2015-01-27 2016-10-05 上海天跃科技股份有限公司 安防监控系统中的录像数据完整性检查方法
CN106569878A (zh) * 2015-10-08 2017-04-19 北京奇虎科技有限公司 一种分布式定时任务管理方法和系统
CN109783201A (zh) * 2017-11-13 2019-05-21 北京京东尚科信息技术有限公司 数据交换方法及其系统

Similar Documents

Publication Publication Date Title
US11005969B2 (en) Problem solving in a message queuing system in a computer network
US10264063B2 (en) Method and apparatus for scheduling cloud server
CN107818112B (zh) 一种大数据分析作业系统及任务提交方法
CN108132833A (zh) 一种基于zookeeper技术的分布式定时任务调度方法和装置
US20070174265A1 (en) System and method for creating an enhanced enterprise directory
CN105100259A (zh) 一种分布式定时任务执行方法和系统
CN105450618A (zh) 一种api服务器处理大数据的运算方法及其系统
CN105099755A (zh) 一种监控网站系统性能的方法、设备和系统
CN102955717A (zh) 在分布式消息处理系统中的消息管理设备和方法
CN103034541A (zh) 一种分布式消息系统及其中的设备和方法
CN102981911A (zh) 一种分布式消息处理系统及其中的设备和方法
CN103607424A (zh) 一种服务器连接方法及服务器系统
CN110581893B (zh) 数据传输方法、装置、路由设备、服务器及存储介质
CN110532493B (zh) 数据的处理方法及装置、存储介质和电子装置
CN109298924A (zh) 定时任务的管理方法、计算机可读存储介质和终端设备
CN113037891B (zh) 边缘计算系统中有状态应用的访问方法、装置及电子设备
CN108932238A (zh) 一种跨域通信方法及装置
CN103761128A (zh) 一种指令执行方法、装置及系统
CN103647811A (zh) 一种实现应用访问后台服务的方法和装置
CN114168297A (zh) 一种归集任务调度方法、装置、设备及介质
CN105471703A (zh) 一种消息发送方法及装置
CN108933813B (zh) 防止读取器饥饿的方法、系统和存储介质
Bellavista et al. GAMESH: a grid architecture for scalable monitoring and enhanced dependable job scheduling
CN113760638A (zh) 一种基于kubernetes集群的日志服务方法和装置
CN109375946B (zh) 一种管理节点包管理器的组件包的方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20140430