CN114116068B - 服务启动优化方法、装置、电子设备和可读存储介质 - Google Patents
服务启动优化方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN114116068B CN114116068B CN202111459671.0A CN202111459671A CN114116068B CN 114116068 B CN114116068 B CN 114116068B CN 202111459671 A CN202111459671 A CN 202111459671A CN 114116068 B CN114116068 B CN 114116068B
- Authority
- CN
- China
- Prior art keywords
- services
- service
- starting
- priority
- parallel
- 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
Images
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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- 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)
- Stored Programmes (AREA)
- Multi Processors (AREA)
Abstract
本申请提供一种服务启动优化方法、装置、电子设备和可读存储介质,针对部署在服务器中的多个服务,确定各服务的优先级,各服务的优先级预先根据多个服务中服务之间的启动依赖关系所设置,再按照优先级从高到低的顺序,依次触发处于不同优先级的服务的启动,并针对处于相同优先级的多个服务,对该多个服务进行并行启动处理,在成功完成优先级最低的多个服务的并行启动后,结束服务启动流程。本方案基于多个服务之间的启动依赖关系设置各服务的优先级,并在整体上按照优先级从高到低的顺序对服务进行依次启动、在局部对处于相同优先级的多个服务进行并行启动,如此,可以保障服务按启动依赖关系顺利完成启动的基础上,有效提高服务启动的效率。
Description
技术领域
本申请涉及软件管理技术领域,具体而言,涉及一种服务启动优化方法、装置、电子设备和可读存储介质。
背景技术
Tomcat作为Java服务的主要服务器,通常的用法是一个服务启动一个Tomcat实例,每个服务都会加载一份Tomcat资源到内存中,每个服务就是一个Tomcat进程,进程之间资源完全隔离。如果服务器的内存资源相对紧张的情况下,通常的做法就是在一个Tomcat中部署多个服务,这样可以避免重复加载多份Tomcat资源到内存中,提高内存资源使用率。但是当多个服务部署到一个Tomcat中时,Tomcat实例启动多个服务时是根据配置顺序串行启动的。如果一个Tomcat中部署的服务比较多,则整个Tomcat启动时长就是所有服务的启动时间之和,这就造成Tomcat启动所需总时长较长。并且当其中一个服务启动失败,会使整个Tomcat启动失败,也就导致所有服务都无法提供服务。
现有技术中存在一些用于优化Tomcat启动的方式,但是这些方式大多是通过清理文件或修改参数等方式来实现优化,优化作用有限,优化效果不佳。
发明内容
本申请的目的包括,例如,提供了一种服务启动优化方法、装置、电子设备和可读存储介质,其能够保障服务按启动依赖关系顺利完成启动的基础上,有效提高服务启动的效率。
本申请的实施例可以这样实现:
第一方面,本申请提供一种服务启动优化方法,所述方法包括:
针对部署在服务器中的多个服务,确定各所述服务的优先级,其中,各所述服务的优先级预先根据所述多个服务中服务之间的启动依赖关系所设置;
按优先级从高到低的顺序,依次触发处于不同优先级的服务的启动,并针对处于相同优先级的多个服务,对该多个服务进行并行启动处理;
在成功完成最低优先级的多个服务的并行启动后,结束服务启动流程。
在可选的实施方式中,所述方法还包括预先设置各所述服务的优先级的步骤,该步骤包括:
针对各所述服务,获取所述服务触发启动所需的依赖信息,所述依赖信息包括所述服务触发启动所需的其他服务的启动成功结果;
基于各所述服务所需的依赖信息建立所述多个服务之间的启动依赖关系;
根据所述启动依赖关系,设置各所述服务的优先级。
在可选的实施方式中,所述服务器为多核服务器;
所述针对处于相同优先级的多个服务,对该多个服务进行并行启动处理的步骤,包括:
检测是否触发动态调整策略,若未触发动态调整策略,则利用与所述服务器的核数对应的线程对处于相同优先级的多个服务进行并行启动处理;
若触发动态调整策略,则基于动态调整策略确定并行启动数量,并利用与所述并行启动数量对应的线程对处于相同优先级的多个服务进行并行启动处理。
在可选的实施方式中,所述基于动态调整策略确定并行启动数量的步骤,包括:
获取所述服务器当前的负载占比以及设置的可占用比例,所述可占用比例表征服务启动流程可占用的剩余CPU资源的占比;
根据所述负载占比、可占用比例和服务器的核数,计算得到并行启动数量。
在可选的实施方式中,所述按优先级从高到低的顺序,依次触发处于不同优先级的服务的启动的步骤,包括:
针对处于相同优先级的多个服务,若该多个服务中出现启动失败的服务,判定该启动失败的服务是否为预先设置的特定服务;
若启动失败的服务为预先设置的特定服务,则在完成同一优先级的其他服务的启动后,触发执行下一优先级的多个服务的并行启动。
在可选的实施方式中,所述按优先级从高到低的顺序,依次触发处于不同优先级的服务的启动的步骤之前,所述方法还包括:
判断所述多个服务中是否具有携带延迟信息属性的服务,若具有,则将携带延迟信息属性的服务抽取出来;
所述在成功完成最低优先级的多个服务的并行启动后,结束服务启动流程的步骤,包括:
在完成最低优先级的多个服务的并行启动后,对携带延迟信息属性的服务进行启动处理,并在启动成功后,结束服务启动流程。
在可选的实施方式中,所述服务器为多核服务器;
所述针对处于相同优先级的多个服务,对该多个服务进行并行启动处理的步骤,包括:
在处于相同优先级的多个服务的数量大于所述服务器的核数时,利用与所述核数对应的线程对所述多个服务中的部分进行并行启动;
在存在线程完成对应的服务的启动后,执行剩余的服务的启动,直至完成所述多个服务的启动。
第二方面,本申请提供一种服务启动优化装置,所述装置包括:
确定模块,用于针对部署在服务器中的多个服务,确定各所述服务的优先级,其中,各所述服务的优先级预先根据所述多个服务中服务之间的启动依赖关系所设置;
启动模块,用于按优先级从高到低的顺序,依次触发处于不同优先级的服务的启动,并针对处于相同优先级的多个服务,对该多个服务进行并行启动处理;
结束模块,用于在成功完成最低优先级的多个服务的并行启动后,结束服务启动流程。
第三方面,本申请提供一种电子设备,包括:
存储器,用于存储计算机程序;
与所述存储器连接的处理器,用于执行所述计算机程序,以实现前述实施方式任意一项所述的服务启动优化方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现前述实施方式任意一项所述的服务启动优化方法。
本申请实施例的有益效果包括,例如:
本申请提供一种服务启动优化方法、装置、电子设备和可读存储介质,针对部署在服务器中的多个服务,确定各服务的优先级,其中,各服务的优先级预先根据多个服务中服务之间的启动依赖关系所设置,再按照优先级从高到低的顺序,依次触发处于不同优先级的服务的启动,并针对处于相同优先级的多个服务,对该多个服务进行并行启动处理,在成功完成优先级最低的多个服务的并行启动后,结束服务启动流程。本方案基于多个服务之间的启动依赖关系设置各服务的优先级,并在整体上按照优先级从高到低的顺序对服务进行依次启动、在局部对处于相同优先级的多个服务进行并行启动,如此,可以保障服务按启动依赖关系顺利完成启动的基础上,有效提高服务启动的效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的服务启动优化方法的流程图;
图2为本申请实施例提供的服务启动优化方法中,优先级设置方法的流程图;
图3为图1中步骤S102包含的子步骤的流程图之一;
图4为图3中步骤S1023包含的子步骤的流程图;
图5为图1中步骤S102包含的子步骤的流程图之二;
图6为现有技术中服务启动流程的示意图;
图7为本申请实施例提供的服务启动优化方法中服务启动流程的示意图;
图8为本申请实施例提供的服务启动优化方法中服务并行启动的示意图;
图9为本申请实施例提供的电子设备的结构框图;
图10为本申请实施例提供的服务启动优化装置的功能模块框图。
图标:110-存储介质;120-处理器;130-服务启动优化装置;131-确定模块;132-启动模块;133-结束模块;140-通信接口。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本申请的描述中,需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
在Tomcat的多服务启动过程中,为了优化多服务的启动效率,现有技术中存在多种优化方案。例如,通过修改Java虚拟机(Java Virtual Machine,JVM)内存参数,因为Tomcat是一个Java程序开发的web服务器,因此修改JVM内存参数可以优化Tomcat服务。又如,通过清理不必要的web应用、不必要的jar包以及其他不必要的文件,以减少Tomcat对这些不必要的文件的处理来达到优先。又如,还包括通过禁止TLD扫描、禁止Servlet注解扫描或者禁止Web Fragment扫描的方式,从而节省服务启动所需时长。此外,还包括降低随机数熵源的方式,在JVM默认使用阻塞式熵源时,在某些情况下会导致Tomcat启动变慢,现有技术中通过使用非阻塞式熵源以一定程度上缓解该缺陷。
除了上述的优化方式之外,现有技术中还有采用并行启动一个服务下的多个web应用的方式,Tomcat支持的并行启动多个应用是一个服务内的多个应用,这些应用都在同一端口提供服务,而不能将不同应用作为不同服务来启动。此外,当服务之间有依赖关系时,比如B服务启动需要依赖A服务,现有技术中通常是将A、B服务放在两个不同的Tomcat中,启动时使用脚本来控制启动顺序,并且在启动B服务的脚本中不断轮巡检测A服务是否启动完成。
现有技术中对于Tomcat的多服务优化方式,大多是通过清理文件、修改参数,或者是对服务内部应用的优化来实现,优化作用有限,优化效果不佳。
基于上述研究发现,本申请实施例提供一种服务启动优化方案,通过基于服务器中多个服务之间的启动依赖关系设置各服务的优先级,并在整体上按照优先级从高到低的顺序对服务进行依次启动、在局部对处于相同优先级的多个服务进行并行启动。从而,可以在保障服务按照启动依赖关系顺利完成启动的基础上,有效提高服务启动的效率。
图1示出了本申请实施例提供的服务启动优化方法的流程示意图,该服务启动优化方法可由服务器实现,该服务器可为Tomcat,也即Java服务的主要服务器。应当理解,在其它实施例中,本实施例的服务启动优化方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。该服务启动优化方法的详细步骤介绍如下。
S101,针对部署在服务器中的多个服务,确定各所述服务的优先级,其中,各所述服务的优先级预先根据所述多个服务中服务之间的启动依赖关系所设置。
S102,按优先级从高到低的顺序,依次触发处于不同优先级的服务的启动,并针对处于相同优先级的多个服务,对该多个服务进行并行启动处理。
S103,在成功完成最低优先级的多个服务的并行启动后,结束服务启动流程。
本实施例中,所针对的部署在服务器中的多个服务可以是某项业务相关的多个服务,例如以电商业务为例,该多个服务可以包括如登录服务、权限验证服务、配置管理服务、日志记录服务等。在触发相关业务的情况下,可触发多个服务的启动。
本实施例中,服务器为多核服务,可利用服务器多核CPU的能力,将启动过程并行化,从而大大降低整个Tomcat的启动时间。例如,一个Tomcat中需要部署10个服务,每个服务的平均启动时间为t,则按现有技术中的串行启动方式,启动总时长为10t。如果Tomcat并行启动该10个服务,理论上可以将整个Tomcat的总时长缩短至t。
但是实际应用场景中,服务之间可能存在依赖关系,所以还需基于依赖关系考虑启动先后顺序,并不能将所有服务在同一时刻全部一起启动。如果采用将所有服务进行并行处理的方式,若服务之间存在依赖关系,则无法保障被依赖的服务优先启动。例如,A、B两个服务,若B服务的初始化配置需要在启动时调用A服务的接口来获取,如果同时启动A、B两个服务,则B服务调用A服务接口时,A服务可能还未启动完成,导致B服务调用失败,从而导致B服务启动失败。
因此,为了避免上述问题,可预先设置各个服务的优先级,其中,各个服务的优先级为根据多个服务中服务之间的启动依赖关系所设置。本实施例中,请参阅图2,可以通过以下方式预先设置各个服务的优先级:
S201,针对各所述服务,获取所述服务触发启动所需的依赖信息,所述依赖信息包括所述服务触发启动所需的其他服务的启动成功结果。
S202,基于各所述服务所需的依赖信息建立所述多个服务之间的启动依赖关系。
S203,根据所述启动依赖关系,设置各所述服务的优先级。
本实施例中,部署在服务器的多个服务中,一些服务的启动需要在另一些服务成功启动之后才能实现,也即,一些服务的触发启动需要依赖信息,而依赖信息为其他服务的启动成功结果。某个服务的启动需要另一服务的启动成功结果时,则该服务的优先级低于另一服务的优先级。
例如,针对多个服务中的任意两个服务,A服务和B服务。若A服务的启动需要依赖于B服务,则B服务的优先级高于A服务。若B服务的启动需要依赖于A服务,则A服务的优先级高于B服务。若A服务和B服务各自的启动无需依赖于彼此,则两者的优先级可以设置为同级。
其中,此处所指的A服务和B服务的启动无需依赖于彼此,包括A服务和B服务之间没有直接的启动依赖关系,还包括A服务和B服务之间没有间接的启动依赖关系。例如,A服务和B服务之间没有直接的启动依赖关系,但是A服务的启动需要依赖于C服务,而C服务的启动需要依赖于B服务,此时A服务的启动间接需要依赖于B服务。
作为一种可能的实现方式,可以通过扩展Tomcat的server.xml配置文件,给Service节点增加priority属性,从而标记各个服务的优先级。以下示例性示出相关的配置脚本:
以上示例配置中,一个Service节点就代表Tomcat中的一个服务,给Service节点添加priority属性后,解析Tomcat配置文件时会增加对其priority属性的读取,然后根据priority值对服务进行分组。priority值越小其优先级越高,会优先启动。如果Service没有配置priority属性,则默认为最低优先级,例如优先级10,没有配置的全部放在默认组。这样就可以根据实际情况精确控制各个服务的启动顺序。不同优先级分组内的服务只能串行启动,而同一分组内的服务可以并行启动。
比如A–G总共7个服务,BCD都依赖于A(B|C|D->A),EFG依赖于A和B(E|F|G->A&B),则配置时可以将A的priority配置为1,BCD配置为2,EFG配置3(或者不配置,默认10)。则启动时会先启动A,待A启动完成后,可并行启动B、C、D,最后并行启动E、F、G。该种方式和串行启动相比,可以节约其中4个服务的串行时间。
在另一种可能的实现方式中,可以扩展Tomcat的catalina.properties属性文件,来标记各个服务的优先级。扩展catalina.properties文件的启动方式与上述的扩展Tomcat的server.xml配置文件的启动方式相同,区别在于配置方式。
因为server.xml中可能配置几十个服务,若在处理过程中需要修改其中某些服务的优先级,则需要多处修改,导致操作不便。使用catalinas.properties来配置优先级可按如下方式:
startup.priority=A|B,C,D|E,F,G
Tomcat启动服务时会解析扩展的startup.priority属性值,用“|”来表示优先级分组,“|”前的表示必须要优先启动的服务,用”,”表示同一组内的多个服务,是可以并行启动的服务。此外,未配置在此处的服务,可全部放置最低优先级分组中并行启动。这种配置方式可以在一个地方完成所有服务的启动优先级控制,简单明了。在需要修改优先级时,只需对需要变动的部分进行修订即可,而无需对其他部分进行连带操作。
本实施例中,通过预先基于服务之间的启动依赖关系设置各个服务的优先级。在触发服务启动流程时,在启动各个服务时,整体上是按照优先级从高到低的顺序依次处理不同优先级的服务。而局部内处于相同优先级的多个服务,在内部可进行并行启动处理。
按上述方式,在成功完成最低优先级的多个服务的并行启动后,则结束服务启动流程。
本实施例提供的服务启动优化方法,从整体上按照优先级从高到低的顺序进行服务的启动,如此,可以保障服务能够成功启动,而处于相同优先级的多个服务并行启动处理,如此,可以缩减服务启动整体所需时长,有效提高服务启动的效率。
本实施例中,在并行启动处于同一优先级的多个服务时,可能会存在需要同时启动的服务的数量超过服务器的核数的情况,或者是由于服务器还需执行其他业务处理而需占用CPU资源的情况,在这类情况下,由于可利用的CPU核数不足,导致并行启动过程中,服务器需要不断切换线程上下文而带来额外开销,反而达不到优化的效果。
基于此考虑,本实施例中,通过利用动态调整策略以确定可利用的CPU核数,从而缓解上述问题。在一种可能的实现方式中,在并行启动处于同一优先级的多个服务时,可以通过以下方式实现,请结合参阅图3:
S1021A,检测是否触发动态调整策略,若未触发动态调整策略,则执行以下步骤S1022A,若触发动态调整策略,则执行以下步骤S1023A。
S1022A,利用与所述服务器的核数对应的线程对处于相同优先级的多个服务进行并行启动处理。
S1023A,基于动态调整策略确定并行启动数量,并利用与所述并行启动数量对应的线程对处于相同优先级的多个服务进行并行启动处理。
本实施例中,可以根据需求设置动态调整策略,该动态调整策略可以用于基于服务器当前的运行状况确定可用于执行服务启动的CPU核数,继而启动对应的线程进行服务的并行启动处理。
例如,在需要并行处理的服务的个数加上服务当前需要处理其他业务所占用的CPU核数之和,小于或等于服务器的CPU核数时,确定未触发动态调整策略。即服务器的核数可支持需要并行启动的服务的个数。此种情形下,则可以利用与服务器的核数对应的线程对处于相同优先级的多个服务进行并行启动。
本实施例中,在需要并行处理的服务的个数超过服务器的CPU核数,或者需要并行处理的服务的个数加上服务当前需要处理其他业务所占用的CPU核数之和超过服务器的CPU核数,或者是维护人员启动动态调整策略的情况下,可以判定触发动态调整策略。
在触发动态调整策略的情况下,可以基于动态调整策略确定并行启动数量,也即限制用于执行服务的并行启动的CPU核。利用与并行启动数量对应的线程对处于相同优先级的多个服务进行并行启动处理。
通过在服务器的CPU核不足的情况下,限定用于处理服务并行启动的线程,从而避免服务器不断切换线程上下文带来的额外开销,进而难以达到良好的优化效果的目的。
请参阅图4,本实施例中,在基于动态调整策略确定并行启动数量时,可以通过以下方式实现:
S10231A,获取所述服务器当前的负载占比以及设置的可占用比例,所述可占用比例表征服务启动流程可占用的剩余CPU资源的占比。
S10232A,根据所述负载占比、可占用比例和服务器的核数,计算得到并行启动数量。
本实施例中,服务器当前的负载占比表征服务器当前已被占用的资源占比。服务的并行启动所需的资源可从服务器当前剩余的资源中提供。而由于服务器可能还需提供其他业务的处理,服务的启动处理所占用的资源可以是剩余CPU资源的部分。
其中,设置的可占用比例取值区间为0-1,在取值为0时,表征不进行并行启动数量的动态调整,而在取值为1时,表示服务启动流程可占用剩余CPU资源的100%。
作为一种可能的实现方式,可以根据负载占比load、可占用比例ratio以及服务器的核数cores,按照以下公式计算得到并行启动数量threads:
threads=cores*ratio*(1-load)
例如,若Tomcat中需要部署的服务有30个,若配置的同时并行处理的服务数为6个,且服务器的CPU核数大于6,也即服务器的CPU核数足够。
在可占用比例设置为0时,表征不进行并行启动数量的动态调整,则同一时刻内Tomcat最多同时启动6个服务(同一优先级组内)。如果每个服务启动的平均时间为30秒,原始Tomcat串行启动需要900秒。如果使用本方案中的并行启动方式,在CPU核数足够的情况下,理论上可以将启动时间减低到原始Tomcat的1/6,即降低到150秒。
在可占用比例设置为0.5时,即服务启动流程可以占用服务器剩余CPU资源的50%。启动时,Tomcat可先判断服务器CPU核数及当前系统负载情况,比如分别为8核和0.25,则调整后的threads为:8*0.5*(1-0.25)=3。以上述的示例计算,则可以将启动时间降低到原来的1/3,即300秒。
本实施例中,通过动态调整并行启动数量的方式,可以支持在不同的服务器硬件配置中,自动选择合适的并行启动数量,不需要根据服务器的CPU核数的变化来手动调整。该方式可以很好地适用于当前服务器资源日渐虚拟化的场景,因为服务器虚拟化统一管理后,调整虚拟服务器的配置变得尤为简单,而本方案中的Tomcat服务并行启动数量动态调整方案可以自动跟随服务器资源的变化而变化,减少人工干预,降低出错几率。
本实施例中,若处于相同优先级的多个服务的数量大于服务器的核数,则意味着在对该多个服务进行并行处理时,无法同时触发该相同优先级的所有服务的启动。本实施例中,可先利用与核数对应的线程对多个服务中的部分进行并行启动,在存在线程完成对应的服务的启动后,执行剩余的服务的启动,直至完成多个服务的启动。
本实施例中,部署在服务器中的多个服务中,可能存在一些服务其启动并不会影响到其他服务的启动执行,而原生Tomcat是串行启动所有服务,如果其中一个服务启动失败,那么整个Tomcat直接失败,即所有的服务都无法运行。为了避免在某个服务启动失败即导致整体服务无法运行的情况,请参阅图5,本实施例中,从整体上考虑服务的启动执行时,可以通过以下方式实现:
S1021B,针对处于相同优先级的多个服务,若该多个服务中出现启动失败的服务,判定该启动失败的服务是否为预先设置的特定服务。
S1021B,若启动失败的服务为预先设置的特定服务,则在完成同一优先级的其他服务的启动后,触发执行下一优先级的多个服务的并行启动。
本实施例中,可以将其中一些启动结果不会对其他服务造成影响的服务设置为特定服务,例如日志记录服务、监控服务等。可以预先通过扩展Tomcat的Service配置项,增加optional属性,用于标识服务是否为特定服务,也即服务启动失败时是否可以忽略,如果配置为true则表示启动失败时可直接忽略,继续启动其他服务。
以下示例性地示出配置相关的配置脚本:
本实施例中,特定服务在启动失败的情况下,可以进行忽略,不会影响到其下一级的服务的启动触发。从而避免一旦出现服务失败,即导致整体服务无法运行的现象。
此外,考虑到部署在服务器中的多个服务中,有的服务需要在启动之后立即访问,比如登录服务、权限验证服务、配置管理服务等。而有的服务可能后续阶段才需要使用,甚至于长时间不使用。因此,在服务启动时,可以不必等所有服务都启动完成,只要将必要的服务启动完成之后,用户就可以开始相关操作。
基于上述考虑,本实施例中,可以在触发执行服务的启动之前,先判断多个服务中是否具有携带有延迟信息属性的服务,若具有,则将携带延迟信息属性的服务抽取出来。
本实施例中,可以预先对可延迟进行启动的服务进行标记,例如,为可延迟启动的服务配置lazy-startup延迟信息属性,以下示例性地示出相关的配置脚本:
本实施例中,预先将携带延迟信息属性的服务抽取出来,再按照上述的按优先级从高到低的顺序进行服务的启动,并在完成最低优先级的多个服务的并行启动后,对携带延迟信息属性的服务进行启动处理,并在启动成功后,结束服务启动流程。
本实施例中,在延迟信息属性中还可配置可延迟处理的间隔时间,例如可在其他服务启动完成之后的300s后触发携带延迟信息属性的服务的启动。
本实施例中,通过区分出需要及时处理和无需及时处理的服务,合理安排各类服务的启动触发时间,使得服务启动更加合理化。
本实施例所提供的服务启动优化方案,通过对Tomcat内部署的各个服务进行优先级设置,对于同一优先级的多个服务进行并行启动,不同优先级之间按照优先级从高到低的顺序依次触发启动。在CPU核数足够的情况下,可以成倍降低整个Tomcat启动时间。而通过配置优先级来控制服务启动顺序,在服务之间具有启动依赖关系的情况下,可以优先启动被依赖的服务,保障服务的顺利启动。
此外,本实施例中,通过动态调整策略以确定并行启动数量,可以根据服务器的CPU规格以及服务器的负载来灵活控制并行启动的服务数量,避免并行启动数量过多,CPU频繁切换线程上下文而导致额外的开销。
进一步地,通过配置在启动失败时可忽略的特定服务,在启动过程中若特定服务启动失败,则可继续执行后续的服务启动,不会影响到其他服务。
此外,通过对一些不需要及时启动使用的服务配置延迟信息属性,以在完成其他服务的启动之后,再执行该类服务的启动。可合理安排各类服务的启动时间点。
为了使本领域技术人员更清楚了解本实施例所提供的服务启动优化方法,以下结合示例对该方案进行介绍。
假设产品线需要在一个Tomcat中部署30个服务,服务名分别为Service1、Service2…Service30。通过如下配置来实现服务启动控制:
在此基础上,可扩展Tomcat的catalina.properties配置文件,增加并发启动数量限制。
在以上配置信息中,Service节点中的priority、optional、lazy-startup属性是本方案扩展的三个属性,用于控制服务启动的优先级、是否忽略失败以及延迟启动时间。
基于上述配置信息,service1-4是第一优先级启动的,service5-20是第二优先级启动的,service21-30是第三优先级启动的。Service19、Service20配置为失败时可忽略,也即属于特定服务。并行启动数量threads配置为4,ratio配置为0,表示不根据系统负载动态调整。
在上述场景下,若按照现有技术中的串行处理方式,如图6中所示,则启动总时长为t1+t2+…+t30。并且,若其中某个服务启动失败,则影响后续其他服务的启动,导致整体服务不可用。
基于上述配置信息,在进行服务的启动时,可以按照以下方式启动:
1、Tomcat可并行启动优先级为1的Service1-4服务,所需时间分别为t1-t4,总耗时为t1-t4的最大值,即:Max(t1,t2,t3,t4)。
2、请结合参阅图7,当Priority为1的4个服务完成后,会接着启动5-20这16个服务,因为最大的并行启动数量配置为4,所以这16个服务会由4个线程并行启动。当4个线程全部用完时,其他服务会在队列中等待启动,请结合参阅图8。当并行启动线程池完成一个服务启动之后,会立即从等待队列中获取下一个服务,直到将这16个服务全部启动完成。
a)理想情况下,每一轮启动4个服务,总共4轮就能启动完成16个服务;总耗时为4轮耗时的总和:round1+round2+round3+round4。
b)极端情况下,如果某一个服务启动耗时特别长,如Service5特别耗时,则这一个服务会长时间独占1个启动线程,剩下的15个服务则只能共享其他3个线程,那么剩下的15个线程总共需要5轮才能全部启动完成,总耗时为:Max(t5,(round1+round2+round3+round4+round5))。
c)其他一般情况下,Service5独占两个平均时间周期,则Service5启动完成后,其他剩余的服务可以继续共享4个线程。
3、如果Service19和Service20启动失败,则Tomcat会直接跳过这两个服务,其他服务能够正常使用,避免了一个服务异常导致全局不可用。
4、当Priority为2的服务全部启动完成后,会接着启动Priority为3的剩余10个服务,并且Service29和Service30是延迟启动的,所以初期只会启动8个服务,启动执行和步骤2类似,理想情况下可以2轮完成。
基于上述方式,理想情况下,总耗时为7个轮次的耗时之和,为原时间的1/4。如果CPU资源足够,调大并行数,还可以继续降低总时间。
请参阅图9,为本申请实施例提供的电子设备的示例性组件示意图,该电子设备可为上述服务器,例如Tomcat服务器。该电子设备可包括存储介质110、处理器120、服务启动优化装置130及通信接口140。本实施例中,存储介质110与处理器120均位于电子设备中且二者分离设置。然而,应当理解的是,存储介质110也可以是独立于电子设备之外,且可以由处理器120通过总线接口来访问。可替换地,存储介质110也可以集成到处理器120中,例如,可以是高速缓存和/或通用寄存器。
服务启动优化装置130可以理解为上述电子设备,或电子设备的处理器120,也可以理解为独立于上述电子设备或处理器120之外的在电子设备控制下实现上述服务启动优化方法的软件功能模块。
如图10所示,上述服务启动优化装置130可以包括确定模块131、启动模块132和结束模块133。下面分别对该服务启动优化装置130的各个功能模块的功能进行详细阐述。
确定模块131,用于针对部署在服务器中的多个服务,确定各所述服务的优先级,其中,各所述服务的优先级预先根据所述多个服务中服务之间的启动依赖关系所设置。
可以理解,该确定模块131可以用于执行上述步骤S101,关于该确定模块131的详细实现方式可以参照上述对步骤S101有关的内容。
启动模块132,用于按优先级从高到低的顺序,依次触发处于不同优先级的服务的启动,并针对处于相同优先级的多个服务,对该多个服务进行并行启动处理。
可以理解,该启动模块132可以用于执行上述步骤S102,关于该启动模块132的详细实现方式可以参照上述对步骤S102有关的内容。
结束模块133,用于在成功完成最低优先级的多个服务的并行启动后,结束服务启动流程。
可以理解,该结束模块133可以用于执行上述步骤S103,关于该结束模块133的详细实现方式可以参照上述对步骤S103有关的内容。
在一种可能的实施方式中,所述服务启动优化装置130还包括用于预先设置各所述服务的优先级设置模块,该设置模块具体可以用于:
针对各所述服务,获取所述服务触发启动所需的依赖信息,所述依赖信息包括所述服务触发启动所需的其他服务的启动成功结果;
基于各所述服务所需的依赖信息建立所述多个服务之间的启动依赖关系;
根据所述启动依赖关系,设置各所述服务的优先级。
在一种可能的实施方式中,所述服务器为多核服务器,上述启动模块132具体可以用于:
检测是否触发动态调整策略,若未触发动态调整策略,则利用与所述服务器的核数对应的线程对处于相同优先级的多个服务进行并行启动处理;
若触发动态调整策略,则基于动态调整策略确定并行启动数量,并利用与所述并行启动数量对应的线程对处于相同优先级的多个服务进行并行启动处理。
在一种可能的实施方式中,上述启动模块132具体可以用于:
获取所述服务器当前的负载占比以及设置的可占用比例,所述可占用比例表征服务启动流程可占用的剩余CPU资源的占比;
根据所述负载占比、可占用比例和服务器的核数,计算得到并行启动数量。
在一种可能的实施方式中,所述启动模块132具体可以用于:
针对处于相同优先级的多个服务,若该多个服务中出现启动失败的服务,判定该启动失败的服务是否为预先设置的特定服务;
若启动失败的服务为预先设置的特定服务,则在完成同一优先级的其他服务的启动后,触发执行下一优先级的多个服务的并行启动。
在一种可能的实施方式中,所述服务启动优化装置还包括抽取模块,该抽取模块用于:
判断所述多个服务中是否具有携带延迟信息属性的服务,若具有,则将携带延迟信息属性的服务抽取出来;
所述结束模块133用于:
在完成最低优先级的多个服务的并行启动后,对携带延迟信息属性的服务进行启动处理,并在启动成功后,结束服务启动流程。
在一种可能的实施方式中,所述服务器为多核服务器,所述启动模块132具体可以用于:
在处于相同优先级的多个服务的数量大于所述服务器的核数时,利用与所述核数对应的线程对所述多个服务中的部分进行并行启动;
在存在线程完成对应的服务的启动后,执行剩余的服务的启动,直至完成所述多个服务的启动。
在本申请实施例中,对应于上述的服务启动优化方法,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序运行时执行上述服务启动优化方法的各个步骤。
其中,前述计算机程序运行时执行的各步骤,在此不再一一赘述,可参考前文对所述服务启动优化方法的解释说明。
综上所述,本申请实施例提供的服务启动优化方法、装置、电子设备和可读存储介质,针对部署在服务器中的多个服务,确定各服务的优先级,其中,各服务的优先级预先根据多个服务中服务之间的启动依赖关系所设置,再按照优先级从高到低的顺序,依次触发处于不同优先级的服务的启动,并针对处于相同优先级的多个服务,对该多个服务进行并行启动处理,在成功完成优先级最低的多个服务的并行启动后,结束服务启动流程。本方案基于多个服务之间的启动依赖关系设置各服务的优先级,并在整体上按照优先级从高到低的顺序对服务进行依次启动、在局部对处于相同优先级的多个服务进行并行启动,如此,可以保障服务按启动依赖关系顺利完成启动的基础上,有效提高服务启动的效率。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种服务启动优化方法,其特征在于,所述方法包括:
针对部署在服务器中的多个服务,确定各所述服务的优先级,其中,各所述服务的优先级预先根据所述多个服务中服务之间的启动依赖关系所设置;
按优先级从高到低的顺序,依次触发处于不同优先级的服务的启动,并针对处于相同优先级的多个服务,对该多个服务进行并行启动处理;
在成功完成最低优先级的多个服务的并行启动后,结束服务启动流程;
所述服务器为多核服务器,所述针对处于相同优先级的多个服务,对该多个服务进行并行启动处理的步骤,包括:
检测是否触发动态调整策略,若未触发动态调整策略,则利用与所述服务器的核数对应的线程对处于相同优先级的多个服务进行并行启动处理,若触发动态调整策略,则基于动态调整策略确定并行启动数量,并利用与所述并行启动数量对应的线程对处于相同优先级的多个服务进行并行启动处理;
所述基于动态调整策略确定并行启动数量的步骤,包括:
获取所述服务器当前的负载占比以及设置的可占用比例,所述可占用比例表征服务启动流程可占用的剩余CPU资源的占比,根据所述负载占比、可占用比例和服务器的核数,计算得到并行启动数量。
2.根据权利要求1所述的服务启动优化方法,其特征在于,所述方法还包括预先设置各所述服务的优先级的步骤,该步骤包括:
针对各所述服务,获取所述服务触发启动所需的依赖信息,所述依赖信息包括所述服务触发启动所需的其他服务的启动成功结果;
基于各所述服务所需的依赖信息建立所述多个服务之间的启动依赖关系;
根据所述启动依赖关系,设置各所述服务的优先级。
3.根据权利要求1所述的服务启动优化方法,其特征在于,所述按优先级从高到低的顺序,依次触发处于不同优先级的服务的启动的步骤,包括:
针对处于相同优先级的多个服务,若该多个服务中出现启动失败的服务,判定该启动失败的服务是否为预先设置的特定服务;
若启动失败的服务为预先设置的特定服务,则在完成同一优先级的其他服务的启动后,触发执行下一优先级的多个服务的并行启动。
4.根据权利要求1所述的服务启动优化方法,其特征在于,所述按优先级从高到低的顺序,依次触发处于不同优先级的服务的启动的步骤之前,所述方法还包括:
判断所述多个服务中是否具有携带延迟信息属性的服务,若具有,则将携带延迟信息属性的服务抽取出来;
所述在成功完成最低优先级的多个服务的并行启动后,结束服务启动流程的步骤,包括:
在完成最低优先级的多个服务的并行启动后,对携带延迟信息属性的服务进行启动处理,并在启动成功后,结束服务启动流程。
5.根据权利要求1所述的服务启动优化方法,其特征在于,所述服务器为多核服务器;
所述针对处于相同优先级的多个服务,对该多个服务进行并行启动处理的步骤,包括:
在处于相同优先级的多个服务的数量大于所述服务器的核数时,利用与所述核数对应的线程对所述多个服务中的部分进行并行启动;
在存在线程完成对应的服务的启动后,执行剩余的服务的启动,直至完成所述多个服务的启动。
6.一种服务启动优化装置,其特征在于,所述装置包括:
确定模块,用于针对部署在服务器中的多个服务,确定各所述服务的优先级,其中,各所述服务的优先级预先根据所述多个服务中服务之间的启动依赖关系所设置;
启动模块,用于按优先级从高到低的顺序,依次触发处于不同优先级的服务的启动,并针对处于相同优先级的多个服务,对该多个服务进行并行启动处理;
结束模块,用于在成功完成最低优先级的多个服务的并行启动后,结束服务启动流程;
所述服务器为多核服务器,所述启动模块用于检测是否触发动态调整策略,若未触发动态调整策略,则利用与所述服务器的核数对应的线程对处于相同优先级的多个服务进行并行启动处理,若触发动态调整策略,则基于动态调整策略确定并行启动数量,并利用与所述并行启动数量对应的线程对处于相同优先级的多个服务进行并行启动处理;
所述启动模块用于获取所述服务器当前的负载占比以及设置的可占用比例,所述可占用比例表征服务启动流程可占用的剩余CPU资源的占比,根据所述负载占比、可占用比例和服务器的核数,计算得到并行启动数量。
7.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
与所述存储器连接的处理器,用于执行所述计算机程序,以实现权利要求1-5任意一项所述的服务启动优化方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被执行时实现权利要求1-5任意一项所述的服务启动优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111459671.0A CN114116068B (zh) | 2021-12-02 | 2021-12-02 | 服务启动优化方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111459671.0A CN114116068B (zh) | 2021-12-02 | 2021-12-02 | 服务启动优化方法、装置、电子设备和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114116068A CN114116068A (zh) | 2022-03-01 |
CN114116068B true CN114116068B (zh) | 2023-06-02 |
Family
ID=80366269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111459671.0A Active CN114116068B (zh) | 2021-12-02 | 2021-12-02 | 服务启动优化方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116068B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114647464B (zh) * | 2022-05-19 | 2022-09-06 | 恒生电子股份有限公司 | 应用的并行启动处理方法、装置及电子设备 |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043648A (zh) * | 2009-10-23 | 2011-05-04 | 中兴通讯股份有限公司 | 多核系统及其启动方法 |
CN102495725A (zh) * | 2011-11-15 | 2012-06-13 | 复旦大学 | 一种基于多核体系结构的图像/视频特征提取并行算法 |
CN102681889A (zh) * | 2012-04-27 | 2012-09-19 | 电子科技大学 | 一种云计算开放平台的调度方法 |
CN103713944A (zh) * | 2013-12-13 | 2014-04-09 | 上海华为技术有限公司 | 一种内核中线程的处理方法、装置和系统 |
CN104660694A (zh) * | 2015-02-09 | 2015-05-27 | 北京博雅立方科技有限公司 | 服务调用方法及装置 |
CN108170526A (zh) * | 2017-12-06 | 2018-06-15 | 北京像素软件科技股份有限公司 | 负载能力优化方法、装置、服务器及可读存储介质 |
CN109901926A (zh) * | 2019-01-25 | 2019-06-18 | 平安科技(深圳)有限公司 | 基于大数据行为调度应用任务的方法、服务器及存储介质 |
CN110333932A (zh) * | 2019-06-13 | 2019-10-15 | 上海金融期货信息技术有限公司 | 基于容器云技术的服务编排与依赖关系管理方法和系统 |
CN110502221A (zh) * | 2018-05-17 | 2019-11-26 | 北京中科海讯数字科技股份有限公司 | 一种三维声场计算系统 |
CN110955527A (zh) * | 2019-12-17 | 2020-04-03 | 湖南大学 | 一种基于cpu核数预测实现并行任务调度的方法和系统 |
CN111427686A (zh) * | 2020-03-23 | 2020-07-17 | 贵阳块数据城市建设有限公司 | 一种处理器多线程并发方法 |
CN111488220A (zh) * | 2020-04-09 | 2020-08-04 | 北京字节跳动网络技术有限公司 | 一种启动请求处理方法、装置和电子设备 |
CN111752641A (zh) * | 2020-06-29 | 2020-10-09 | 深圳壹账通智能科技有限公司 | 微服务容器之间服务启动方法、装置、设备及存储介质 |
CN111880853A (zh) * | 2020-07-29 | 2020-11-03 | 北京浪潮数据技术有限公司 | 一种集群化服务的启动方法、系统及相关装置 |
CN112181517A (zh) * | 2020-09-24 | 2021-01-05 | 北京达佳互联信息技术有限公司 | 一种应用软件的启动方法、装置、设备和介质 |
CN112769922A (zh) * | 2020-12-31 | 2021-05-07 | 南京视察者智能科技有限公司 | 一种微服务集群自启动的装置及方法 |
CN112988281A (zh) * | 2021-04-25 | 2021-06-18 | 浙江口碑网络技术有限公司 | 应用启动方法及装置 |
CN113010286A (zh) * | 2021-03-12 | 2021-06-22 | 京东数字科技控股股份有限公司 | 并行任务调度方法、装置、计算机设备和存储介质 |
CN113127089A (zh) * | 2019-12-27 | 2021-07-16 | 深圳市华胜软件技术有限公司 | 一种服务架构的模块的启动控制方法、计算机设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160292015A1 (en) * | 2015-04-03 | 2016-10-06 | Qualcomm Innovation Center, Inc. | Processor frequency scaling based upon load tracking of dependent tasks |
US20180032376A1 (en) * | 2016-07-27 | 2018-02-01 | Samsung Electronics Co .. Ltd. | Apparatus and method for group-based scheduling in multi-core processor system |
-
2021
- 2021-12-02 CN CN202111459671.0A patent/CN114116068B/zh active Active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043648A (zh) * | 2009-10-23 | 2011-05-04 | 中兴通讯股份有限公司 | 多核系统及其启动方法 |
CN102495725A (zh) * | 2011-11-15 | 2012-06-13 | 复旦大学 | 一种基于多核体系结构的图像/视频特征提取并行算法 |
CN102681889A (zh) * | 2012-04-27 | 2012-09-19 | 电子科技大学 | 一种云计算开放平台的调度方法 |
CN103713944A (zh) * | 2013-12-13 | 2014-04-09 | 上海华为技术有限公司 | 一种内核中线程的处理方法、装置和系统 |
CN104660694A (zh) * | 2015-02-09 | 2015-05-27 | 北京博雅立方科技有限公司 | 服务调用方法及装置 |
CN108170526A (zh) * | 2017-12-06 | 2018-06-15 | 北京像素软件科技股份有限公司 | 负载能力优化方法、装置、服务器及可读存储介质 |
CN110502221A (zh) * | 2018-05-17 | 2019-11-26 | 北京中科海讯数字科技股份有限公司 | 一种三维声场计算系统 |
CN109901926A (zh) * | 2019-01-25 | 2019-06-18 | 平安科技(深圳)有限公司 | 基于大数据行为调度应用任务的方法、服务器及存储介质 |
CN110333932A (zh) * | 2019-06-13 | 2019-10-15 | 上海金融期货信息技术有限公司 | 基于容器云技术的服务编排与依赖关系管理方法和系统 |
CN110955527A (zh) * | 2019-12-17 | 2020-04-03 | 湖南大学 | 一种基于cpu核数预测实现并行任务调度的方法和系统 |
CN113127089A (zh) * | 2019-12-27 | 2021-07-16 | 深圳市华胜软件技术有限公司 | 一种服务架构的模块的启动控制方法、计算机设备 |
CN111427686A (zh) * | 2020-03-23 | 2020-07-17 | 贵阳块数据城市建设有限公司 | 一种处理器多线程并发方法 |
CN111488220A (zh) * | 2020-04-09 | 2020-08-04 | 北京字节跳动网络技术有限公司 | 一种启动请求处理方法、装置和电子设备 |
CN111752641A (zh) * | 2020-06-29 | 2020-10-09 | 深圳壹账通智能科技有限公司 | 微服务容器之间服务启动方法、装置、设备及存储介质 |
CN111880853A (zh) * | 2020-07-29 | 2020-11-03 | 北京浪潮数据技术有限公司 | 一种集群化服务的启动方法、系统及相关装置 |
CN112181517A (zh) * | 2020-09-24 | 2021-01-05 | 北京达佳互联信息技术有限公司 | 一种应用软件的启动方法、装置、设备和介质 |
CN112769922A (zh) * | 2020-12-31 | 2021-05-07 | 南京视察者智能科技有限公司 | 一种微服务集群自启动的装置及方法 |
CN113010286A (zh) * | 2021-03-12 | 2021-06-22 | 京东数字科技控股股份有限公司 | 并行任务调度方法、装置、计算机设备和存储介质 |
CN112988281A (zh) * | 2021-04-25 | 2021-06-18 | 浙江口碑网络技术有限公司 | 应用启动方法及装置 |
Non-Patent Citations (1)
Title |
---|
OpenMP多核技术研究及其在遗传算法中的应用;刘热;;沈阳大学学报(第05期);第6-10页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114116068A (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111104208B (zh) | 进程调度管理方法、装置、计算机设备及存储介质 | |
US20150121387A1 (en) | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core system and related non-transitory computer readable medium | |
US20110016247A1 (en) | Multiprocessor system and multiprocessor system interrupt control method | |
US11438271B2 (en) | Method, electronic device and computer program product of load balancing | |
US20230254312A1 (en) | Service processing method and device | |
CN114116068B (zh) | 服务启动优化方法、装置、电子设备和可读存储介质 | |
CN111880936A (zh) | 资源调度方法、装置、容器集群、计算机设备和存储介质 | |
US20130080809A1 (en) | Server system and power managing method thereof | |
US20140115601A1 (en) | Data processing method and data processing system | |
CN113918647A (zh) | 分布式数据库弹性伸缩方法、装置、设备和存储介质 | |
CN110838987B (zh) | 队列限流方法、存储介质 | |
WO2020108337A1 (zh) | 一种cpu资源调度方法及电子设备 | |
CN115658153A (zh) | 睡眠锁优化方法、装置、电子设备及存储介质 | |
US20230409391A1 (en) | Thread priority adjusting method, terminal, and computer-readable storage medium | |
CN111225007B (zh) | 数据库连接方法、装置和系统 | |
CN113515458B (zh) | 基于Envoy插件降低测试环境资源消耗的方法及系统 | |
CN113157415B (zh) | 农场渲染方法、装置、电子设备和存储介质 | |
CN113138842B (zh) | 微服务集群的调度方法、装置及介质 | |
CN114500749A (zh) | Ai智能外呼转人工坐席的方法、系统、设备和存储介质 | |
CN114579298A (zh) | 资源管理方法、资源管理器和计算机可读存储介质 | |
CN111858060A (zh) | 一种高性能计算集群的资源动态调整方法和装置 | |
US20080271024A1 (en) | Information processing apparatus, information processing system and information processing method for processing tasks in parallel | |
CN112685174A (zh) | 一种容器创建方法、装置、设备及介质 | |
CN115311123B (zh) | 一种像素流gpu资源调度方法及装置 | |
CN118034942B (zh) | 集群算力管理方法、装置、设备及存储介质 |
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 |