CN117492988A - 任务执行方法、装置、电子设备及存储介质 - Google Patents
任务执行方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117492988A CN117492988A CN202311435351.0A CN202311435351A CN117492988A CN 117492988 A CN117492988 A CN 117492988A CN 202311435351 A CN202311435351 A CN 202311435351A CN 117492988 A CN117492988 A CN 117492988A
- Authority
- CN
- China
- Prior art keywords
- resource
- resources
- framework
- determining
- cpu
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000015654 memory Effects 0.000 claims description 48
- 238000012545 processing Methods 0.000 claims description 11
- 230000002596 correlated effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 230000002829 reductive effect Effects 0.000 abstract description 16
- 230000008569 process Effects 0.000 abstract description 15
- 230000002159 abnormal effect Effects 0.000 abstract description 11
- 238000013508 migration Methods 0.000 abstract description 5
- 230000005012 migration Effects 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 8
- 230000000875 corresponding effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000002955 isolation Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000000670 limiting effect Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered 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/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
-
- 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
-
- 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)
- Hardware Redundancy (AREA)
Abstract
本申请实施例涉及一种任务执行方法、装置、电子设备及存储介质,上述方法包括:从第一资源框架的资源池中,确定所述第一资源框架的可用资源,得到第一资源;接收任务调度指令;从所述第一资源中,确定第二资源框架的可用资源,得到第二资源;通过所述第二资源框架调度所述第二资源,执行所述任务调度指令指示的任务。由此,可以在将业务逐步由第一资源框架迁移至第二资源框架的场景下,进行任务的逐步调度,可以在业务迁移的过程中,降低任务执行异常的概率,进而降低对运行中的程序或应用的影响。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种任务执行方法、装置、电子设备及存储介质。
背景技术
现有技术中,通常采用资源框架实现资源管理。其中,现有的资源框架种类较多,例如Apache Mesos、Kubernetes等。其中,Apache Mesos是一个开源的集群管理系统。Mesos的主要目标是提供一个高度可扩展和高度可用的资源管理平台,用于管理大规模数据中心中的计算、存储和网络资源。Mesos的关键特点和功能包括:资源抽象化、多框架支持、高可用性、灵活性、扩展性、容器支持、跨数据中心支持、社区支持等。Kubernetes(K8s)是一种开源容器编排平台,用于管理和扩展容器化应用程序。它自动化了应用程序的部署、扩展和管理,提供负载均衡、自动扩展等功能,适用于大规模容器化应用程序。
在实际的应用场景中,存在将业务逐步由一个资源框架迁移至另一资源框架的需求。然而,在将业务逐步由一个资源框架迁移至另一资源框架的场景下,任务异常执行频发,大大影响程序或应用的运行。
可见,在将业务逐步由一个资源框架迁移至另一资源框架的场景下,如何降低任务执行异常的概率,进而降低对运行中的程序或应用的影响,是一个值得关注的技术问题。
发明内容
鉴于此,为解决上述部分或全部技术问题,本申请实施例提供一种任务执行方法、装置、电子设备及存储介质。
第一方面,本申请实施例提供一种任务执行方法,所述方法包括:
从第一资源框架的资源池中,确定所述第一资源框架的可用资源,得到第一资源;
接收任务调度指令;
从所述第一资源中,确定第二资源框架的可用资源,得到第二资源;
通过所述第二资源框架调度所述第二资源,执行所述任务调度指令指示的任务。
在一个可能的实施方式中,所述从第一资源框架的资源池中,确定所述第一资源框架的可用资源,包括:
确定所述第一资源框架的已用资源,得到第三资源;
确定所述第一资源框架的预留资源,得到第四资源;
将所述第一资源框架的资源池中,除所述第三资源和所述第四资源之外的资源,确定为所述第一资源框架的可用资源。
在一个可能的实施方式中,所述第四资源的资源量采用如下方式确定:
将目标比值与所述资源池的资源量的乘积,确定为所述第四资源的资源量;其中:
所述目标比值为预设比值;或者,所述目标比值基于所述资源池的第一已用资源率确定,所述第一已用资源率为所述第三资源的资源量与所述资源池的资源量之比。
在一个可能的实施方式中,在所述目标比值基于所述资源池的第一已用资源率确定的情况下,所述目标比值与所述第一已用资源率呈正相关,或者,所述目标比值与所述第一已用资源率所属的区间的中值呈正相关。
在一个可能的实施方式中,在所述资源池包括中央处理器CPU核集合的情况下,所述从所述第一资源中,确定第二资源框架的可用资源,包括:
将所述CPU核集合中,除独占核之外的CPU核的集合,确定为CPU核子集;
确定所述任务调度指令请求调度的CPU核的数量,得到目标数量;
按照第二已用资源率由少到多的顺序,从所述CPU核子集中,确定所述目标数量个CPU核,其中,所述第二已用资源率表示CPU核已用资源的资源量与CPU核的总资源量之比;
将所述目标数量个CPU核,确定为第二资源框架的可用资源。
在一个可能的实施方式中,在所述按照第二已用资源率由少到多的顺序,从所述CPU核子集中,确定所述目标数量个CPU核之后,所述方法还包括:
将所述CPU核集合中除所述目标数量个CPU核之外的CPU核的集合,确定为新的所述第一资源框架的资源池。
在一个可能的实施方式中,在所述将所述CPU核集合中除所述目标数量个CPU核之外的CPU核的集合,确定为新的所述第一资源框架的资源池之后,所述方法还包括:
确定所述第一资源框架的已用资源率是否大于或等于预设阈值;
在所述已用资源率大于或等于所述预设阈值的情况下,将包括所述目标数量个CPU核的所述CPU核集合,确定为新的所述第一资源框架的资源池。
在一个可能的实施方式中,所述CPU核子集中的每个CPU核的第二已用资源率,采用如下方式确定:
确定该CPU核的第一资源率和第二资源率,其中,所述第一资源率表示该CPU核在第一时间段内的平均已用资源率,所述第二资源率表示该CPU核在第二时间段内的平均已用资源率,所述第一时间段的时长大于所述第二时间段的时长;
基于所述第一资源率和所述第二资源率,确定该CPU核的第二已用资源率。
第二方面,本申请实施例提供一种任务执行装置,所述装置包括:
第一确定单元,用于从第一资源框架的资源池中,确定所述第一资源框架的可用资源,得到第一资源;
接收单元,用于接收任务调度指令;
第二确定单元,用于从所述第一资源中,确定第二资源框架的可用资源,得到第二资源;
执行单元,用于通过所述第二资源框架调度所述第二资源,执行所述任务调度指令指示的任务。
在一个可能的实施方式中,所述从第一资源框架的资源池中,确定所述第一资源框架的可用资源,包括:
确定所述第一资源框架的已用资源,得到第三资源;
确定所述第一资源框架的预留资源,得到第四资源;
将所述第一资源框架的资源池中,除所述第三资源和所述第四资源之外的资源,确定为所述第一资源框架的可用资源。
在一个可能的实施方式中,所述第四资源的资源量采用如下方式确定:
将目标比值与所述资源池的资源量的乘积,确定为所述第四资源的资源量;其中:
所述目标比值为预设比值;或者,所述目标比值基于所述资源池的第一已用资源率确定,所述第一已用资源率为所述第三资源的资源量与所述资源池的资源量之比。
在一个可能的实施方式中,在所述目标比值基于所述资源池的第一已用资源率确定的情况下,所述目标比值与所述第一已用资源率呈正相关,或者,所述目标比值与所述第一已用资源率所属的区间的中值呈正相关。
在一个可能的实施方式中,在所述资源池包括中央处理器CPU核集合的情况下,所述从所述第一资源中,确定第二资源框架的可用资源,包括:
将所述CPU核集合中,除独占核之外的CPU核的集合,确定为CPU核子集;
确定所述任务调度指令请求调度的CPU核的数量,得到目标数量;
按照第二已用资源率由少到多的顺序,从所述CPU核子集中,确定所述目标数量个CPU核,其中,所述第二已用资源率表示CPU核已用资源的资源量与CPU核的总资源量之比;
将所述目标数量个CPU核,确定为第二资源框架的可用资源。
在一个可能的实施方式中,在所述按照第二已用资源率由少到多的顺序,从所述CPU核子集中,确定所述目标数量个CPU核之后,所述装置还包括:
第三确定单元,用于将所述CPU核集合中除所述目标数量个CPU核之外的CPU核的集合,确定为新的所述第一资源框架的资源池。
在一个可能的实施方式中,在所述将所述CPU核集合中除所述目标数量个CPU核之外的CPU核的集合,确定为新的所述第一资源框架的资源池之后,所述装置还包括:
第四确定单元,用于确定所述第一资源框架的已用资源率是否大于或等于预设阈值;
第五确定单元,用于在所述已用资源率大于或等于所述预设阈值的情况下,将包括所述目标数量个CPU核的所述CPU核集合,确定为新的所述第一资源框架的资源池。
在一个可能的实施方式中,所述CPU核子集中的每个CPU核的第二已用资源率,采用如下方式确定:
确定该CPU核的第一资源率和第二资源率,其中,所述第一资源率表示该CPU核在第一时间段内的平均已用资源率,所述第二资源率表示该CPU核在第二时间段内的平均已用资源率,所述第一时间段的时长大于所述第二时间段的时长;
基于所述第一资源率和所述第二资源率,确定该CPU核的第二已用资源率。
第三方面,本申请实施例提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现本申请上述第一方面的任务执行方法中任一实施例的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述第一方面的任务执行方法中任一实施例的方法。
第五方面,本申请实施例提供一种计算机程序,所述计算机程序包括计算机可读代码,当所述计算机可读代码在设备上运行时,使得该设备中的处理器实现如上述第一方面的任务执行方法中任一实施例的方法。
本申请实施例提供的任务执行方法,可以从第一资源框架的资源池中,确定所述第一资源框架的可用资源,得到第一资源,之后,接收任务调度指令,然后,从所述第一资源中,确定第二资源框架的可用资源,得到第二资源,随后,通过所述第二资源框架调度所述第二资源,执行所述任务调度指令指示的任务。由此,可以在将业务逐步由第一资源框架迁移至第二资源框架的场景下,进行任务的逐步调度,可以在业务迁移的过程中,降低任务执行异常的概率,进而降低对运行中的程序或应用的影响。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1为本申请实施例提供的一种任务执行方法的流程示意图;
图2为本申请实施例提供的另一种任务执行方法的流程示意图;
图3A为本申请实施例提供的一种任务执行方法涉及的架构图;
图3B为本申请实施例提供的一种任务执行方法涉及的获取第二资源框架的可用资源的流程示意图;
图3C为本申请实施例提供的一种任务执行方法涉及的资源分配的流程示意图;
图4为本申请实施例提供的一种任务执行装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
现在将参照附图来详细描述本申请的各种示例性实施例,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值并不限制本申请的范围。
本领域技术人员可以理解,本申请实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等对象,既不代表任何特定技术含义,也不表示它们之间的逻辑顺序。
还应理解,在本实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本申请实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本申请中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本申请对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本申请及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,上述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。为便于对本申请实施例的理解,下面将参考附图并结合实施例来详细说明本申请。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了解决现有技术中,在将业务逐步由一个资源框架迁移至另一资源框架的场景下,如何降低任务执行异常的概率,进而降低对运行中的程序或应用的影响的技术问题,本申请提供了一种任务执行方法,可以在将业务逐步由第一资源框架迁移至第二资源框架的场景下,进行任务的逐步调度,可以在业务迁移的过程中,降低任务执行异常的概率,进而降低对运行中的程序或应用的影响。
图1为本申请实施例提供的一种任务执行方法的流程示意图。本方法可以应用于智能手机、笔记本电脑、台式电脑、便携式计算机、服务器等一个或多个电子设备上。此外,本方法的执行主体可以是硬件,也可以是软件。当上述执行主体为硬件时,该执行主体可以为上述电子设备中的一个或多个。例如,单个电子设备可以执行本方法,或者,多个电子设备可以彼此配合来执行本方法。当上述执行主体为软件时,本方法可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块。在此不作具体限定。
如图1所示,该方法具体包括:
步骤101,从第一资源框架的资源池中,确定所述第一资源框架的可用资源,得到第一资源。
在本实施例中,第一资源框架,可以是任一资源框架。作为示例,第一资源框架可以是Apache Mesos。Apache Mesos是一个开源的集群管理系统。Mesos的主要目标是提供一个高度可扩展和高度可用的资源管理平台,用于管理大规模数据中心中的计算、存储和网络资源。Mesos是一个强大的集群管理工具,可用于构建和管理大规模的分布式系统和应用程序,具有高度可扩展性、高可用性和资源利用率的优势。
第一资源框架的资源池,可以是用于第一资源框架使用的资源的集合。作为示例,第一资源框架可以包括以下至少一项资源:CPU(Central Processing Unit,中央处理器)、内存、磁盘、带宽等。
第一资源框架的可用资源,可以是可供第一资源框架使用的资源。作为示例,第一资源框架的可用资源,可以是第一资源框架的资源池中未被占用的资源(相对于已用资源),也可以是第一资源框架的资源池中未被占用且除预设资源之外的资源,还可以是第一资源框架的资源池中的预设资源。
第一资源,可以是第一资源框架的资源池中,所述第一资源框架的可用资源。
步骤102,接收任务调度指令。
在本实施例中,任务调度指令,可以用于指示执行任务。作为示例,任务调度指令,可以用于指示执行数据查询、数据删除等任务。
步骤103,从所述第一资源中,确定第二资源框架的可用资源,得到第二资源。
在本实施例中,第二资源框架,可以是除第一资源框架之外的另一资源框架。作为示例,第二框架资源可以是Kubernetes。Kubernetes(K8s)是一种开源容器编排平台,用于管理和扩展容器化应用程序。它自动化了应用程序的部署、扩展和管理,提供负载均衡、自动扩展等功能,适用于大规模容器化应用程序。
第二资源框架的可用资源,可以是可供第二资源框架使用的资源。作为示例,第二资源框架的可用资源,可以是第一资源中的全部或部分资源。例如,第二资源框架的可用资源,可以是第一资源中的预设资源,也可以是第一资源中相对空闲的部分资源。
步骤104,通过所述第二资源框架调度所述第二资源,执行所述任务调度指令指示的任务。
在本实施例中,在确定第二资源之后,可以通过所述第二资源框架调度所述第二资源,来执行所述任务调度指令指示的任务。
在本实施例的一些可选的实现方式中,在所述资源池包括中央处理器CPU核集合的情况下,可以采用如下方式,从所述第一资源中,确定第二资源框架的可用资源:
第一步,将所述CPU核集合中,除独占核之外的CPU核的集合,确定为CPU核子集。
其中,独占核可以是由进程或线程独占的CPU核。
实践中,可以通过将CPU核与进程或线程绑定,将该CPU核设置为独占核。其中,核绑定是一种有效的性能优化手段,能够有效降低关键线程或进程时延,提升运行稳定性。
第二步,确定所述任务调度指令请求调度的CPU核的数量,得到目标数量。
其中,目标数量,可以是任务调度指令请求调度的CPU核的数量。
第三步,按照第二已用资源率由少到多的顺序,从所述CPU核子集中,确定所述目标数量个CPU核。
其中,所述第二已用资源率表示CPU核已用资源的资源量与CPU核的总资源量之比。
第四步,将所述目标数量个CPU核,确定为第二资源框架的可用资源。
可以理解,上述可选的实现方式中,可以通过第二资源框架调度非独占核且较为空闲的第二资源,来执行所述任务调度指令指示的任务,由此,可以进一步降低任务执行异常的概率,进而降低对运行中的程序或应用的影响。
在上述可选的实现方式中的一些应用场景下,在所述按照第二已用资源率由少到多的顺序,从所述CPU核子集中,确定所述目标数量个CPU核之后,还可以将所述CPU核集合中除所述目标数量个CPU核之外的CPU核的集合,确定为新的所述第一资源框架的资源池。
可以理解,在确定出第二资源之后,可以将所确定的第二资源排除于第一资源框架的资源池之外,由此,可以避免第一资源框架调度第二资源而导致的资源抢占问题,从而可以进一步降低任务执行异常的概率,进而降低对运行中的程序或应用的影响。
在上述应用场景中的一些情况下,在所述将所述CPU核集合中除所述目标数量个CPU核之外的CPU核的集合,确定为新的所述第一资源框架的资源池之后,还可以执行如下步骤:
步骤一,确定所述第一资源框架的已用资源率是否大于或等于预设阈值。
其中,预设阈值可以是预先确定的阈值。
作为示例,在资源池包括CPU核的情况下,预设阈值可以是60%。
步骤二,在所述已用资源率大于或等于所述预设阈值的情况下,将包括所述目标数量个CPU核的所述CPU核集合,确定为新的所述第一资源框架的资源池。
进一步地,可以将所述目标数量个CPU核确定为非第二资源,以避免第二资源框架调度该目标数量个CPU核。
可以理解,在已用资源率大于或等于所述预设阈值的情况下,可以通过重新将上述目标数量个CPU核划入第一资源框架的资源池,并且,避免第二资源框架调度该目标数量个CPU核,来恢复目标数量个CPU核的初始状态,由此,可以确保第一资源框架的稳定性,避免第二资源框架对已有资源池的影响。
此外,在资源池包括内存和/或磁盘的情况下,同样可以确定所述第一资源框架的已用资源率是否大于或等于预设阈值。在所述已用资源率大于或等于所述预设阈值的情况下,将包括已确定的第二资源中的全部或部分资源,确定为新的所述第一资源框架的资源池,并将上述全部或部分资源确定为非第二资源,以此确保第一资源框架的稳定性,避免第二资源框架对已有资源池的影响。
在上述可选的实现方式中的一些应用场景下,所述CPU核子集中的每个CPU核的第二已用资源率,采用如下方式确定:
第一步,确定该CPU核的第一资源率和第二资源率。
其中,所述第一资源率表示该CPU核在第一时间段内的平均已用资源率,所述第二资源率表示该CPU核在第二时间段内的平均已用资源率,所述第一时间段的时长(例如5分钟)大于所述第二时间段的时长(例如1分钟)。
第二步,基于所述第一资源率和所述第二资源率,确定该CPU核的第二已用资源率。
作为示例,可以将第一资源率和第二资源率,确定为该CPU核的第二已用资源率。
作为又一示例,可以将第一资源率和第二资源率的加权求和的结果,确定为该CPU核的第二已用资源率。
可以理解,上述可选的实现方式中,可以综合考虑时长较短的第二时间段的已用资源率和时长较长的第一时间段的已用资源率,来确定该CPU核的第二已用资源率,由此,可以更准确地衡量CPU核的已用资源率。
本申请实施例提供的任务执行方法,可以从第一资源框架的资源池中,确定所述第一资源框架的可用资源,得到第一资源,之后,接收任务调度指令,然后,从所述第一资源中,确定第二资源框架的可用资源,得到第二资源,随后,通过所述第二资源框架调度所述第二资源,执行所述任务调度指令指示的任务。由此,可以在将业务逐步由第一资源框架迁移至第二资源框架的场景下,进行任务的逐步调度,可以在业务迁移的过程中,降低任务执行异常的概率,进而降低对运行中的程序或应用的影响。
图2为本申请实施例提供的另一种任务执行方法的流程示意图。
如图2所示,该方法具体包括:
步骤201,从第一资源框架的资源池中,确定所述第一资源框架的可用资源,得到第一资源。
在本实施例中,步骤201与图1对应实施例中的步骤101基本一致,这里不再赘述。
步骤202,接收任务调度指令。
在本实施例中,步骤202与图1对应实施例中的步骤102基本一致,这里不再赘述。
步骤203,确定所述第一资源框架的已用资源,得到第三资源。
在本实施例中,第三资源,可以是第一资源框架的已用资源。
步骤204,确定所述第一资源框架的预留资源,得到第四资源。
在本实施例中,第四资源,可以是第一资源框架的预留资源。作为示例,第四资源可以是预先针对第一资源框架设定的资源,也可以是基于第一资源框架的负载计算的资源。
步骤205,将所述第一资源框架的资源池中,除所述第三资源和所述第四资源之外的资源,确定为所述第一资源框架的可用资源,得到第二资源。
在本实施例中,第二资源,可以是所述第一资源框架的资源池中,除所述第三资源和所述第四资源之外的资源。
步骤206,通过所述第二资源框架调度所述第二资源,执行所述任务调度指令指示的任务。
在本实施例中,步骤206与图1对应实施例中的步骤104基本一致,这里不再赘述。
在本实施例的一些可选的实现方式中,所述第四资源的资源量采用如下方式确定:将目标比值与所述资源池的资源量的乘积,确定为所述第四资源的资源量。
其中,所述目标比值为预设比值。或者,所述目标比值基于所述资源池的第一已用资源率确定,所述第一已用资源率为所述第三资源的资源量与所述资源池的资源量之比。
可以理解,采用上述可选的实现方式中所描述的方法来确定第四资源的资源量,可以动态调整第四资源的资源量,进而进一步降低任务执行异常的概率,进而降低对运行中的程序或应用的影响。
在上述可选的实现方式中的一些应用场景下,在所述目标比值基于所述资源池的第一已用资源率确定的情况下,所述目标比值与所述第一已用资源率呈正相关,或者,所述目标比值与所述第一已用资源率所属的区间的中值呈正相关。
可以理解,上述应用场景下,可以一定程度上避免资源抢占,进而进一步降低任务执行异常的概率,进而降低对运行中的程序或应用的影响。
需要说明的是,除以上所记载的内容之外,本实施例还可以包括图1对应的实施例中所描述的相应技术特征,进而实现图1所示任务执行方法的技术效果,具体请参照图1相关描述,为简洁描述,在此不作赘述。
本申请实施例提供的任务执行方法,通过为第一资源框架设置预留资源,可以确保第一资源框架更稳定地运行,进而进一步降低任务执行异常的概率,进而降低对运行中的程序或应用的影响。
下面对本申请实施例进行示例性说明,但需要注意的是,本申请实施例可以具有以下所描述的特征,但以下描述并不构成对本申请实施例保护范围的限定。
一些场景中,云平台在逐步云原生化,业务也在逐步迁移中,但是目前还是保留着一部分mesos资源池(也即上述第一资源框架的资源池,老式的资源调度和使用框架),因为种种原因,这部分资源池还是会继续保留。
实践中,可能存在如下需求:
1.mesos资源框架(也即上述第一资源框架)会一直保留。
2.Kubernetes(也即上述第二资源框架)云原生的资源使用方式持续推进中,Kubernetes具备多种资源调度方式和策略,具备资源的强隔离能力,并且支持自定义资源调度。
同时,可能面临如下问题:
1.mesos社区已经不更新了,无法升级改动。
2.mesos资源池资源利用率低,基于自身框架下的提升手段单一,只有超分最为可行的利用率提升手段,但是效果有限且侵害程序的隔离性。
3.mesos框架自身隔离性差,没有强隔离措施。
4.现有mesos资源池需要保持现状,不能影响运行中的程序或应用。
mesos资源池资源,资源分配率90%以上,但是现有平均利用率20%-40%,未使用的资源则有60%-80%。
在mesos资源池现有使用方式不变的情况下,在其之上部署kubelet agent,并通过特定的模块实时获取未使用到的资源,将这部分未使用的资源通过资源隔离的方式隔离出来,再通过k8s资源方式(也即上述第二资源框架)交付给业务使用。
具体地,可以采用如下方式来实现由mesos向Kubernetes的逐步迁移:
请参见图3A,图3A为本申请实施例提供的一种任务执行方法涉及的架构图。图3A中的宿主机也即集群节点。
下面结合图3B和图3C进行详细说明。
本方法具体包括如下过程:
1.新建k8s(Kubernetes)集群cluster-k8s-A,在现有mesos cluster-mesos-A集群节点上部署kubelet,此时mesos集群所使用的节点也同时加入了k8s集群cluster-k8s-A。
2.此时资源为两者共享,需要引入资源分配模块resource-discovery模块来计算可用资源和分配资源。
3.在每个节点部署resource-discovery-agent用于负责各节点的可用资源计算和分配可用资源。
4.可用资源计算:基于mesos节点的监控,实时获取mesos应用实例的CPU、内存、磁盘已用数据。
节点总资源也即上述第一资源框架的资源池。其中,cputotal表示总的CPU资源,也即上述第一资源框架的资源池,memtotal表示总的内存资源,disktotal表示总的磁盘资源。
节点已用资源其中,cpuused表示已用的CPU资源,memused表示已用的内存资源,diskused表示已用的磁盘资源。
节点预留资源nodereserved_resource(相当于资源的安全修正,对于不同的集群、业务、资源类型需要预留出对应的预留资源,避免现有mesos集群节点产生影响;同时也应对cpureserved,memreserved,diskreserved周期更新所产生的可用资源波动,预留出安全区间。
节点预留资源nodereserved_resource{cpureserved,memreserved,diskreserved}
其中,cpureserved表示预留的CPU资源,memreserved表示预留的内存资源,diskreserved表示预留的磁盘资源。
因此节点上真实可用资源(也即上述第一资源)nodeavailable_resource:
nodeavailable_resource{cpuavailable,memavailable,diskavailable}
其中,cpuavailable表示真实可用的CPU资源,,memavailable表示真实可用的内存资源,diskavailable表示真实可用的磁盘资源。
并有:
nodeavailable_resource
=nodetotal_resource-nodeused_resource
-nodereserved_resource
对于cpuused,memused,diskused有:
其中,i用于标识CPU核子集中的CPU核。n表示CPU核子集中的CPU核的数量,表示CPU核i已用的CPU资源,/>表示CPU核i已用的内存资源,/>表示CPU核i已用的磁盘资源。
以上数值可直接通过监控模块获取已用的资源量。
cpureserved则需要根据节点CPU实时资源利用率来计算,memreserved,diskreserved则通过固定系数确定;CPU利用率整体较低,维持在5%-20%,内存利用率一般维持在20%-40%,磁盘空间利用率维持在5%-20%;且当节点上CPU利用率达到40%-60%时应用的响应会有影响和波动,超过60%时会有明显影响,因此期望控制节点CPU利用在60%以下。
预留的CPU资源的资源量计算:
cpureserved=a×cputotal
其中,当cpuusage≥60%时,则设置当前无空余资源可用,a取值40%;
当cpuusage<60%时,a取值5%-20%,具体取值根据节点实时负载cpuusage来确定,取阶段性取值,不同阶段中取固定值或取值与利用率正相关,详细如下:当cpuusage<20%时,节点资源空余,预留资源设置到最低范围,a取固定值5%;当20%≤cpuusage≤40%,节点空余资源充裕,处于稳定范围,a取值≤10%,具体取值与利用率正相关;当40%<cpuusage<60%,节点空余资源处于紧张状态,a取值10%≤a≤20%,具体取值与利用率正相关。
预留的内存资源的资源量memreserved采用固定系数计算:
memreserved=10%×memtotal
预留的磁盘资源的资源量diskreserved采用固定系数计算:
diskreserved=10%×disktotal
最终获得各节点的可用资源(也即上述第一资源):
cpuavailable=cputotal-cpuused-cpureserved
memavailable=memetotal-memeused-memeresrrvrd
diskavailable=disktotal-diskused-diskreserved
5.为切分和隔离资源做准备,对于memavailable、diskavailable,采用cgroup进行隔离即可,cpuavailable还需要通过cpu set技术将CPU绑核隔离,所谓绑核,其实就是设定某个进程/线程与某个CPU核的亲和力(affinity)。
设定以后调度器就会让这个进程/线程只在所绑定的核上面去运行。但并不是说该进程/线程就独占这个CPU的核,其他的进程/线程还是可以在这个核上面运行的。如果想要实现某个进程/线程独占某个核,就要使用cpuset命令去实现。
在k8s kubelet配置中将CPU管理器策略设置为static;确认要被隔离出来作为独占的CPU,可用资源修正,因为想要物理隔离独占CPU,需要整数倍的CPU可用核数,需要对cpuavailable进行修正,只取整数值。
6.部署资源反馈插件,因为是混合资源调度框架,两者是互不知对方的,所以需要通过资源反馈插件,作为沟通桥梁,来告知两者哪些是可用的资源;该插件具有下面几个功能:
a.通过反向超分方式,将可用资源cpuavailable、memavailable、diskavailable以注解的方式注入到节点属性中,超分插件控制端再将cpuavailable、memavailable、diskavailable替换为节点的实际可调度k8s资源;该操作会每分钟更新一次cpuavailable、memavailable、diskavailable;
b.kubelet收到任务调度指令时,任务调度时决策哪些CPU核是独占核,并更新到kubelet和容器实例的应资源描述文件中;
(1)首先从资源监控模块获取到各个CPU核的实例利用率,对满足cpuavg_usage_5s[i]≤60%(cpu 5秒平均利用率(也即上述第一资源率)小于60%)和cpuavg_usage_1s[i]≤60%(CPU 1秒平均利用率(也即上述第二资源率)小于60%)的CPU核进行排序,获取到cpu_usagesort=U{cpuusage[i]|0≤i<n}其中,U表示排序后的利用率集合,|表示集合的元素分隔符,cpu_usage[i]表示第i个CPU核的利用率。
(2)根据任务资源请求,选取CPU核,例如一个96core的机器(cpu0、cpu1…cpu95),当接收到一个资源请求为4core的pod(也即上述任务调度指令)时,那么选取cpu_usagesort={cpuusage[5],cpuusage[88],cpuusage[2],cpuusage[59]…}排序前4最空闲的cpu核分别为5、88、2、59;将选出的cpu核告知kubelet,并记录到kubelet的cpuset资源描述文件和容器的cpuset资源描述文件中。
c.更新mesos已有容器实例,将已独占的核从资源描述文件中剔除。
对于mesos已有容器,初始情况下需要将所有容器的cpuset资源描述设置为0-95,待上一步骤处理完成资源请求后,将选出的CPU核更新到mesos已经容器的cpuset资源描述中,例如选出5、88、2、59,那么cpuset资源描述更新的结果为0-1,3-4,6-58,60-87,89-95,以此类推在cpuavailable允许范围内取整数核;
d.重置节点,清除k8s调度的任务,恢复mesos容器实例的资源描述配置。该功能属于触发式,当节点cpuusage≥60%(也即上述预设阈值)、memoryusage≥80%(也即上述预设阈值)、diskusage≥80%(也即上述预设阈值)时触发;以保障mesos已有容器的稳定性,避免k8s容器对已有资源池的影响。
其中a、b、c功能可以在任务调度中实现。
需要说明的是,除以上所记载的内容之外,本实施例还可以包括以上各实施例中所描述的技术特征,进而实现以上所示任务执行方法的技术效果,具体请参照以上描述,为简洁描述,在此不作赘述。
本申请实施例提供的任务执行方法,可以提升Mesos集群的资源利用率和增强资源隔离性。通过在现有的Mesos资源池中引入Kubernetes作为混合调度的一部分,使得Mesos和Kubernetes能够共同管理资源。这样可以在保留现有Mesos框架的同时,逐步引入Kubernetes的特性和优势,逐步改进现有的Mesos资源池,提高资源利用率、增强隔离性,并确保对现有系统的无影响,同时也是为云原生化进程提供一种平滑过渡和优化资源利用的方案。效率高,不用过多对现有框架进行二次开发。复用原有资源池,交付提供云原生的标准资源,紧跟云原生化进程,提升资源接入效率,易于离线任务接入。此外还可以降低成本,提高资源利用率,缓解现有k8s资源池不足的情况,并改进CPU可用资源的动态调整策略。
图4为本申请实施例提供的一种任务执行装置的结构示意图。具体包括:
第一确定单元401,用于从第一资源框架的资源池中,确定所述第一资源框架的可用资源,得到第一资源;
接收单元402,用于接收任务调度指令;
第二确定单元403,用于从所述第一资源中,确定第二资源框架的可用资源,得到第二资源;
执行单元404,用于通过所述第二资源框架调度所述第二资源,执行所述任务调度指令指示的任务。
在一个可能的实施方式中,所述从第一资源框架的资源池中,确定所述第一资源框架的可用资源,包括:
确定所述第一资源框架的已用资源,得到第三资源;
确定所述第一资源框架的预留资源,得到第四资源;
将所述第一资源框架的资源池中,除所述第三资源和所述第四资源之外的资源,确定为所述第一资源框架的可用资源。
在一个可能的实施方式中,所述第四资源的资源量采用如下方式确定:
将目标比值与所述资源池的资源量的乘积,确定为所述第四资源的资源量;其中:
所述目标比值为预设比值;或者,所述目标比值基于所述资源池的第一已用资源率确定,所述第一已用资源率为所述第三资源的资源量与所述资源池的资源量之比。
在一个可能的实施方式中,在所述目标比值基于所述资源池的第一已用资源率确定的情况下,所述目标比值与所述第一已用资源率呈正相关,或者,所述目标比值与所述第一已用资源率所属的区间的中值呈正相关。
在一个可能的实施方式中,在所述资源池包括中央处理器CPU核集合的情况下,所述从所述第一资源中,确定第二资源框架的可用资源,包括:
将所述CPU核集合中,除独占核之外的CPU核的集合,确定为CPU核子集;
确定所述任务调度指令请求调度的CPU核的数量,得到目标数量;
按照第二已用资源率由少到多的顺序,从所述CPU核子集中,确定所述目标数量个CPU核,其中,所述第二已用资源率表示CPU核已用资源的资源量与CPU核的总资源量之比;
将所述目标数量个CPU核,确定为第二资源框架的可用资源。
在一个可能的实施方式中,在所述按照第二已用资源率由少到多的顺序,从所述CPU核子集中,确定所述目标数量个CPU核之后,所述装置还包括:
第三确定单元(图中未示出),用于将所述CPU核集合中除所述目标数量个CPU核之外的CPU核的集合,确定为新的所述第一资源框架的资源池。
在一个可能的实施方式中,在所述将所述CPU核集合中除所述目标数量个CPU核之外的CPU核的集合,确定为新的所述第一资源框架的资源池之后,所述装置还包括:
第四确定单元(图中未示出),用于确定所述第一资源框架的已用资源率是否大于或等于预设阈值;
第五确定单元(图中未示出),用于在所述已用资源率大于或等于所述预设阈值的情况下,将包括所述目标数量个CPU核的所述CPU核集合,确定为新的所述第一资源框架的资源池。
在一个可能的实施方式中,所述CPU核子集中的每个CPU核的第二已用资源率,采用如下方式确定:
确定该CPU核的第一资源率和第二资源率,其中,所述第一资源率表示该CPU核在第一时间段内的平均已用资源率,所述第二资源率表示该CPU核在第二时间段内的平均已用资源率,所述第一时间段的时长大于所述第二时间段的时长;
基于所述第一资源率和所述第二资源率,确定该CPU核的第二已用资源率。
本实施例提供的任务执行装置可以是如图4中所示的任务执行装置,可执行以上所述的各任务执行方法的所有步骤,进而实现以上所述的各任务执行方法的技术效果,具体请参照以上相关描述,为简洁描述,在此不作赘述。
图5为本申请实施例提供的一种电子设备的结构示意图,图5所示的电子设备500包括:至少一个处理器501、存储器502、至少一个网络接口504和其他用户接口503。电子设备500中的各个组件通过总线系统505耦合在一起。可理解,总线系统505用于实现这些组件之间的连接通信。总线系统505除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统505。
其中,用户接口503可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本申请实施例中的存储器502可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本文描述的存储器502旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器502存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统5021和应用程序5022。
其中,操作系统5021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序5022,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本申请实施例方法的程序可以包含在应用程序5022中。
在本实施例中,通过调用存储器502存储的程序或指令,具体的,可以是应用程序5022中存储的程序或指令,处理器501用于执行各方法实施例所提供的方法步骤,例如包括:
从第一资源框架的资源池中,确定所述第一资源框架的可用资源,得到第一资源;
接收任务调度指令;
从所述第一资源中,确定第二资源框架的可用资源,得到第二资源;
通过所述第二资源框架调度所述第二资源,执行所述任务调度指令指示的任务。
上述本申请实施例揭示的方法可以应用于处理器501中,或者由处理器501实现。处理器501可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器501可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器502,处理器501读取存储器502中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请的上述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文上述功能的单元来实现本文上述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本实施例提供的电子设备可以是如图5中所示的电子设备,可执行以上所述的各任务执行方法的所有步骤,进而实现以上所述的各任务执行方法的技术效果,具体请参照以上相关描述,为简洁描述,在此不作赘述。
本申请实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在电子设备侧执行的任务执行方法。
上述处理器用于执行存储器中存储的任务执行程序,以实现以下在电子设备侧执行的任务执行方法的步骤:
从第一资源框架的资源池中,确定所述第一资源框架的可用资源,得到第一资源;
接收任务调度指令;
从所述第一资源中,确定第二资源框架的可用资源,得到第二资源;
通过所述第二资源框架调度所述第二资源,执行所述任务调度指令指示的任务。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
应理解的是,文中使用的术语仅出于描述特定示例实施方式的目的,而无意于进行限制。除非上下文另外明确地指出,否则如文中使用的单数形式“一”、“一个”以及“所述”也可以表示包括复数形式。术语“包括”、“包含”、“含有”以及“具有”是包含性的,并且因此指明所陈述的特征、步骤、操作、元件和/或部件的存在,但并不排除存在或者添加一个或多个其它特征、步骤、操作、元件、部件、和/或它们的组合。文中描述的方法步骤、过程、以及操作不解释为必须要求它们以所描述或说明的特定顺序执行,除非明确指出执行顺序。还应当理解,可以使用另外或者替代的步骤。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (11)
1.一种任务执行方法,其特征在于,所述方法包括:
从第一资源框架的资源池中,确定所述第一资源框架的可用资源,得到第一资源;
接收任务调度指令;
从所述第一资源中,确定第二资源框架的可用资源,得到第二资源;
通过所述第二资源框架调度所述第二资源,执行所述任务调度指令指示的任务。
2.根据权利要求1所述的方法,其特征在于,所述从第一资源框架的资源池中,确定所述第一资源框架的可用资源,包括:
确定所述第一资源框架的已用资源,得到第三资源;
确定所述第一资源框架的预留资源,得到第四资源;
将所述第一资源框架的资源池中,除所述第三资源和所述第四资源之外的资源,确定为所述第一资源框架的可用资源。
3.根据权利要求2所述的方法,其特征在于,所述第四资源的资源量采用如下方式确定:
将目标比值与所述资源池的资源量的乘积,确定为所述第四资源的资源量;其中:
所述目标比值为预设比值;或者,所述目标比值基于所述资源池的第一已用资源率确定,所述第一已用资源率为所述第三资源的资源量与所述资源池的资源量之比。
4.根据权利要求3所述的方法,其特征在于,在所述目标比值基于所述资源池的第一已用资源率确定的情况下,所述目标比值与所述第一已用资源率呈正相关,或者,所述目标比值与所述第一已用资源率所属的区间的中值呈正相关。
5.根据权利要求1所述的方法,其特征在于,在所述资源池包括中央处理器CPU核集合的情况下,所述从所述第一资源中,确定第二资源框架的可用资源,包括:
将所述CPU核集合中,除独占核之外的CPU核的集合,确定为CPU核子集;
确定所述任务调度指令请求调度的CPU核的数量,得到目标数量;
按照第二已用资源率由少到多的顺序,从所述CPU核子集中,确定所述目标数量个CPU核,其中,所述第二已用资源率表示CPU核已用资源的资源量与CPU核的总资源量之比;
将所述目标数量个CPU核,确定为第二资源框架的可用资源。
6.根据权利要求5所述的方法,其特征在于,在所述按照第二已用资源率由少到多的顺序,从所述CPU核子集中,确定所述目标数量个CPU核之后,所述方法还包括:
将所述CPU核集合中除所述目标数量个CPU核之外的CPU核的集合,确定为新的所述第一资源框架的资源池。
7.根据权利要求6所述的方法,其特征在于,在所述将所述CPU核集合中除所述目标数量个CPU核之外的CPU核的集合,确定为新的所述第一资源框架的资源池之后,所述方法还包括:
确定所述第一资源框架的已用资源率是否大于或等于预设阈值;
在所述已用资源率大于或等于所述预设阈值的情况下,将包括所述目标数量个CPU核的所述CPU核集合,确定为新的所述第一资源框架的资源池。
8.根据权利要求5-7之一所述的方法,其特征在于,所述CPU核子集中的每个CPU核的第二已用资源率,采用如下方式确定:
确定该CPU核的第一资源率和第二资源率,其中,所述第一资源率表示该CPU核在第一时间段内的平均已用资源率,所述第二资源率表示该CPU核在第二时间段内的平均已用资源率,所述第一时间段的时长大于所述第二时间段的时长;
基于所述第一资源率和所述第二资源率,确定该CPU核的第二已用资源率。
9.一种任务执行装置,其特征在于,所述装置包括:
第一确定单元,用于从第一资源框架的资源池中,确定所述第一资源框架的可用资源,得到第一资源;
接收单元,用于接收任务调度指令;
第二确定单元,用于从所述第一资源中,确定第二资源框架的可用资源,得到第二资源;
执行单元,用于通过所述第二资源框架调度所述第二资源,执行所述任务调度指令指示的任务。
10.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述权利要求1-8任一所述的方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现上述权利要求1-8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311435351.0A CN117492988A (zh) | 2023-10-31 | 2023-10-31 | 任务执行方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311435351.0A CN117492988A (zh) | 2023-10-31 | 2023-10-31 | 任务执行方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117492988A true CN117492988A (zh) | 2024-02-02 |
Family
ID=89671883
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311435351.0A Pending CN117492988A (zh) | 2023-10-31 | 2023-10-31 | 任务执行方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117492988A (zh) |
-
2023
- 2023-10-31 CN CN202311435351.0A patent/CN117492988A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199194B (zh) | 基于容器集群的资源调度方法、装置、设备和存储介质 | |
US10003500B2 (en) | Systems and methods for resource sharing between two resource allocation systems | |
CN111966500B (zh) | 资源调度方法、装置、电子设备及存储介质 | |
CN109783218B (zh) | 一种基于Kubernetes容器集群的与时间相关联的容器调度方法 | |
CN112162865B (zh) | 服务器的调度方法、装置和服务器 | |
US10686728B2 (en) | Systems and methods for allocating computing resources in distributed computing | |
CN105051690A (zh) | 使用具有客操作系统及虚拟处理器的超管理器的系统及方法 | |
CN105786603B (zh) | 一种基于分布式的高并发业务处理系统及方法 | |
CN112799817A (zh) | 一种微服务资源调度系统和方法 | |
WO2024120205A1 (zh) | 一种应用性能优化方法、装置、电子设备及存储介质 | |
US11438271B2 (en) | Method, electronic device and computer program product of load balancing | |
US20230275976A1 (en) | Data processing method and apparatus, and computer-readable storage medium | |
WO2023174037A1 (zh) | 资源调度方法、装置、系统、设备、介质和程序产品 | |
CN111767145A (zh) | 容器调度系统、方法、装置和设备 | |
CN112910937A (zh) | 容器集群中的对象调度方法、装置、服务器和容器集群 | |
CN114625533A (zh) | 分布式任务调度方法、装置、电子设备及存储介质 | |
CN116185623A (zh) | 任务分配方法、装置、电子设备及存储介质 | |
WO2020108337A1 (zh) | 一种cpu资源调度方法及电子设备 | |
CN111190719B (zh) | 优化集群资源分配的方法、装置、介质及电子设备 | |
CN116069493A (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
CN114116173A (zh) | 动态调整任务分配的方法、装置和系统 | |
US9558035B2 (en) | System and method for supporting adaptive busy wait in a computing environment | |
CN113760549A (zh) | 一种pod部署方法及装置 | |
CN116680078A (zh) | 云计算资源调度方法、装置、设备以及计算机存储介质 | |
CN117492988A (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 |