CN117519914B - 云主机控制方法、装置及管理主机 - Google Patents
云主机控制方法、装置及管理主机 Download PDFInfo
- Publication number
- CN117519914B CN117519914B CN202410024187.2A CN202410024187A CN117519914B CN 117519914 B CN117519914 B CN 117519914B CN 202410024187 A CN202410024187 A CN 202410024187A CN 117519914 B CN117519914 B CN 117519914B
- Authority
- CN
- China
- Prior art keywords
- host
- time
- shutdown
- starting
- operation host
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 205
- 230000008569 process Effects 0.000 claims description 122
- 238000012545 processing Methods 0.000 claims description 23
- 230000007717 exclusion Effects 0.000 claims description 21
- 238000011112 process operation Methods 0.000 claims description 3
- 239000002699 waste material Substances 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
本申请公开了一种云主机控制方法、装置及管理主机,应用于部署有管理主机和该管理主机对应的至少一个运算主机的云平台,该方法应用于管理主机,具体的,可以在管理主机的开机时刻与当前时刻之间的时间间隔超过任务最大允许运行时间后,周期性的执行:从各个运算主机中确定满足关机条件的运算主机,判断该运算主机的最晚尝试开机时间和当前时刻之间的时间间隔是否超过尝试开机时间间隔阈值,若超过,向云平台输出关机请求,以请求关闭该运算主机的步骤。其中,超过尝试开机时间间隔阈值的情况可以表征:在当前一段时间内,该运算主机不存在需要处理的运算任务,基于此可以关闭该运算主机,以减少对云平台资源的无用占用,避免资源浪费,节省开销。
Description
技术领域
本申请涉及计算机技术领域,更具体的说,是涉及一种云主机控制方法、装置及管理主机。
背景技术
用户在依托云平台进行运算时,首先在云平台上部署云主机,为其配置云平台资源,示例如cpu/gpu资源和内存资源,而后开启云主机,发布运算任务,以依托云主机实现运算任务。
为保证运算任务的实现,需要为云主机配置足够的云平台资源,基于此,云主机长时间开机将会占用大量的云平台资源,产生大量开销。
发明内容
鉴于上述问题,提出了本申请以便提供一种云主机控制方法、装置及管理主机,以实现对云主机的自动关机控制任务,节省开销。
具体方案如下:
第一方面,提供了一种云主机控制方法,云平台上预先部署有一个管理主机和所述管理主机对应的至少一个运算主机,所述云主机控制方法应用于所述管理主机,所述云主机控制方法包括:
在所述管理主机的开机时刻与当前时刻之间的时间间隔超过预设的任务最大允许运行时间之后,按照预设的关机控制执行周期,周期性的执行关机控制方法;
所述关机控制方法包括:从所述管理主机对应的各个所述运算主机中,确定满足预设关机条件的运算主机;执行对该运算主机的关机操作,其中,对该运算主机的关机操作包括:
判断该运算主机的最晚尝试开机时间和当前时刻之间的时间间隔是否超过预设的尝试开机时间间隔阈值;其中,该运算主机的最晚尝试开机时间为确定该运算主机需要开始进行运算处理的最晚时间;若未超过,则结束执行对该运算主机的关机操作;若超过,则向所述云平台输出关机请求,以请求关闭该运算主机,结束执行对该运算主机的关机操作。
第二方面,提供了一种云主机控制装置,云平台上预先部署有一个管理主机和所述管理主机对应的至少一个运算主机,所述云主机控制装置应用于所述管理主机,所述云主机控制装置包括:关机控制模块;
所述关机控制模块用于:在所述管理主机的开机时刻与当前时刻之间的时间间隔超过预设的任务最大允许运行时间之后,按照预设的关机控制执行周期,周期性的执行关机控制方法;
所述关机控制方法包括:从所述管理主机对应的各个所述运算主机中,确定满足预设关机条件的运算主机;执行对该运算主机的关机操作,其中,对该运算主机的关机操作包括:
判断该运算主机的最晚尝试开机时间和当前时刻之间的时间间隔是否超过预设的尝试开机时间间隔阈值;其中,该运算主机的最晚尝试开机时间为确定该运算主机需要开始进行运算处理的最晚时间;若未超过,则结束执行对该运算主机的关机操作;若超过,则向所述云平台输出关机请求,以请求关闭该运算主机,结束执行对该运算主机的关机操作。
第三方面,提供了一种管理主机,所述管理主机部署于云平台,所述云平台上还部署有所述管理主机对应的至少一个运算主机,所述管理主机包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现上述的云主机控制方法的各个步骤。
借由上述技术方案,本申请可以应用于云平台,所述云平台上预先部署有服务于目标用户的云主机,可以包括一个管理主机和所述管理主机对应的至少一个运算主机,上述的云主机控制方法可以应用于所述管理主机,该方法可以包括:在所述管理主机的开机时刻与当前时刻之间的时间间隔超过预设的任务最大允许运行时间之后,按照预设的关机控制执行周期,周期性的执行关机控制方法。所述关机控制方法可以包括:从所述管理主机对应的各个所述运算主机中,确定满足预设关机条件的运算主机,执行对该运算主机的关机操作:判断该运算主机的最晚尝试开机时间和当前时刻之间的时间间隔是否超过预设的尝试开机时间间隔阈值,其中,超过预设的尝试开机时间间隔阈值的情况,可以表征在当前时刻之前的一段时间内,该运算主机不存在需要处理的运算任务,即该运算主机当前处于空闲状态,基于此,可以向所述云平台输出关机请求,以请求关闭该运算主机,从而在一定程度上减少了对云平台资源的无用占用,避免资源浪费,节省开销。
此外,通过在管理主机的开机时刻与当前时刻之间的时间间隔超过预设的任务最大允许运行时间之后开始执行关机控制方法,可以在一定程度上避免发生由管理主机重启、对运算主机的监控数据清空等导致的误关运算主机的情况,从而提高关机控制的可靠性。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本申请实施例提供的一种关机控制方法的流程示意图;
图2示例了本申请实施例提供的对该运算主机的关机操作的一种流程示意图;
图3示例了本申请实施例提供的对该运算主机的关机操作的另一种流程示意图;
图4示出了本申请实施例提供的一种开机控制方法的流程示意图;
图5示例了本申请实施例提供的对该运算主机的开机操作的一种流程示意图;
图6示例了本申请实施例提供的对该运算主机的开机操作的另一种流程示意图;
图7示例了本申请实施例提供的对该运算主机的开机操作的又一种流程示意图;
图8为本申请实施例提供的一种管理主机的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种云主机控制方法、装置及管理主机,以实现对云主机的自动控制任务,节省开销。
本申请实施例提供的云主机控制方案可以应用于云平台,所述云平台上可以预先部署有一个管理主机和所述管理主机对应的至少一个运算主机。具体的,所述云主机控制方法可以应用于所述管理主机,所述云主机控制方法可以包括:
在所述管理主机的开机时刻与当前时刻之间的时间间隔超过预设的任务最大允许运行时间之后,按照预设的关机控制执行周期,周期性的执行关机控制方法。
需要说明的是,所述管理主机的开机时间可以表征所述管理主机开始进行云主机控制的时间。在一种可能的实现方式中,可以利用所述管理主机上运行的服务端进程实现所述云主机控制方法。基于此,所述管理主机的开机时间可以是所述服务端进程的开启时间。
所述管理主机的开机时刻与当前时刻之间的时间间隔,可以表征所述管理主机进行云主机控制的持续时间;该时间间隔超过预设的任务最大允许运行时间,可以表征所述管理主机已进行了足够长时间的云主机控制,可以开启gc(garbage collection,垃圾收集)逻辑,即按照预设的关机控制执行周期,周期性的执行关机控制方法,以及时关闭无用的运算主机。其中,所述预设的任务最大允许运行时间可以根据由所述至少一个运算主机处理的运算任务的普遍最大耗时设置,如所述预设的任务最大允许运行时间大于所述至少一个运算主机处理的运算任务的普遍最大耗时。示例性的,若运算主机通常可以在5分钟内处理完成一个运算任务,则所述预设的任务最大允许运行时间可以是15分钟。
需要说明的是,管理主机重启或其上运行的服务端进程重启,可能会导致管理主机对各运算主机的监控数据丢失,若此时开启gc逻辑,执行关机控制方法,可能会确定正在处理运算任务的运算主机满足预设的关机控制条件,可能会误关该运算主机,导致正在进行的运算任务处理失败。为解决该问题,设置了开始执行关机控制方法的时刻,即管理主机的开机时刻与当前时刻之间的时间间隔超过预设的任务最大允许运行时间之后,可以在一定程度上避免发生误关运算主机的情况。此外,由于所述预设的任务最大允许运行时间至少大于所述至少一个运算主机处理的运算任务的普遍最大耗时,则在开启gc逻辑时,在管理主机重启或其上运行的服务端进程重启之前开始的运算任务通常已经处理完成,从而可以在一定程度上避免发生由误关运算主机导致的运算任务处理失败的情况。
具体的,图1是根据本申请实施例示出的一种关机控制方法的流程示意图,所述关机控制方法可以包括下述的步骤S101-S102:
步骤S101、从所述管理主机对应的各个所述运算主机中,确定满足预设关机条件的运算主机。
可选的,所述预设关机条件可以包括:运算主机的各个任务时间和当前时刻之间的时间间隔均超过预设的空闲时间阈值,且当前处于开机状态;其中,所述运算主机的各个任务时间可以是由该运算主机处理的各个运算任务的开始时间或结束时间;所述预设的空闲时间阈值可以根据该运算主机处理运算任务时的普遍最大耗时设置。
此外,可以利用运算主机上运行的运算进程实现运算任务的处理任务,基于此,可以用运算主机上运行的运算进程的在线状态表征运算主机的开机状态,即运算主机当前处于开机状态可以包括:运算主机上运行的运算进程当前处于在线状态。
示例性的,若运算主机通常可以在5分钟内处理完成一个运算任务,则所述预设的空闲时间阈值可以是15分钟;基于此,该运算主机满足预设关机条件可以表征:在由该运算主机处理的运算任务中,没有在15分钟内开始或结束的任务,并且该运算主机的运算进程在线。
在一种可能的实现方式中,上述的步骤S101、从所述管理主机对应的各个所述运算主机中,确定满足预设关机条件的运算主机,可以包括:
对于每一个所述运算主机:查询本地存储的该运算主机的运算任务状态,在该运算主机的各个任务时间和当前时刻之间的时间间隔均超过预设的空闲时间阈值的情况下,查询该运算主机的运算进程的离在线状态,将处于在线状态的运算主机确定为满足预设关机条件的运算主机。
步骤S102、执行对该运算主机的关机操作。
具体的,图2示例了对该运算主机的关机操作的一种流程示意图,该操作可以包括:
第一步、判断该运算主机的最晚尝试开机时间和当前时刻之间的时间间隔是否超过预设的尝试开机时间间隔阈值;若超过,则执行第二步;若未超过,则结束执行对该运算主机的关机操作。
其中,该运算主机的最晚尝试开机时间可以是确定该运算主机需要开始进行运算处理的最晚时间,可以表征需要开启该运算主机的最晚时间;该运算主机的最晚尝试开机时间和当前时刻之间的时间间隔超过预设的尝试开机时间间隔阈值,可以表征:距离上一次需要开启该运算主机已经过了足够长的时间,该运算主机已经空闲了一段时间,可以关闭该运算主机以节省开销。
第二步、向所述云平台输出关机请求,以请求关闭该运算主机。
其中,所述关机请求可以用于关闭该运算主机,在向所述云平台输出关机请求之后,结束执行对该运算主机的关机操作。在一种可能的实现方式中,上述的向所述云平台输出关机请求可以包括:调用所述云平台的api接口对该运算主机执行关机操作。
借由上述的云主机控制方法,在管理主机的开机时刻与当前时刻之间的时间间隔超过预设的任务最大允许运行时间之后,按照预设的关机控制执行周期,周期性的执行:从管理主机对应的各个运算主机中,确定满足预设关机条件的运算主机,判断该运算主机的最晚尝试开机时间和当前时刻之间的时间间隔是否超过预设的尝试开机时间间隔阈值,若超过预设的尝试开机时间间隔阈值,即在当前时刻之前的一段时间内,该运算主机不存在需要处理的运算任务、处于空闲状态,则向云平台输出关机请求,以请求关闭该运算主机,在一定程度上减少了对云平台资源的无用占用,避免了资源浪费,节省了开销。
可选的,所述管理主机和所述至少一个运算主机可以是服务于指定用户的云主机。基于此,借由上述的云主机控制方案,可以实现对指定用户的云主机管理任务,节省指定用户的云平台资源开销。
图3示例了对该运算主机的关机操作的另一种流程示意图,结合图3所示,对该运算主机的关机操作可以包括如下步骤:
第一步、判断该运算主机的最晚尝试开机时间和当前时刻之间的时间间隔是否超过预设的尝试开机时间间隔阈值;若超过,则执行第二步;若未超过,则结束执行对该运算主机的关机操作。
第二步、向所述云平台输出关机请求,以请求关闭该运算主机。
第三步、判断所述关机请求的输出时刻与当前时刻之间的时间间隔是否超过预设的关机超时时间。若超过所述关机超时时间,则执行第四步;若未超过所述关机超时时间,执行第五步。
其中,所述预设的关机超时时间可以根据云主机的关机响应速度设置。示例性的,所述预设的关机超时时间可以是3分钟。
第四步、输出用于表征该运算主机关机超时的报错信息。
其中,所述关机请求的输出时刻与当前时刻之间的时间间隔超过预设的关机超时时间的情况,可以表征该运算主机长时间未关机成功,需要进行关机超时报错,并在输出用于表征该运算主机关机超时的报错信息之后,结束执行对该运算主机的关机操作。
第五步、判断该运算主机是否已关机。若该运算主机未关机,则执行第六步;若该运算主机已关机,则结束执行对该运算主机的关机操作。
可选的,所述判断该运算主机是否已关机,可以包括:使用所述云平台的接口查询该运算主机的开关机状态,根据查询结果判断该运算主机是否已关机。
第六步、等待预设的关机轮询间隔。
其中,所述预设的关机轮询间隔可以表征相邻的每两次开关机状态查询操作之间的时间间隔,借由所述预设的关机轮询间隔可以减少由频繁查询导致的资源浪费。在等待预设的关机轮询间隔之后,返回执行第三步、判断所述关机请求的输出时刻与当前时刻之间的时间间隔是否超过预设的关机超时时间。
上述的对该运算主机的关机操作中,提供了一种关机轮询逻辑的可能实现方式,对该操作的其他说明可以参照上文。
在本申请提供的一些实施例中,对该运算主机的关机操作还可以包括:
在所述关机请求的输出时刻与当前时刻之间的时间间隔未超过所述关机超时时间,且接收到所述云平台输出的关机报错信号的情况下,输出用于表征该运算主机关机失败的报错信息,并结束执行对该运算主机的关机操作。
其中,所述云平台输出的关机报错信号可以是所述云平台的API报错信息。
上述的关机操作,通过在输出关机控制请求之后,在预设的关机超时时间内,轮询该运算主机的开关机状态,可以及时的确定该运算主机的状态,以便于在该运算主机长时间未关机成功的情况下,及时感知、记录异常情况并采取相应的处理措施,示例如进行关机重试或由人工操作以关闭该运算主机。在实际应用中,可以在输出关机控制请求之后的3分钟内,每秒轮询该运算主机的开关机状态,直至确定该运算主机已关机、关机控制报错或关机超时。
在本申请提供的一些实施例中,所述云主机控制方法还可以包括:响应于运算任务执行请求,执行开机控制方法。
其中,所述运算任务执行请求用于表征,当前存在需要所述管理主机对应的至少一个运算主机处理的运算任务,其中可以包含有运算任务信息。在一种可能的实现方式中,所述管理主机上可以运行有服务端进程,该服务端进程可以开启一个rpc(RemoteProcedure Call,远程过程调用)监听服务,其中可以包含有一个运算任务开启端点StartTask。在此基础上,在客户端通过网络远程调用该端点,以请求处理运算任务时,所述rpc监听服务将收到一个名为StartTask的远程过程调用rpc。
具体的,图4示出了本申请实施例提供的一种开机控制方法的流程示意图,结合图4所示,所述开机控制方法可以包括如下步骤:
步骤S201、从所述管理主机对应的各个所述运算主机中,确定满足预设开机条件的运算主机。
其中,该运算主机需要处理所述运算任务执行请求对应的运算任务,即所述预设开机条件可以包括:需要处理所述运算任务执行请求对应的运算任务。可选的,在所述运算任务执行请求中未指定处理运算任务的运算主机的情况下,可以根据运算主机的状态确定需要处理该请求对应的运算任务的运算主机,示例如,将处于开机状态,并且当前空闲或即将空闲的运算主机,确定为满足预设开机条件的运算主机。
步骤S202、执行对该运算主机的开机操作。
需要说明的是,对该运算主机的开机操作与对该运算主机的关机操作被配置为单线程执行,也就是说,对于每一个运算主机,同一时刻只能执行对该运算主机的开机操作和对该运算主机的关机操作中的至多一个操作。
图5示例了本申请实施例提供的对该运算主机的开机操作的一种流程示意图,对该运算主机的开机操作可以包括:
第一步、将该运算主机的最晚尝试开机时间更新为当前时刻。
其中,该运算主机的最晚尝试开机时间可以表征需要开启该运算主机的最晚时间。可选的,可以利用所述管理主机上运行的服务端进程实现所述云主机控制方案,在此基础上,所述管理主机对应的各个运算主机的最晚尝试开机时间可以被存储在所述管理主机的服务端进程中。
第二步、判断该运算主机的运算进程是否在线。若不在线,则执行第三步;若在线,则结束执行对该运算主机的开机操作。
需要说明的是,可以由所述运算主机上运行的运算进程实现对运算任务的处理,运算进程可以是在运算主机启动后自启动的用于处理运算任务的进程,则该运算主机的运算进程处于在线状态可以表征:该运算主机处于开机状态、可以处理运算任务。基于此,若该运算主机的运算进程在线,可以结束执行对该运算主机的开机操作;若该运算主机的运算进程不在线,可以请求开启该运算主机,以开启其上运行的运算进程。
第三步、向所述云平台输出开机请求,以请求开启该运算主机。
其中,所述开机请求可以用于开启该运算主机。在一种可能的实现方式中,上述的向所述云平台输出开机请求可以包括:调用所述云平台的api接口对该运算主机执行开机操作。
第四步、查询该运算主机的运算进程的离在线状态。
在查询该运算主机的运算进程是否在线之后,可以结束执行对该运算主机的开机操作。
步骤S203、在该运算主机的运算进程在线的情况下,将所述运算任务执行请求对应的运算任务发往该运算主机,以供该运算主机的运算进程对所述运算任务进行处理。
对于所述运算主机的运算进程,在一种可能的实现方式中,所述运算进程可以开启一个rpc监听服务,其中可以包含有一个运算任务开启端点StartTask。在此基础上,在管理主机通过网络远程调用该端点,以请求运算主机的运算进程处理运算任务时,该rpc监听服务将收到一个名为StartTask的远程过程调用rpc,而后运算进程可以对其进行响应,以执行运算任务。在上述的基础上,在管理主机通过网络远程调用该端点,以请求运算主机的运算进程处理运算任务时,若调用失败,则可以输出用于表征请求运算主机处理运算任务失败的报错信息。
借由上述的云主机控制方法,可以依据运算任务处理需求,自动开启所述管理主机对应的运算主机,实现了对管理主机对应的各个运算主机的自动开机控制任务,无需人工操作管理主机或开启运算主机,提高了云主机控制的自动化程度。
在本申请提供的一些实施例中,所述管理主机上可以预先配置有其对应的各个运算主机各自的开关机互斥锁。
其中,所述运算主机的开关机互斥锁可以用于保证:同一时间只有一个线程能够执行对该运算主机的开机操作和执行对该运算主机的关机操作中的至多一个操作。基于此,对于任一个运算主机,在一个线程执行对该运算主机的开机操作和执行对该运算主机的关机操作中的一个操作时,若有新的线程需要执行对该运算主机的开机操作和执行对该运算主机的关机操作中的任一个操作,将排队、等待。
在此基础上,对于关机控制方案,上述的执行对该运算主机的关机操作,可以包括:获取该运算主机的开关机互斥锁,使用该运算主机的开关机互斥锁执行对该运算主机的关机操作。
相应的,在所述结束执行对该运算主机的关机操作之后,所述关机控制方法还可以包括:释放该运算主机的开关机互斥锁。
对于开机控制方案,上述的步骤S202、执行对该运算主机的开机操作,可以包括:获取该运算主机的开关机互斥锁,使用该运算主机的开关机互斥锁执行对该运算主机的开机操作。
相应的,在所述结束执行对该运算主机的开机操作之后,所述开机控制方法还可以包括:释放该运算主机的开关机互斥锁。
上述的方案,借由运算主机的开关机互斥锁保证了对该运算主机的开机操作和对该运算主机的关机操作被单线程执行,可以避免发生对同一个运算主机既开机又关机的控制逻辑错误。
此外,在一种可能的实现方式中,对于每一个运算主机,所述运算主机的最晚尝试开机时间可以被存储在所述运算主机的开关机互斥锁中。
也就是说,所述运算主机的开关机互斥锁内部保护一个变量,所述变量为所述运算主机的最晚尝试开机时间,该变量可以在使用该运算主机的开关机互斥锁执行对该运算主机的开机操作时被更新,并在使用该运算主机的开关机互斥锁执行对该运算主机的关机操作被获取,以判断该运算主机的最晚尝试开机时间和当前时刻之间的时间间隔是否超过预设的尝试开机时间间隔阈值。
接下来对本申请实施例提供的开机操作的可能方案进行说明。
图6示例了本申请实施例提供的对该运算主机的开机操作的另一种流程示意图,结合图6所示,对该运算主机的开机操作可以包括:
第一步、将该运算主机的最晚尝试开机时间更新为当前时刻。
第二步、判断该运算主机的运算进程是否在线。若否,则执行第三步;若是,则结束执行对该运算主机的开机操作。
第三步、向所述云平台输出开机请求,以请求开启该运算主机。
第四步、判断所述开机请求的输出时刻与当前时刻之间的时间间隔是否超过预设的开机超时时间;若是,则执行第五步;若否,则执行第六步。
其中,所述预设的开机超时时间可以根据云主机的开机响应速度设置。示例性的,所述预设的开机超时时间可以是3分钟。
第五步、输出用于表征该运算主机开机超时的报错信息。
其中,所述开机请求的输出时刻与当前时刻之间的时间间隔超过预设的开机超时时间的情况,可以表征该运算主机长时间未开机成功,需要进行开机超时报错,并在输出用于表征该运算主机开机超时的报错信息之后,结束执行对该运算主机的开机操作。
第六步、判断该运算主机是否已开机;若否,则执行第七步;若是,则执行第八步。
可选的,所述判断该运算主机是否已开机,可以包括:使用所述云平台的接口查询该运算主机的开关机状态,根据查询结果判断该运算主机是否已开机。
第七步、等待预设的开机轮询间隔。
其中,所述预设的开机轮询间隔可以表征相邻的每两次开关机状态查询操作之间的时间间隔,借由所述预设的开机轮询间隔可以减少由频繁查询导致的资源浪费。在等待预设的开机轮询间隔之后,返回执行第四步、判断所述开机请求的输出时刻与当前时刻之间的时间间隔是否超过预设的开机超时时间。
第八步、查询该运算主机的运算进程的离在线状态。
在查询该运算主机的运算进程的离在线状态之后,结束执行对该运算主机的开机操作。
上述的对该运算主机的开机操作中,提供了一种开机轮询逻辑的可能实现方式,对开机操作的其他说明可以参照上文。
在本申请提供的一些实施例中,对该运算主机的开机操作还可以包括:
在所述开机请求的输出时刻与当前时刻之间的时间间隔未超过所述开机超时时间,且接收到所述云平台输出的开机报错信号的情况下,输出用于表征该运算主机开机失败的报错信息,结束执行对该运算主机的开机操作。
其中,所述云平台输出的开机报错信号可以是所述云平台的API报错信息。
上述的开机操作通过在输出开机控制请求之后,在预设的开机超时时间内,轮询该运算主机的开关机状态,可以及时的确定该运算主机的状态,以便于在该运算主机长时间未成功开机的情况下,及时感知、记录异常情况并采取相应的处理措施,示例如进行开机重试或由人工开启该运算主机。在实际应用中,可以在输出开机控制请求之后的3分钟内,每秒轮询该运算主机的开关机状态,直至确定该运算主机已开机、开机控制报错或开机超时。
图7示例了本申请实施例提供的对该运算主机的开机操作的又一种流程示意图,结合图7所示,对该运算主机的开机操作可以包括:
第一步、将该运算主机的最晚尝试开机时间更新为当前时刻。
第二步、判断该运算主机的运算进程是否在线。若否,则执行第三步;若是,则结束执行对该运算主机的开机操作。
第三步、向所述云平台输出开机请求,以请求开启该运算主机。
第四步、判断所述开机请求的输出时刻与当前时刻之间的时间间隔是否超过预设的开机超时时间;若是,则执行第五步;若否,则执行第六步。
第五步、输出用于表征该运算主机开机超时的报错信息。
第六步、判断该运算主机是否已开机;若否,则执行第七步;若是,则执行第八步。
第七步、等待预设的开机轮询间隔。
在等待预设的开机轮询间隔之后,返回执行第四步、判断所述开机请求的输出时刻与当前时刻之间的时间间隔是否超过预设的开机超时时间。
第八步、判断该运算主机的开机时刻与当前时刻之间的时间间隔是否超过预设的进程启动超时时间,若是,则执行第九步,若否,则执行第十步。
其中,所述预设的进程启动超时时间可以根据运算进程的普遍启动时间设置。示例性的,所述预设的进程启动超时时间可以是3分钟。
第九步、输出用于表征该运算主机的运算进程启动超时的报错信息。
其中,该运算主机的开机时刻与当前时刻之间的时间间隔超过预设的进程启动超时时间的情况,可以表征该运算主机的运算进程长时间未启动成功,需要进行进程启动超时报错,并在输出用于表征该运算主机的运算进程启动超时的报错信息之后,结束执行对该运算主机的开机操作。
第十步、判断该运算主机的运算进程是否在线,若否,则执行第十一步;若是,则结束执行对该运算主机的开机操作。
第十一步、等待预设的在线轮询间隔。
在等待预设的在线轮询间隔之后,返回执行第八步、判断该运算主机的开机时刻与当前时刻之间的时间间隔是否超过预设的进程启动超时时间。
上述的对该运算主机的开机操作中,提供了一种运算进程的启动轮询逻辑的可能实现方式,对开机操作的其他说明可以参照上文。在实际应用中,可以在确定该运算主机开机之后的3分钟内,每秒轮询该运算主机的运算进程的离在线状态,直至确定该运算进程已在线或进程启动超时。
对于所述运算主机的运算进程,在一种可能的实现方式中,所述运算进程可以开启一个rpc监听服务,其中可以包含有一个进程在线查询响应端点Ping。在此基础上,在管理主机通过网络远程调用该端点,以查询运算进程的离在线状态时,该rpc监听服务可以收到一个名为Ping的远程过程调用rpc,而后运算进程可以对其进行响应,返回成功标识,以表征该运算进程当前处于在线状态。
接下来依据一个应用示例对本申请实施例提供的云主机控制方案进行说明。
具体的,云平台上预先部署有一个管理主机和该管理主机对应的一个运算主机,其中,所述管理主机占用的云平台资源可以包括:1CPU、2GB内存和20GB硬盘;所述运算主机占用的云平台资源可以包括:8CPU、32GB内存和100GB磁盘。需要说明的是,由于所述管理主机主要用于管理运算主机、实现云主机控制方案和代理运算任务,因此无需为所述管理主机配置较多的云平台资源,基于上述的云平台资源配置情况,相较于用于处理运算任务的云主机常开的现有方案,即便在实现本申请实施例提供的云主机控制方案的过程中,所述管理主机长时间开机,也不会占用大量的云平台资源,不会产生大量开销。
所述管理主机上运行的服务端进程开启了rpc监听服务,该rpc监听服务中包含有第一运算任务开启端点StartTask。所述管理主机上运行的服务端进程中还预先定义有所述运算主机的开关机互斥锁,其中保护一个变量:所述运算主机的最晚尝试开机时间;通过使用所述运算主机的开关机互斥锁可以执行对所述运算主机的开机操作和对所述运算主机的关机操作。
所述运算主机上运行的运算进程(即服务端进程)开启了rpc监听服务,该rpc监听服务中包含有:进程在线查询响应端点Ping和第二运算任务开启端点StartTask。
在此基础上,所述管理主机上运行的服务端进程在接收到一个名为“StartTask”的rpc远程过程调用(即接收到一个运算任务执行请求)之后,执行以下步骤:
第一步、将所述运算主机确定为满足预设开机条件的运算主机;
第二步、获取所述运算主机的开关机互斥锁,使用所述运算主机的开关机互斥锁执行对所述运算主机的开机操作;在结束执行对所述运算主机的开机操作之后,释放该运算主机的开关机互斥锁;
第三步、在所述运算主机的运算进程在线的情况下,调用所述运算主机的运算进程的rpc监听服务的第二运算任务开启端点StartTask;而后结束执行。可选的,若调用失败,可以进行报错。
具体的,使用所述运算主机的开关机互斥锁执行对所述运算主机的开机操作,可以包括:
第一步、将该运算主机的最晚尝试开机时间更新为当前时刻。
第二步、延迟预设时间(例如1秒),调用所述运算主机的运算进程的rpc监听服务中的进程在线查询响应端点Ping,以查询所述运算主机的运算进程的离在线状态,判断所述运算主机的运算进程是否在线;若在线,结束执行对该运算主机的开机操作;若不在线,执行第三步。
第三步、调用所述云平台的API接口,以开启所述运算主机。
第四步、依据预设的开机超时时间,设置超时时间(例如3分钟);在超时时间内,周期性的使用所述云平台的API接口查询所述运算主机的开关机状态,直至确定所述运算主机已开机、超过超时时间或接收到开机报错信息。
其中,若超过超时时间,则可以输出用于表征该所述算主机开机超时的报错信息;若接收到开机报错信息,示例如所述云平台的API接口报错,则可以输出用于表征所述运算主机开机失败的报错信息。在输出报错信息之后,结束执行对所述运算主机的开机操作。
第五步、在确定所述运算主机开机之后,依据预设的进程启动超时时间,设置超时时间(例如3分钟);在超时时间内,周期性的调用所述运算主机的运算进程的rpc监听服务中的进程在线查询响应端点Ping(例如每秒),直至确定所述运算主机的运算进程在线或超过超时时间。
其中,若超过超时时间,可以输出用于表征该运算主机的运算进程启动超时的报错信息,而后结束执行对所述运算主机的开机操作;若确定所述运算主机的运算进程在线,则结束执行对所述运算主机的开机操作。
所述管理主机上运行的服务端进程可以开启gc逻辑,所述gc逻辑可以被配置为:在所述管理主机的开机时刻与当前时刻之间的时间间隔超过预设的任务最大允许运行时间之后(示例如所述管理主机开启后或所述管理主机上运行的服务端进程开启后的15分钟之后),按照预设的关机控制执行周期(例如1分钟)周期性的执行一次gc逻辑,以实现本申请实施例提供的关机控制方案。
具体的,所述gc逻辑可以包括如下步骤:
第一步、查询本地存储的所述运算主机的运算任务状态,判断所述运算主机的各个任务时间(运算任务的开始时间或结束时间)和当前时刻之间的时间间隔是否均超过预设的空闲时间阈值(例如15分钟);若否,结束执行本次的gc逻辑;若是,执行第二步。
第二步、延迟预设时间(例如1秒),调用所述运算主机的运算进程的rpc监听服务中的进程在线查询响应端点Ping,以查询所述运算主机的运算进程的离在线状态,判断所述运算主机的运算进程是否在线;若否,结束执行本次的gc逻辑;若是,则确定所述运算主机满足预设关机条件,执行第三步。
第三步、获取所述运算主机的开关机互斥锁,使用所述运算主机的开关机互斥锁执行对所述运算主机的关机操作。
第四步、在结束执行对所述运算主机的关机操作之后,释放所述运算主机的开关机互斥锁。
其中,使用所述运算主机的开关机互斥锁执行对所述运算主机的关机操作,可以包括:
第一步、判断所述运算主机的最晚尝试开机时间和当前时刻之间的时间间隔是否超过预设的尝试开机时间间隔阈值(例如15分钟);若超过,则执行第二步;若未超过,则结束执行对所述运算主机的关机操作。
第二步、调用所述云平台的API接口,以关闭所述运算主机。
第三步、依据预设的关机超时时间,设置超时时间(例如3分钟);在超时时间内,周期性的使用所述云平台的API接口查询所述运算主机的开关机状态(例如每秒),直至确定所述运算主机已关机、超过超时时间或接收到关机报错信息。
其中,若超过超时时间,则可以输出用于表征该运算主机关机超时的报错信息;若接收到关机报错信息,示例如所述云平台的API接口报错,则可以输出用于表征所述运算主机开机失败的报错信息。在输出报错信息或确定所述运算主机已关机之后,结束执行对所述运算主机的关机操作。
在本申请提供的一些实施例中,所述云主机控制方法可以包括:接收并记录所述云平台的API接口反馈的信息,示例如开机api报错信息、关机api报错信息,以便对管理主机进行更新、维护。
示例性的,造成云平台的API报错的原因可以是:所述管理主机和所述云平台之间的网络问题;所述云平台的云平台资源不足,无法开启所述运算主机;所述管理主机服务于的指定用户的账号欠费;所述云平台的API接口正在维护,无法使用;所述运算主机不存在。
本申请实施例提供的云主机控制方法,借由关机控制方法,可以实现对长时间空闲的运算主机的自动关机控制,实现了基于运算需求的运算主机关机控制任务;借由开机控制方法,管理主机能够依据运算需求,开启对应的运算主机,实现对运算任务的快速处理。也就是说,本申请方案借由管理主机,实现了基于运算需求的运算主机自动控制任务。相较于用于运算的云主机常开的方案,本申请提供的运算主机根据运算需求开闭的方案,能够在一定程度上减少对云平台资源的无用占用,避免资源浪费,节省开销。
在一种可能的实现方式中,运算任务的运算输入数据和运算主机输出的运算结果数据可以存储在另外的云存储上,通过另外的云存储API接口进行交互。此外,由所述管理主机对应的运算主机处理的运算任务,其实时运行状态监控与日志管理任务,可以使用rpc实现在所述管理主机的服务端进程上,也可以实现在其他地方,以便于***维护。
下面对本申请实施例提供的云主机控制装置进行描述,下文描述的云主机控制装置与上文描述的云主机控制方法可相互对应参照。
云平台上可以预先部署有一个管理主机和所述管理主机对应的至少一个运算主机,所述云主机控制装置可以应用于所述管理主机,所述云主机控制装置可以包括:关机控制模块。
具体的,所述关机控制模块可以用于:在所述管理主机的开机时刻与当前时刻之间的时间间隔超过预设的任务最大允许运行时间之后,按照预设的关机控制执行周期,周期性的执行关机控制方法。
其中,所述关机控制方法可以包括:从所述管理主机对应的各个所述运算主机中,确定满足预设关机条件的运算主机;执行对该运算主机的关机操作,其中,对该运算主机的关机操作包括:判断该运算主机的最晚尝试开机时间和当前时刻之间的时间间隔是否超过预设的尝试开机时间间隔阈值;其中,该运算主机的最晚尝试开机时间为确定该运算主机需要开始进行运算处理的最晚时间;若未超过,则结束执行对该运算主机的关机操作;若超过,则向所述云平台输出关机请求,以请求关闭该运算主机,结束执行对该运算主机的关机操作。
在本申请提供的一些实施例中,所述云主机控制装置还可以包括:开机控制模块。
具体的,所述开机控制模块可以用于:响应于运算任务执行请求,执行开机控制方法,其中,所述开机控制方法包括:
从所述管理主机对应的各个所述运算主机中,确定满足预设开机条件的运算主机,该运算主机需要处理所述运算任务执行请求对应的运算任务;执行对该运算主机的开机操作;在该运算主机的运算进程在线的情况下,将所述运算任务执行请求对应的运算任务发往该运算主机,以供该运算主机的运算进程对所述运算任务进行处理;其中,对该运算主机的开机操作与对该运算主机的关机操作被配置为单线程执行;对该运算主机的开机操作可以包括:将该运算主机的最晚尝试开机时间更新为当前时刻;判断该运算主机的运算进程是否在线;若在线,结束执行对该运算主机的开机操作;若不在线,向所述云平台输出开机请求,以请求开启该运算主机,查询该运算主机的运算进程的离在线状态,结束执行对该运算主机的开机操作。
在本申请提供的一些实施例中,所述管理主机上可以预先配置有其对应的各个运算主机各自的开关机互斥锁;所述运算主机的开关机互斥锁可以用于保证同一时间只有一个线程能够执行对该运算主机的开机操作和执行对该运算主机的关机操作中的至多一个操作。
在上述的基础上,所述执行对该运算主机的关机操作的过程,可以包括:
获取该运算主机的开关机互斥锁,使用该运算主机的开关机互斥锁执行对该运算主机的关机操作;
在结束执行对该运算主机的关机操作之后,所述关机控制方法还可以包括:释放该运算主机的开关机互斥锁。
在上述的基础上,所述执行对该运算主机的开机操作,可以包括:
获取该运算主机的开关机互斥锁,使用该运算主机的开关机互斥锁执行对该运算主机的开机操作;
在结束执行对该运算主机的开机操作之后,所述开机控制方法还可以包括:释放该运算主机的开关机互斥锁。
在本申请提供的一些实施例中,在查询该运算主机的运算进程的离在线状态之前,对该运算主机的开机操作还可以包括:
判断所述开机请求的输出时刻与当前时刻之间的时间间隔是否超过预设的开机超时时间;
若超过所述开机超时时间,输出用于表征该运算主机开机超时的报错信息,结束执行对该运算主机的开机操作;
若未超过所述开机超时时间,判断该运算主机是否已开机;
若该运算主机未开机,则在等待预设的开机轮询间隔之后,返回执行判断所述开机请求的输出时刻与当前时刻之间的时间间隔是否超过预设的开机超时时间的步骤;
若该运算主机已开机,则继续执行查询该运算主机的运算进程的离在线状态的步骤。
在本申请提供的一些实施例中,所述查询该运算主机的运算进程的离在线状态,可以包括:
判断该运算主机的开机时刻与当前时刻之间的时间间隔是否超过预设的进程启动超时时间;
若超过所述进程启动超时时间,输出用于表征该运算主机的运算进程启动超时的报错信息,结束执行对该运算主机的开机操作;
若未超过所述进程启动超时时间,查询该运算主机的运算进程的离在线状态,在该运算主机的运算进程处于离线状态的情况下,等待预设的在线轮询间隔之后,返回执行判断该运算主机的开机时刻与当前时刻之间的时间间隔是否超过预设的进程启动超时时间的步骤。
在本申请提供的一些实施例中,对该运算主机的开机操作还可以包括:
在所述开机请求的输出时刻与当前时刻之间的时间间隔未超过所述开机超时时间,且接收到所述云平台输出的开机报错信号的情况下,输出用于表征该运算主机开机失败的报错信息,结束执行对该运算主机的开机操作。
在本申请提供的一些实施例中,在向所述云平台输出关机请求之后,对该运算主机的关机操作还可以包括:
判断所述关机请求的输出时刻与当前时刻之间的时间间隔是否超过预设的关机超时时间;
若超过所述关机超时时间,输出用于表征该运算主机关机超时的报错信息,结束执行对该运算主机的关机操作;
若未超过所述关机超时时间,判断该运算主机是否已关机;
若该运算主机未关机,则在等待预设的关机轮询间隔之后,返回执行判断所述关机请求的输出时刻与当前时刻之间的时间间隔是否超过预设的关机超时时间的步骤;
若该运算主机已关机,则结束执行对该运算主机的关机操作。
在本申请提供的一些实施例中,对该运算主机的关机操作还可以包括:
在所述关机请求的输出时刻与当前时刻之间的时间间隔未超过所述关机超时时间,且接收到所述云平台输出的关机报错信号的情况下,输出用于表征该运算主机关机失败的报错信息,结束执行对该运算主机的关机操作。
本申请实施例提供的云主机控制装置可应用于管理主机,所述管理主机部署于云平台,并且所述云平台上还部署有所述管理主机对应的至少一个运算主机。可选的,图8示出了管理主机的硬件结构框图,参照图8,管理主机的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:
在所述管理主机的开机时刻与当前时刻之间的时间间隔超过预设的任务最大允许运行时间之后,按照预设的关机控制执行周期,周期性的执行关机控制方法;
所述关机控制方法包括:从所述管理主机对应的各个所述运算主机中,确定满足预设关机条件的运算主机;执行对该运算主机的关机操作,其中,对该运算主机的关机操作包括:
判断该运算主机的最晚尝试开机时间和当前时刻之间的时间间隔是否超过预设的尝试开机时间间隔阈值;其中,该运算主机的最晚尝试开机时间为确定该运算主机需要开始进行运算处理的最晚时间;若未超过,则结束执行对该运算主机的关机操作;若超过,则向所述云平台输出关机请求,以请求关闭该运算主机,结束执行对该运算主机的关机操作。
可选的,所述程序的细化功能和扩展功能可参照上文描述。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间可以根据需要进行组合,且相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种云主机控制方法,其特征在于,云平台上预先部署有一个管理主机和所述管理主机对应的至少一个运算主机,所述云主机控制方法应用于所述管理主机,所述云主机控制方法包括:
在所述管理主机的开机时刻与当前时刻之间的时间间隔超过预设的任务最大允许运行时间之后,按照预设的关机控制执行周期,周期性的执行关机控制方法;
所述关机控制方法包括:从所述管理主机对应的各个所述运算主机中,确定满足预设关机条件的运算主机;执行对该运算主机的关机操作,其中,对该运算主机的关机操作包括:
判断该运算主机的最晚尝试开机时间和当前时刻之间的时间间隔是否超过预设的尝试开机时间间隔阈值;其中,该运算主机的最晚尝试开机时间为确定该运算主机需要开始进行运算处理的最晚时间;若未超过,则结束执行对该运算主机的关机操作;若超过,则向所述云平台输出关机请求,以请求关闭该运算主机,结束执行对该运算主机的关机操作。
2.根据权利要求1所述的云主机控制方法,其特征在于,所述云主机控制方法还包括:
响应于运算任务执行请求,执行开机控制方法,其中,所述开机控制方法包括:
从所述管理主机对应的各个所述运算主机中,确定满足预设开机条件的运算主机,该运算主机需要处理所述运算任务执行请求对应的运算任务;执行对该运算主机的开机操作;在该运算主机的运算进程在线的情况下,将所述运算任务执行请求对应的运算任务发往该运算主机,以供该运算主机的运算进程对所述运算任务进行处理;
其中,对该运算主机的开机操作与对该运算主机的关机操作被配置为单线程执行;对该运算主机的开机操作包括:
将该运算主机的最晚尝试开机时间更新为当前时刻;判断该运算主机的运算进程是否在线;若在线,结束执行对该运算主机的开机操作;若不在线,向所述云平台输出开机请求,以请求开启该运算主机,查询该运算主机的运算进程的离在线状态,结束执行对该运算主机的开机操作。
3.根据权利要求2所述的云主机控制方法,其特征在于,所述管理主机上预先配置有其对应的各个运算主机各自的开关机互斥锁;所述运算主机的开关机互斥锁用于保证同一时间只有一个线程能够执行对该运算主机的开机操作和执行对该运算主机的关机操作中的至多一个操作;
所述执行对该运算主机的关机操作,包括:
获取该运算主机的开关机互斥锁,使用该运算主机的开关机互斥锁执行对该运算主机的关机操作;
在结束执行对该运算主机的关机操作之后,所述关机控制方法还包括:释放该运算主机的开关机互斥锁;
所述执行对该运算主机的开机操作,包括:
获取该运算主机的开关机互斥锁,使用该运算主机的开关机互斥锁执行对该运算主机的开机操作;
在结束执行对该运算主机的开机操作之后,所述开机控制方法还包括:释放该运算主机的开关机互斥锁。
4.根据权利要求3所述的云主机控制方法,其特征在于,在查询该运算主机的运算进程的离在线状态之前,对该运算主机的开机操作还包括:
判断所述开机请求的输出时刻与当前时刻之间的时间间隔是否超过预设的开机超时时间;
若超过所述开机超时时间,输出用于表征该运算主机开机超时的报错信息,结束执行对该运算主机的开机操作;
若未超过所述开机超时时间,判断该运算主机是否已开机;
若该运算主机未开机,则在等待预设的开机轮询间隔之后,返回执行判断所述开机请求的输出时刻与当前时刻之间的时间间隔是否超过预设的开机超时时间的步骤;
若该运算主机已开机,则继续执行查询该运算主机的运算进程的离在线状态的步骤。
5.根据权利要求4所述的云主机控制方法,其特征在于,所述查询该运算主机的运算进程的离在线状态,包括:
判断该运算主机的开机时刻与当前时刻之间的时间间隔是否超过预设的进程启动超时时间;
若超过所述进程启动超时时间,输出用于表征该运算主机的运算进程启动超时的报错信息,结束执行对该运算主机的开机操作;
若未超过所述进程启动超时时间,查询该运算主机的运算进程的离在线状态,在该运算主机的运算进程处于离线状态的情况下,等待预设的在线轮询间隔之后,返回执行判断该运算主机的开机时刻与当前时刻之间的时间间隔是否超过预设的进程启动超时时间的步骤。
6.根据权利要求4所述的云主机控制方法,其特征在于,对该运算主机的开机操作还包括:
在所述开机请求的输出时刻与当前时刻之间的时间间隔未超过所述开机超时时间,且接收到所述云平台输出的开机报错信号的情况下,输出用于表征该运算主机开机失败的报错信息,结束执行对该运算主机的开机操作。
7.根据权利要求1-6中任一项所述的云主机控制方法,其特征在于,在向所述云平台输出关机请求之后,对该运算主机的关机操作还包括:
判断所述关机请求的输出时刻与当前时刻之间的时间间隔是否超过预设的关机超时时间;
若超过所述关机超时时间,输出用于表征该运算主机关机超时的报错信息,结束执行对该运算主机的关机操作;
若未超过所述关机超时时间,判断该运算主机是否已关机;
若该运算主机未关机,则在等待预设的关机轮询间隔之后,返回执行判断所述关机请求的输出时刻与当前时刻之间的时间间隔是否超过预设的关机超时时间的步骤;
若该运算主机已关机,则结束执行对该运算主机的关机操作。
8.根据权利要求7所述的云主机控制方法,其特征在于,对该运算主机的关机操作还包括:
在所述关机请求的输出时刻与当前时刻之间的时间间隔未超过所述关机超时时间,且接收到所述云平台输出的关机报错信号的情况下,输出用于表征该运算主机关机失败的报错信息,结束执行对该运算主机的关机操作。
9.一种云主机控制装置,其特征在于,云平台上预先部署有一个管理主机和所述管理主机对应的至少一个运算主机,所述云主机控制装置应用于所述管理主机,所述云主机控制装置包括:关机控制模块;
所述关机控制模块用于:在所述管理主机的开机时刻与当前时刻之间的时间间隔超过预设的任务最大允许运行时间之后,按照预设的关机控制执行周期,周期性的执行关机控制方法;
所述关机控制方法包括:从所述管理主机对应的各个所述运算主机中,确定满足预设关机条件的运算主机;执行对该运算主机的关机操作,其中,对该运算主机的关机操作包括:
判断该运算主机的最晚尝试开机时间和当前时刻之间的时间间隔是否超过预设的尝试开机时间间隔阈值;其中,该运算主机的最晚尝试开机时间为确定该运算主机需要开始进行运算处理的最晚时间;若未超过,则结束执行对该运算主机的关机操作;若超过,则向所述云平台输出关机请求,以请求关闭该运算主机,结束执行对该运算主机的关机操作。
10.一种管理主机,其特征在于,所述管理主机部署于云平台,所述云平台上还部署有所述管理主机对应的至少一个运算主机,所述管理主机包括存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于执行所述程序,实现如权利要求1-8中任一项所述的云主机控制方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410024187.2A CN117519914B (zh) | 2024-01-08 | 2024-01-08 | 云主机控制方法、装置及管理主机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410024187.2A CN117519914B (zh) | 2024-01-08 | 2024-01-08 | 云主机控制方法、装置及管理主机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117519914A CN117519914A (zh) | 2024-02-06 |
CN117519914B true CN117519914B (zh) | 2024-03-12 |
Family
ID=89742469
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410024187.2A Active CN117519914B (zh) | 2024-01-08 | 2024-01-08 | 云主机控制方法、装置及管理主机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117519914B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004320237A (ja) * | 2003-04-14 | 2004-11-11 | Nippon Telegr & Teleph Corp <Ntt> | リアルタイム処理装置及びリアルタイム制御方法並びにそのプログラムと情報記憶媒体 |
CN1797341A (zh) * | 2004-12-30 | 2006-07-05 | 英业达股份有限公司 | 早期开机自我测试阶段正常运行的方法 |
CN105472708A (zh) * | 2014-08-13 | 2016-04-06 | 小米科技有限责任公司 | 控制路由器的方法及装置 |
CN112181649A (zh) * | 2020-09-22 | 2021-01-05 | 广州品唯软件有限公司 | 一种容器资源调整方法、装置、计算机设备及存储介质 |
CN114490089A (zh) * | 2022-04-01 | 2022-05-13 | 广东睿江云计算股份有限公司 | 云计算资源自动调节方法、装置、计算机设备及存储介质 |
CN115373886A (zh) * | 2022-08-29 | 2022-11-22 | 中国工商银行股份有限公司 | 服务群组容器停机方法、装置、计算机设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10430219B2 (en) * | 2014-06-06 | 2019-10-01 | Yokogawa Electric Corporation | Configuring virtual machines in a cloud computing platform |
US11546405B2 (en) * | 2018-06-18 | 2023-01-03 | Jpmorgan Chase Bank, N.A. | Methods for exposing mainframe data as a web service and devices thereof |
-
2024
- 2024-01-08 CN CN202410024187.2A patent/CN117519914B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004320237A (ja) * | 2003-04-14 | 2004-11-11 | Nippon Telegr & Teleph Corp <Ntt> | リアルタイム処理装置及びリアルタイム制御方法並びにそのプログラムと情報記憶媒体 |
CN1797341A (zh) * | 2004-12-30 | 2006-07-05 | 英业达股份有限公司 | 早期开机自我测试阶段正常运行的方法 |
CN105472708A (zh) * | 2014-08-13 | 2016-04-06 | 小米科技有限责任公司 | 控制路由器的方法及装置 |
CN112181649A (zh) * | 2020-09-22 | 2021-01-05 | 广州品唯软件有限公司 | 一种容器资源调整方法、装置、计算机设备及存储介质 |
CN114490089A (zh) * | 2022-04-01 | 2022-05-13 | 广东睿江云计算股份有限公司 | 云计算资源自动调节方法、装置、计算机设备及存储介质 |
CN115373886A (zh) * | 2022-08-29 | 2022-11-22 | 中国工商银行股份有限公司 | 服务群组容器停机方法、装置、计算机设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
Paul Marshall 等.Elastic Site: Using Clouds to Elastically Extend Site Resources.《2010 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing》.2010,43-52. * |
曹宗雁 等.基于任务负载监测的高性能集群节点启停机制.《计算机应用研究》.2011,第28卷(第12期),4663-4665+4680. * |
Also Published As
Publication number | Publication date |
---|---|
CN117519914A (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7127635B2 (en) | Method for correcting a program running on a computer system | |
US8930521B2 (en) | Method, apparatus, and computer program product for enabling monitoring of a resource | |
US8732312B2 (en) | Computing system and computing system management method | |
CN103370917B (zh) | 消息处理方法及服务器 | |
US8510755B2 (en) | Automatically re-starting services | |
WO2005026947B1 (en) | Managing processing within computing environments including initiation of virtual machines | |
JP2005084963A (ja) | ファイル共有装置及びファイル共有装置間のデータ移行方法 | |
CN110888889A (zh) | 一种数据信息更新方法、装置及设备 | |
CN108874549B (zh) | 资源复用方法、装置、终端和计算机可读存储介质 | |
CN111913851A (zh) | 进程监控方法、***、终端及存储介质 | |
JP5427504B2 (ja) | サービス実行装置、サービス実行方法 | |
TW200426571A (en) | Policy-based response to system errors occurring during os runtime | |
CN111124761B (zh) | 一种设备重启方法、装置、设备及介质 | |
CN112866314B (zh) | 分布式主从***中从节点的切换方法、主节点设备和存储介质 | |
US8880552B2 (en) | Database system and database control method | |
CN117519914B (zh) | 云主机控制方法、装置及管理主机 | |
US10348814B1 (en) | Efficient storage reclamation for system components managing storage | |
CN109766110B (zh) | 一种控制方法、基板管理控制器及控制*** | |
CN112860787A (zh) | 分布式主从***中主节点的切换方法、主节点设备和存储介质 | |
WO2011051011A1 (en) | A method, system and program to manage scheduling of processes | |
CN111176959B (zh) | 跨域的应用服务器的预警方法、***及存储介质 | |
CN115314361A (zh) | 一种服务器集群管理方法及其相关组件 | |
CN111866094B (zh) | 一种定时任务处理方法、节点及计算机可读存储介质 | |
CN112416641A (zh) | 主从架构中被控端节点重启检测方法及主控端节点 | |
JP2017037539A (ja) | サーバ制御プログラム、サーバ制御方法およびサーバ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |