CN114741181A - 资源处理方法和存储介质 - Google Patents
资源处理方法和存储介质 Download PDFInfo
- Publication number
- CN114741181A CN114741181A CN202210072247.9A CN202210072247A CN114741181A CN 114741181 A CN114741181 A CN 114741181A CN 202210072247 A CN202210072247 A CN 202210072247A CN 114741181 A CN114741181 A CN 114741181A
- Authority
- CN
- China
- Prior art keywords
- target
- resource
- container
- function
- virtual machine
- 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
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/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/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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种资源处理方法和存储介质。其中,该方法包括:获取目标函数的目标容器,其中,目标容器用于运行目标函数;获取为目标容器已分配到的当前资源;将当前资源调整至目标容器的目标资源,其中,目标资源为基于目标函数确定;基于目标资源在目标容器中运行目标函数。本发明解决了资源的利用率低的技术问题。
Description
技术领域
本发明涉及云计算、资源处理领域,具体而言,涉及一种资源处理方法和存储介质。
背景技术
目前,在函数即服务(Function as a Service,简称为FaaS)平台向用户提供函数粒度的计算服务时,在容器的生命周期中,创建时的放置决策只考虑了固定大小的资源需求,没有考虑实际的内存使用情况,比如,容器只使用其分配内存的20%至60%,存在资源的利用率低的技术问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种资源处理方法和存储介质,以至少解决资源的利用率低的技术问题。
根据本发明实施例的一个方面,提供了一种资源处理方法,包括:获取目标函数的目标容器,其中,目标容器用于运行目标函数;获取为目标容器已分配到的当前资源;将当前资源调整至目标容器的目标资源,其中,目标资源为基于目标函数确定;基于目标资源在目标容器中运行目标函数。
可选地,将当前资源调整至目标容器的目标资源,该方法包括:响应于目标容器未完全使用当前资源,将当前资源减少至目标资源。
可选地,该方法还包括:获取目标函数在历史时段所使用的平均历史资源,其中,历史资源包括平均历史资源;基于历史时段和平均历史资源确定目标资源。
可选地,该方法还包括:获取目标函数的画像数据,其中,画像数据包括当目标函数的目标容器和其它函数的容器在虚拟机上共置时,允许分配到虚拟机上的目标容器的最大数量;基于画像数据确定分配到虚拟机上的目标容器的数量
可选地,该方法还包括:对目标容器进行监测,得到第一监测结果;响应于第一监测结果用于表示目标函数的性能下降,对目标容器进行迁移处理或隔离处理。
根据本发明实施例的另一方面,提供了一种资源处理装置,包括:第一获取单元,用于获取目标函数的目标容器,其中,目标容器用于运行目标函数;第二获取单元,获取为目标容器已分配到的当前资源;第一调整单元,将当前资源调整至目标容器的目标资源,其中,目标资源为基于目标函数确定;第一运行单元,基于目标资源在目标容器中运行目标函数。
根据本发明实施例的另一方面,从虚拟机集群侧提供了一种资源处理装置,包括:第一确定单元,用于确定虚拟机在虚拟机集群中所处的目标区域;第二确定单元,用于基于目标区域确定目标函数的目标容器,其中,目标函数的目标容器允许分配到虚拟机上,目标容器用于运行目标函数;第二调整单元,用于将为目标容器已分配到的当前资源,调整至目标容器的目标资源,其中,目标资源为基于目标函数确定;第二运行单元,用于基于目标资源在目标容器中运行目标函数。
本发明实施例还提供了一种计算机可读存储介质。该计算机可读存储介质包括存储的程序,其中,在程序被处理器运行时控制计算机可读存储介质所在设备执行本发明实施例的资源处理方法。
本发明实施例还提供了一种处理器。该处理器用于运行程序,其中,程序运行时执行本发明实施例的资源处理方法。
本发明实施例还提供了一种资源处理系统,该系统可以包括:处理器;存储器,与处理器相连接,用于为处理器提供处理以下处理步骤的指令:获取目标函数的目标容器,其中,目标容器用于运行目标函数;获取为目标容器已分配到的当前资源;将当前资源调整至目标容器的目标资源,其中,目标资源为基于目标函数在历史时段所使用的历史资源得到;基于目标资源在目标容器中运行目标函数。
在本发明实施例中,采用调整容器放置及请求路由的方式,通过获取目标函数的目标容器,其中,目标容器用于运行目标函数;获取为目标容器已分配到的当前资源;将当前资源调整至目标容器的目标资源,其中,目标资源为基于目标函数确定;基于目标资源在目标容器中运行目标函数,也就是说,在本申请中,通过将内存分配减少到函数的每个容器的真实使用的部分,这样在保障函数性能不变的前提下减少资源使用量,解决了资源的利用率低的技术问题,达到了提升资源的利用率的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本公开实施例的一种用于实现资源处理方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本公开实施例的一种资源处理方法的流程图;
图3是根据本公开实施例的一种从虚拟机集群侧提供的资源处理方法的流程图;
图4是根据本发明实施例的一种系统服务流程的示意图;
图5是根据本公开实施例的一种新的FaaS平台调度系统的整体架构的示意图;
图6是根据本公开实施例的一种资源处理装置的示意图;
图7是根据本公开实施例的一种从虚拟机集群侧提供的资源处理装置的示意图;
图8是根据本发明实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
函数即服务(FaaS)平台,是一种云计算服务的形式,用户将函数代码上传至平台,通过发送请求来触发函数执行,服务提供商则需要管理用户上传的代码,在收到请求时为用户函数创建虚拟机和分配容器;
容器(Container),是运行函数代码的载体,用于提供隔离的计算、网络和存储等资源。相同函数共享一批容器,不同函数之间通过容器隔离;
机器(Virtual Manufacturing,简称为VM),可以指虚拟机,是函数实例的载体,根据容器的资源规格,每个虚拟机上面可以创建若干容器,一个机器上的多个容器共享机器的计算、网络和存储等资源;
函数画像(Function Profile),根据函数的运行特征提取的多维度指标,例如中央处理器(Central Processing Unit,简称为CPU)、内存、网络、延时等,它可以用于刻画函数的资源需求和延时敏感程度,作为调度决策的输入;
资源利用率(Resource Utilization),函数执行的时间占机器资源总时间的比例,比例越高资源利用率越高。
实施例1
根据本发明实施例,还提供了一种资源处理的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现图像处理方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的资源处理方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的资源处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
在上述运行环境下,本公开实施例提供了一种资源处理方法。
图2是根据本发明实施例的一种资源处理方法的流程图。如图2所示,该资源处理方法可以包括以下步骤:
步骤S202,获取目标函数的目标容器,其中,目标容器用于运行目标函数。
在本发明上述步骤S202提供的技术方案中,可以在FaaS平台中,获取目标函数的目标容器,其中,FaaS平台可以向用户提供函数粒度的计算服务,用户将函数代码上传至平台,当用户需要执行函数时,平台在集群中创建容器并在其中执行用户代码,优选地,FaaS平台为公有云FaaS平台。
在该实施例中,上述目标容器可以是运行函数代码的载体,其可以提供隔离的计算、网络和存储等资源,其中,相同函数共享一批容器,不同函数之间通过容器隔离。
在该实施例中,目标函数可以是以程序代码形式上传至FaaS平台,目标函数在执行时通过发送请求来实现,服务提供商在收到请求时为用户函数创建虚拟机和分配容器。
在该实施例中,可选地,在获取目标函数的目标容器时,可以是获取目标函数的画像数据,其中,画像数据包括当目标函数的目标容器和其它函数的容器在虚拟机上共置时,允许分配到虚拟机上的目标容器的最大数量;基于画像数据确定分配到虚拟机上的目标容器的数量。
步骤S204,获取为目标容器已分配到的当前资源。
在本发明上述步骤S204提供的技术方案中,在用户将函数代码上传至平台之后,通过发送请求来触发函数执行,在收到请求时为用户函数创建虚拟机和分配容器,进而获取为该容器已分配到的当前内存。
在该实施例中,当前资源可以是为用户提供的执行函数代码所需的内存、中央处理器、输入/输出等资源,在此不做限制。
步骤S206,将当前资源调整至目标容器的目标资源,其中,目标资源为基于目标函数确定。
在本发明上述步骤S206提供的技术方案中,可以将当前资源调整至目标容器的目标资源,比如,目标资源可以是每个容器的真实使用的内存,由于大多数容器并未充分使用所分配的资源,一种直观的改进是将内存分配减少到每个容器的真实使用的内存,其中,这也构成了资源超售的最基本的想法。
举例而言,以资源为内存进行详细阐述,对于每个函数,记录其历史平均使用内存u,假设其配置的运行时间大小为c,调度器在创建容器时为其分配[pu+(1-p)c]内存,其中p是一个可调整的百分比,用于在内存中设置一些缓冲区域,运维人员可以通过调整每个函数的p值来调整资源超售的程度。
在该实施例中,可选地,响应于目标容器未完全使用当前资源,将当前资源减少至目标资源。
在该实施例中,目标资源可以是每个容器的真实使用的内存、中央处理器和输入/输出等资源,在此不做限制。
在该实施例中,目标资源可以为基于目标函数在历史时段所使用的历史资源得到,也可以是目标函数的与目标资源有一定映射关系的数值。
步骤S208,基于目标资源在目标容器中运行目标函数。
在本发明上述步骤S208提供的技术方案中,基于目标资源在目标容器中运行目标函数,比如,将内存分配减少到每个容器的真实使用的内存后,可以基于真实使用的内存在所分配到的容器中执行函数代码。
在该实施例中,可选地,对目标容器进行监测,得到第一监测结果;响应于第一监测结果用于表示目标函数的性能下降,对目标容器进行迁移处理或隔离处理,比如,当目标函数的性能出现下降时,目标函数的性能修复则主要通过容器的迁移或隔离来完成。
通过本申请上述步骤S202至步骤S208,通过获取目标函数的目标容器,其中,目标容器用于运行目标函数;获取为目标容器已分配到的当前资源;将当前资源调整至目标容器的目标资源,其中,目标资源为基于目标函数在历史时段所使用的历史资源得到;基于目标资源在目标容器中运行目标函数,也就是说,在本申请中,通过将内存分配减少到函数的每个容器的真实使用的部分,这样在保障函数性能不变的前提下减少资源使用量,解决了资源的利用率低的技术问题,达到了提升资源的利用率的技术效果。
下面对该实施例的上述方法进行进一步地介绍。
作为一种可选的实施方式,步骤S206,该方法包括:响应于目标容器未完全使用当前资源,将当前资源减少至目标资源。
在该实施例中,目标资源可以是每个容器的真实使用的内存,由于大多数容器并未充分使用所分配的资源,可以将内存分配减少到每个容器的真实使用的内存。
在该实施例中,响应于目标容器未完全使用当前资源,将当前资源减少至目标资源,比如,在检测到目标容器未完全使用当前资源时,产生用于表示该信息的信号,响应于该信号,则将当前资源减少至真实使用的资源。
作为一种可选的实施方式,在将当前资源减少至目标资源之后,该方法还包括:基于目标资源,将分配到虚拟机上的目标容器的原始数量增加至目标数量。
在该实施例中,基于目标资源,将分配到虚拟机上的目标容器的原始数量增加至目标数量,比如,资源提升主要由资源超售达到,在放置容器时减少分配给每个容器的内存,效果即为分配到每台虚拟机上的容器数量相应变多,服务相同数量容器所需的虚拟机数量减少,从而节省服务运营所需的成本。
作为一种可选的实施方式,步骤S206,该方法还包括:获取目标函数在历史时段所使用的平均历史资源,其中,历史资源包括平均历史资源;基于历史时段和平均历史资源确定目标资源。
举例而言,以资源为内存进行详细阐述,对于每个函数,记录其历史平均使用内存u,假设其配置的运行时间大小为c,调度器在创建容器时为其分配[pu+(1-p)c]内存,其中,p是一个可调整的百分比,用于在内存中设置一些缓冲区域,运维人员可以通过调整每个函数的p值来调整资源超售的程度。
在该实施例中,历史时段可以为函数配置的运行时长,平均历史资源可以是历史平均使用内存。
在该实施例中,基于历史时段和平均历史资源确定目标资源,比如,调度器在创建容器时为其分配[pu+(1-p)c]内存。
作为一种可选的实施方式,该方法还包括:获取目标函数的目标参数,其中,目标参数用于确定目标资源的超售程度;基于历史时段和平均历史资源确定目标资源,包括:基于历史时段、平均历史资源和目标参数,确定目标资源。
在该实施例中,目标参数可以是一个可调整的百分比,用于在内存中设置一些缓冲区域。
在该实施例中,基于历史时段和平均历史资源确定目标资源,包括:基于历史时段、平均历史资源和目标参数,确定目标资源,比如,调度器在创建容器时为其分配[pu+(1-p)c]内存,其中,资源超售可以提高资源利用率。
作为一种可选的实施方式,步骤S201,该方法还包括:获取目标函数的画像数据,其中,画像数据包括当目标函数的目标容器和其它函数的容器在虚拟机上共置时,允许分配到虚拟机上的目标容器的最大数量;基于画像数据确定分配到虚拟机上的目标容器的数量。
在该实施例中,资源超售可以提高资源利用率,但同时会引起函数性能下降的问题,为此我们引入针对函数的共置画像,当放置器遵循共置画像来进行放置决策时,函数的性能能够得到保障,其中,当一些请求需要创建新的容器时,放置器(Placer)可以决定如何放置它们。
在该实施例中,目标函数的画像数据可以是记录了在一台机器上,该函数和其他另一函数共置时可以放置的最大数量的数据。
在该实施例中,获取目标函数的画像数据,比如,为了获得共置画像,调度器将会尝试把不同函数的容器放置在同一台机器上,并且调整容器数量来观察性能是否受影响,观察得的最大数量则会被记录在共置画像中。
在该实施例中,基于画像数据确定分配到虚拟机上的目标容器的数量,比如,集群计划区的虚拟机上将会根据函数的共置画像进行放置容器,因此计划区的容器性能相对稳定。
作为一种可选的实施方式,获取目标函数的画像数据,该方法包括:响应于虚拟机位于第一目标区域,获取目标函数的画像数据。
在该实施例中,第一目标区域可以是集群计划区,集群计划区(Planned Zone)的虚拟机上可以根据函数的画像放置容器。
在该实施例中,响应于虚拟机位于第一目标区域,获取目标函数的画像数据,比如,检测到虚拟机位于集群计划区,产生表示该信息的信号,响应于该信号,获取每个函数的共置画像。
作为一种可选的实施方式,步骤S208,该方法还包括:对目标容器进行监测,得到第一监测结果;响应于第一监测结果用于表示目标函数的性能下降,对目标容器进行迁移处理或隔离处理。
在该实施例中,在集群混合器中的容器不会根据画像进行放置,因此容器的性能需要额外的监测及修复机制来保护。
在该实施例中,对目标容器进行监测,得到第一监测结果,举例而言,调度器(Scheduler)对于函数性能的监测主要根据其制定的性能规则进行,性能规则包括在一段时间内函数请求延迟需要达到的标准,如平均延迟或尾部延迟低于某一特定值。监测器(Monitor)将会持续地读取函数在过去一段时间内的延迟,判断相应地性能规则是否被满足。
在该实施例中,响应于第一监测结果用于表示目标函数的性能下降,对目标容器进行迁移处理或隔离处理,比如,当检测到目标函数性能出现下降时,产生用于表示该信息的信号,响应于该信号,对目标容器进行迁移处理或隔离处理。
作为一种可选的实施方式,该方法还包括:响应于目标容器所分配的虚拟机位于第二目标区域,对目标容器进行监测,得到第一监测结果。
在该实施例中,第二目标区域可以是集群混合区,集群混合区可以将任意函数的容器放置在一起,并且通过资源超售达到节省资源的目的。
在该实施例中,第一监测结果可以是目标函数的性能。
在该实施例中,响应于目标容器所分配的虚拟机位于第二目标区域,对目标容器进行监测,得到第一监测结果,比如,检测到容器位于集群混合区时,产生用于表示该信息的信号,响应于该信号,对位于集群混合区的容器进行监测,得到函数的性能结果。
作为一种可选的实施方式,对目标容器进行监测,得到第一监测结果,该方法包括:获取目标函数在目标容器中对目标请求进行响应的延迟时长;响应于延迟时长大于目标时长,确定第一监测结果用于表示目标函数的性能下降。
在该实施例中,延迟时长可以是在一段时间内函数请求的平均延迟或尾部延迟低于某一特定值。
举例而言,对于集群混合器中的容器,调度器对于函数性能的监测主要根据其制定的性能规则进行,性能规则包括在一段时间内函数请求延迟需要达到的标准,如平均延迟或尾部延迟低于某一特定值,监测器将会持续地读取函数在过去一段时间内的延迟,判断相应地性能规则是否被满足。
作为一种可选的实施方式,对目标容器进行迁移处理,该方法包括:将目标容器从原始虚拟机迁移至目标虚拟机,其中,目标虚拟机包括以下至少之一:使用率低于目标阈值的虚拟机,已分配有与目标容器相同的容器的虚拟机,位于第三目标区域的资源未超售的虚拟机。
在该实施例中,第三目标区域可以是集群控制区,集群控制区是一个非超售的环境,它将被作为性能比较的基准,同时也作为改善性能的最终方式。
举例而言,容器迁移可以遵循不同规则,例如将容器迁移至使用率最低的虚拟机,或将其迁移至有其他相同容器的虚拟机上,如果迁移无法有效缓解和修复性能问题,集群中的控制区提供了一系列资源未超售的虚拟机,将容器迁移过去后可以达到和隔离类似的效果。
作为一种可选的实施方式,在对目标容器进行迁移处理或隔离处理之后,该方法还包括:对迁移处理或隔离处理后的目标容器进行监测,得到第二监测结果;响应于第二监测结果用于表示目标函数的性能下降,确定目标函数处于异常状态。
在该实施例中,对迁移处理或隔离处理后的目标容器进行监测,得到第二监测结果,比如,如果在对目标容器进行迁移处理或隔离处理之后,依然无法解决性能下降的问题。
在该实施例中,响应于第二监测结果用于表示目标函数的性能下降,确定目标函数处于异常状态,比如,检测到在对目标容器进行迁移处理或隔离处理之后,依然无法解决性能下降的问题,产生用于表示该信息的信号,响应于该信号,说明问题来源于函数本身,比如,函数的第三方依赖出现问题。
图3是根据本发明实施例的一种从虚拟机集群侧提供的资源处理方法的流程图。如图3所示,该资源处理方法可以包括以下步骤:
步骤S302,确定虚拟机在虚拟机集群中所处的目标区域。在本发明上述步骤S302提供的技术方案中,目标区域可以包括:计划区、混合区和控制区,其中,计划区(PlannedZone)的虚拟机上可以根据函数的画像放置容器,混合区(Mixed Zone)可以将任意函数的容器放置在一起,并且通过资源超售达到节省资源的目的,控制区(Control Zone)是一个非超售的环境,它将被作为性能比较的基准,同时也作为改善性能的最终方式。
在该实施例中,可以确定虚拟机在虚拟机集群中所处的目标区域,比如,确定虚拟机在计划区、混合区和控制区之一中。
步骤S304,基于目标区域确定目标函数的目标容器,其中,目标函数的目标容器允许分配到虚拟机上,目标容器用于运行目标函数。
在本发明上述步骤S304提供的技术方案中,可以基于目标区域确定目标函数的目标容器,比如,计划区的虚拟机上可以根据函数的共置画像进行放置容器,当函数性能下降时,如果迁移无法有效缓解和修复性能问题,控制区提供了一系列资源未超售的虚拟机,将容器迁移过去后可以达到和隔离类似的效果。
在该实施例中,可选地,目标函数的目标容器允许分配到虚拟机上包括:响应于该虚拟机位于第一目标区域,获取目标函数的画像数据,其中,画像数据包括当目标函数的目标容器和其它函数的容器在虚拟机上共置时,允许分配到虚拟机上的目标容器的最大数量。
举例而言,第一目标区域可以为集群计划区,该画像记录了在一台机器上,该函数和其他另一函数共置时可以放置的最大数量。当放置器遵循共置画像来进行放置决策时,函数的性能能够得到保障。为了获得共置画像,调度器将会尝试把不同函数的容器放置在同一台机器上,并且调整容器数量来观察性能是否受影响,观察得的最大数量则会被记录在共置画像中。集群计划区的虚拟机上将会根据函数的共置画像进行放置,因此计划区的容器性能相对稳定。
步骤S306,将为目标容器已分配到的当前资源,调整至目标容器的目标资源,其中,目标资源为基于目标函数确定;
在本发明上述步骤S306提供的技术方案中,目标资源为基于目标函数确定,比如,目标资源可以为基于目标函数在历史时段所使用的历史资源得到,也可以是目标函数的与目标资源有一定映射关系的数值。
在该实施例中,可以将为目标容器已分配到的当前资源,调整至目标容器的目标资源,比如利用资源超售的方法,将目标容器已分配到的当前资源(比如内存)调整至目标容器的目标资源。
在该实施例中,可选地,将为目标容器已分配到的当前资源,调整至目标容器的目标资源包括:响应于目标容器所分配到的虚拟机位于第二目标区域,对目标容器进行监测,得到第一监测结果;响应于第一监测结果用于表示目标函数的性能下降,对目标容器进行迁移处理或隔离处理。
举例而言,第二目标区域可以为集群混合区,在集群混合区中的容器不会根据画像进行放置,因此容器的性能需要额外的监测及修复机制来保护,调度器对于函数性能的监测主要根据其制定的性能规则进行,性能规则包括在一段时间内函数请求延迟需要达到的标准,如平均延迟或尾部延迟低于某一特定值,监测器将会持续地读取函数在过去一段时间内的延迟,判断相应地性能规则是否被满足,当函数性能出现下降时,性能修复则主要通过容器的迁移或隔离来完成。
在该实施例中,可选地,将为目标容器已分配到的当前资源,调整至目标容器的目标资源还包括:将目标容器从原始虚拟机迁移至目标虚拟机,其中,目标虚拟机包括以下至少之一:使用率低于目标阈值的虚拟机,已分配有与目标容器相同的容器的虚拟机,位于第三目标区域的资源未超售的虚拟机。
举例而言,第三目标区域可以为集群控制区,容器迁移可以遵循不同规则,例如将容器迁移至使用率最低的虚拟机,或将其迁移至有其他相同容器的虚拟机上,如果迁移无法有效缓解和修复性能问题,集群中的控制区提供了一系列资源未超售的虚拟机,将容器迁移过去后可以达到和隔离类似的效果。
步骤S308,基于目标资源在目标容器中运行目标函数。
在本发明上述步骤S308提供的技术方案中,可以基于目标资源在目标容器中运行目标函数,比如,将内存分配减少到每个容器的真实使用的内存后,可以基于真实使用的内存在所分配到的容器中执行函数代码。
在本公开实施例中,资源提升主要由资源超售达到,在放置容器时减少分配给每个容器的内存,效果即为分配到每台虚拟机上的容器数量相应变多,服务相同数量容器所需的虚拟机数量减少,同时,对函数的性能进行实时的监测,对于出现问题的容器及时进行缓解或处理,因此函数的性能也不会受到资源超售的影响,能够提升集群的资源利用率,并且保护容器的性能不受影响,解决了资源的利用率低的技术问题,达到了提高资源的利用率的技术效果。
下面对该实施例的上述方法的优选实施方式进行进一步介绍。
FaaS平台向用户提供函数粒度的计算服务,用户将函数代码上传至平台,当用户需要执行函数时,平台在集群中创建容器并在其中执行用户代码。在服务过程中,平台面临两种调度决策:
1)在创建容器时,平台需要在集群的机器中选择合适的位置。若容器分布过于分散,则会导致机器利用率降低,增加平台运营成本;若分布过于集中,则会导致容器间相互干扰,影响用户函数的执行效率。
2)由于单个用户函数可能在不同机器上创建了多个容器,在执行请求时平台需要决定执行的容器位置。
图4是根据本公开实施例的一种系统服务流程的示意图,如图4所示,FaaS平台资源调度问题的挑战性来源于服务客户的高度异质性,若仅有单一函数种类,则容器放置和请求路由均可通过简单算法解决。
首先,FaaS平台的客户来源于不同产业和公司,其函数种类多种多样,这引发了调度器面临的诸多问题。首先,不同函数的资源需求不同,有些函数持续消耗大量CPU的资源,有些函数占用大量内存,有些函数使用输入/输出(Input/Output,简称为I/O)等其他资源,如何将不同函数组合在一起并充分利用每台机器上的所有资源成为了难题。研究表明,给定一系列固定资源的机器和任务,寻找放置组合的算法具有指数级的复杂度。因此FaaS平台需要一个经过优化的快速而有效的算法。
其次,平台服务的函数数量十分庞大。随着云计算及FaaS产品的快速发展和迭代,函数数量也以极快的速度增长,这对调度算法的可扩展性提出了更高的要求。当函数数量较少时,函数间的组合数量也相对较少,遍历枚举等简单方法依旧具有可行性。但随着函数数量的增加,调度器无法通过简单的搜索找到符合条件的组合。因此这对函数的流程优化提出了挑战。
最后,不同函数对于性能的要求也不同。有些客户的函数在其功能的关键路径上,函数性能的下降会使其功能整体质量下降,因此该种函数对于性能有极高的要求。而有些客户的函数属于离线处理或异步调用,函数的性能对客户功能没有决定性的影响,因此函数性能的要求相对较低。而目前调度系统中对不同函数的性能并未区分,当系统出现问题时则可能影响所有函数,对性能敏感的用户产生负面影响。综上所述,FaaS平台调度器需要通过调整容器放置及请求路由来达到资源高效使用且函数性能不受影响。
在现有技术中,FaaS平台的调度器以简单的线性搜索为核心。在容器放置问题中,每台机器有不同的可用资源数量,而新创建的容器有一定的资源需求,因此放置的必要条件为机器的可用资源大于容器需求。现有调度器根据该要求,以线性方式扫描现有机器,当寻找到满足条件的机器时则停止扫描,在机器上创建对应容器。当所有机器都不满足要求时,平台则会创建新的机器扩充集群。
在路由请求时,当前调度器的主要策略为将请求路由至最近执行过请求的容器。该策略的目的是为了使尽可能多的容器处于尽可能长的空闲状态,从而让它们能被尽早回收,提高资源利用率。在具体实现中,容器按最近被调用时间进行排序,调度器以线性扫描的方式查找空闲的容器,然后将请求发送至该容器。
现有方案主要存在两个问题,其一为资源不充分利用,其二为函数性能易受到干扰。在容器的生命周期中,创建时的放置决策只考虑了固定大小的资源需求,没有考虑实际的内存使用情况;释放前的驻留机制意味着CPU周期存在空闲。大多数情况下,容器只使用其分配内存的20%至60%;在CPU方面,40%的容器有超过10%的时间闲置,25%的沙盒有超过50%的时间。而在请求路由时,现有方案只考虑了容器的最近使用时间,没有相同机器上的其他容器,因此可能造成同一台机器上有过多容器处于执行状态,形成对资源的争抢,造成容器性能下降。
图5是根据本公开实施例的一种新的FaaS平台调度系统的整体框架的示意图,如图5所示,调度器(Scheduler)位于服务请求的关键路径上,看门狗(Watchdog)在后台运行。其工作流程可以如下:
1)当一些请求需要创建新的容器时,放置器(Placer)决定如何放置它们;
2)大多数传入的请求是由为它们选择容器的路由器(Router)来处理的,每个函数有它自己的路由器,调度器暴露了一个远程过程调用(Remote Procedure Call)接口,允许其他组件更新路由器和放置器的状态;
3)如果函数有足够多的请求数量,画像器(Profiler)就会对其资源使用及函数共置进行画像;
4)这些画像信息会被传回给调度器,更新相应的放置策略;
5)当函数延迟偏离正常值时,监测器(Monitor)将检测到这种下降;
6)它会向调度器发起RPC调用,开始性能诊断或性能修复。
虚拟机集群在逻辑上被划分为三个区域。计划区(Planned Zone)的虚拟机上会根据函数的画像放置容器,具体的放置方法会在下文中阐述。混合区(Mixed Zone)则会将任意函数的容器放置在一起,并且通过资源超售达到节省资源的目的。监测器会持续观察并修复资源超售所引起的性能下降问题。控制区(Control Zone)是一个非超售的环境,它将被作为性能比较的基准,同时也作为改善性能的最终方式。
由于大多数容器并未充分使用所分配的资源,一种直观的改进是将内存分配减少到每个容器的真实使用的部分,这也构成了资源超售的最基本的想法。具体而言,对于每个函数,我们记录其历史平均使用内存u。假设其配置的运行时间大小为c,调度器在创建容器时为其分配[pu+(1-p)c]内存,其中p是一个可调整的百分比,用于在内存中设置一些缓冲区域。运维人员可以通过调整每个函数的p值来调整资源超售的程度。
资源超售可以提高资源利用率,但同时会引起函数性能下降的问题,为此我们引入针对函数的共置画像。该画像记录了在一台机器上,该函数和其他另一函数共置时可以放置的最大数量。当放置器遵循共置画像来进行放置决策时,函数的性能能够得到保障。为了获得共置画像,调度器将会尝试把不同函数的容器放置在同一台机器上,并且调整容器数量来观察性能是否受影响,观察得的最大数量则会被记录在共置画像中。集群计划区的虚拟机上将会根据函数的共置画像进行放置,因此计划区的容器性能相对稳定。
在集群混合器中的容器不会根据画像进行放置,因此容器的性能需要额外的监测及修复机制来保护。调度器对于函数性能的监测主要根据其制定的性能规则进行。性能规则包括在一段时间内函数请求延迟需要达到的标准,如平均延迟或尾部延迟低于某一特定值。监测器将会持续地读取函数在过去一段时间内的延迟,判断相应地性能规则是否被满足。
当函数性能出现下降时,性能修复则主要通过容器的迁移或隔离来完成。容器迁移可以遵循不同规则,例如将容器迁移至使用率最低的虚拟机,或将其迁移至有其他相同容器的虚拟机上。如果迁移无法有效缓解和修复性能问题,集群中的控制区提供了一系列资源未超售的虚拟机,将容器迁移过去后可以达到和隔离类似的效果。如果隔离依然无法解决性能下降的问题,则说明问题来源于函数本身,如函数的第三方依赖出现问题,因此该问题已经超出了服务提供商所能解决的范畴。
本发明实施例通过针对公有云FaaS平台设计了一套完整的调度系统,达到了与现有系统相比可以有效提升资源利用率,降低运营成本的技术效果;通过设计一套对不同函数进行共置画像的方法,实现刻画不同函数行为的目的,达到了能有效展现函数的性能和资源分配的关系,使调度器可以达到更节约资源的容器放置的技术效果;通过针对函数性能问题进行原因推断,达到了在传统性能监测的基础上,可以有效地甄别性能原因是来源于系统内部或是函数自身原因,从而使服务提供商能有效地分类处理的技术效果;通过提供对函数的性能保障,以性能监测和性能修复机制来保证函数在不同环境下都有统一的性能表现,达到了提升服务的质量的技术效果。
在本公开实施例中,资源提升主要由资源超售达到,在放置容器时减少分配给每个容器的内存,效果即为分配到每台虚拟机上的容器数量相应变多,服务相同数量容器所需的虚拟机数量减少,同时,对函数的性能进行实时的监测,对于出现问题的容器及时进行缓解或处理,因此函数的性能也不会受到资源超售的影响,能够提升集群的资源利用率,并且保护容器的性能不受影响,解决了资源的利用率低的技术问题,达到了提高资源的利用率的技术效果。
实施例2
根据本发明实施例,还提供了一种用于实施上述图2所示的资源处理方法的资源处理装置。
图6是根据本方实施例的一种的资源处理装置的示意图。如图5所示,该图像处理装置60可以包括:第一获取单元61、第二获取单元62、第一调整单元63和第一运行单元64。
第一获取单元61,用于获取目标函数的目标容器,其中,目标容器用于运行目标函数;
第二获取单元62,用于获取为目标容器已分配到的当前资源;
第一调整单元63,用于将当前资源调整至目标容器的目标资源,其中,目标资源为基于目标函数确定;
第一运行单元64,用于基于目标资源在目标容器中运行目标函数。
此处需要说明的是,上述第一获取单元61、第二获取单元62、第一调整单元63和第一运行单元64对应于实施例1中的步骤S202至步骤S208,四个单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例1提供的计算机终端10中。
可选地,第一获取单元61包括:第一获取模块和第一确定模块,其中,第一获取模块可以包括:第一响应模块。其中,第一获取模块,用于获取目标函数的画像数据,其中,画像数据包括当目标函数的目标容器和其它函数的容器在虚拟机上共置时,允许分配到虚拟机上的目标容器的最大数量;第一确定模块,用于基于画像数据确定分配到虚拟机上的目标容器的数量;第一响应模块,用于响应于虚拟机位于第一目标区域,获取目标函数的画像数据。
可选地,第一调整单元63包括:第二响应模块,其中,第二响应模块可以包括:第二响应子单元。其中,第二响应模块,用于响应于目标容器未完全使用当前资源,将当前资源减少至目标资源;第二响应子单元,用于在将当前资源减少至目标资源之后,基于目标资源,将分配到虚拟机上的目标容器的原始数量增加至目标数量。
可选地,第一调整单元63还包括:第二获取模块和第二确定模块,其中,第二获取模块可以包括:第二获取子单元,第二确定模块可以包括:第二确定子单元。其中,第二获取模块,用于获取目标函数在历史时段所使用的平均历史资源,其中,历史资源包括平均历史资源;第二确定模块,用于基于历史时段和平均历史资源确定目标资源;第二获取子单元,用于获取目标函数的目标参数,其中,目标参数用于确定目标资源的超售程度;第二确定子单元,用于基于历史时段和平均历史资源确定目标资源,包括:基于历史时段、平均历史资源和目标参数,确定目标资源。
可选地,第一运行单元64包括:监测模块和迁移模块,其中,监测模块可以包括:第一监测子单元、第三获取子单元和第三响应子单元,迁移模块可以包括:迁移子单元、第二监测子单元和第四响应子单元。其中,监测模块,用于对目标容器进行监测,得到第一监测结果;迁移模块,用于响应于第一监测结果用于表示目标函数的性能下降,对目标容器进行迁移处理或隔离处理;第一监测子单元,用于响应于目标容器所分配到的虚拟机位于第二目标区域,对目标容器进行监测,得到第一监测结果;第三获取子单元,用于获取目标函数在目标容器中对目标请求进行响应的延迟时长;第三响应子单元,用于响应于延迟时长大于目标时长,确定第一监测结果用于表示目标函数的性能下降;迁移子单元,用于将目标容器从原始虚拟机迁移至目标虚拟机,其中,目标虚拟机包括以下至少之一:使用率低于目标阈值的虚拟机,已分配有与目标容器相同的容器的虚拟机,位于第三目标区域的资源未超售的虚拟机;第二监测子单元,用于对迁移处理或隔离处理后的目标容器进行监测,得到第二监测结果;第四响应子单元,用于响应于第二监测结果用于表示目标函数的性能下降,确定目标函数处于异常状态。在本公开上述实施例中,通过第一获取单元61,获取目标函数的目标容器,其中,目标容器用于运行目标函数;第二获取单元62,获取为目标容器已分配到的当前资源;第一调整单元63,将当前资源调整至目标容器的目标资源,其中,目标资源为基于目标函数确定;第一运行单元64,基于目标资源在目标容器中运行目标函数,也就是说,在本申请中,通过将内存分配减少到函数的每个容器的真实使用的部分,这样在保障函数性能不变的前提下减少资源使用量,解决了资源的利用率低的技术问题,达到了提升资源的利用率的技术效果。
图7是根据本方实施例的一种的资源处理装置的示意图。如图7所示,该图像处理装置70可以包括:第一确定单元71、第二确定单元72、第二调整调整单元73和第二运行单元74。
第一确定单元71,用于确定虚拟机在虚拟机集群中所处的目标区域;
第二确定单元72,用于基于目标区域确定目标函数的目标容器,其中,目标函数的目标容器允许分配到虚拟机上,目标容器用于运行目标函数;
第二调整单元73,用于将为目标容器已分配到的当前资源,调整至目标容器的目标资源,其中,目标资源为基于目标函数确定;
第二运行单元74,用于基于目标资源在目标容器中运行目标函数。
此处需要说明的是,上述第一获取单元71、第二获取单元72、第一调整单元73和第一运行单元74对应于实施例1中的步骤S302至步骤S308,四个单元与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在实施例1提供的计算机终端10中。
实施例3
本发明的实施例还提供了一种计算机可读存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的资源处理方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取目标函数的目标容器,其中,目标容器用于运行目标函数;获取为目标容器已分配到的当前资源;将当前资源调整至目标容器的目标资源,其中,目标资源为基于目标函数确定;基于目标资源在目标容器中运行目标函数。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:响应于目标容器未完全使用当前资源,将当前资源减少至目标资源。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:在将当前资源减少至目标资源之后,基于目标资源,将分配到虚拟机上的目标容器的原始数量增加至目标数量。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:获取目标函数在历史时段所使用的平均历史资源,其中,历史资源包括平均历史资源;基于历史时段和平均历史资源确定目标资源。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:获取目标函数的目标参数,其中,目标参数用于确定目标资源的超售程度;基于历史时段和平均历史资源确定目标资源,包括:基于历史时段、平均历史资源和目标参数,确定目标资源。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:获取目标函数的画像数据,其中,画像数据包括当目标函数的目标容器和其它函数的容器在虚拟机上共置时,允许分配到虚拟机上的目标容器的最大数量;基于画像数据确定分配到虚拟机上的目标容器的数量。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:响应于虚拟机位于第一目标区域,获取目标函数的画像数据。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:对目标容器进行监测,得到第一监测结果;响应于第一监测结果用于表示目标函数的性能下降,对目标容器进行迁移处理或隔离处理。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:响应于目标容器所分配到的虚拟机位于第二目标区域,对目标容器进行监测,得到第一监测结果。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:获取目标函数在目标容器中对目标请求进行响应的延迟时长;响应于延迟时长大于目标时长,确定第一监测结果用于表示目标函数的性能下降。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:将目标容器从原始虚拟机迁移至目标虚拟机,其中,目标虚拟机包括以下至少之一:使用率低于目标阈值的虚拟机,已分配有与目标容器相同的容器的虚拟机,位于第三目标区域的资源未超售的虚拟机。
可选地,计算机可读存储介质还被设置为存储用于执行以下步骤的程序代码:在对目标容器进行迁移处理或隔离处理之后,对迁移处理或隔离处理后的目标容器进行监测,得到第二监测结果;响应于第二监测结果用于表示目标函数的性能下降,确定目标函数处于异常状态。
作为一种可选的实施方式,存储介质还可以被设置为存储用于执行以下步骤的程序代码:确定虚拟机在虚拟机集群中所处的目标区域;基于目标区域确定目标函数的目标容器,其中,目标函数的目标容器允许分配到虚拟机上,目标容器用于运行目标函数;将为目标容器已分配到的当前资源,调整至目标容器的目标资源,其中,目标资源为基于目标函数确定;基于目标资源在目标容器中运行目标函数。
本发明的实施例还提供了一种资源处理系统,该资源处理系统可以包括计算机终端,计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行本公开实施例的资源处理方法中以下步骤的程序代码:获取目标函数的目标容器,其中,目标容器用于运行目标函数;获取为目标容器已分配到的当前资源;将当前资源调整至目标容器的目标资源,其中,目标资源为确定;基于目标资源在目标容器中运行目标函数。
可选地,图8是根据本发明实施例的一种计算机终端的结构框图。如图8所示,该计算机终端A可以包括:一个或多个(图中仅示出一个):处理器802、存储器804、以及传输装置806。
其中,存储器可用于存储软件程序以及模块,如本发明实施例中的资源处理方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及资源处理,即实现上述的资源处理方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取目标函数的目标容器,其中,目标容器用于运行目标函数;获取为目标容器已分配到的当前资源;将当前资源调整至目标容器的目标资源,其中,目标资源为基于目标函数确定;基于目标资源在目标容器中运行目标函数。
可选地,上述处理器还可以执行如下步骤的程序代码:响应于目标容器未完全使用当前资源,将当前资源减少至目标资源。
可选地,上述处理器还可以执行如下步骤的程序代码:在将当前资源减少至目标资源之后,基于目标资源,将分配到虚拟机上的目标容器的原始数量增加至目标数量。
可选地,上述处理器还可以执行如下步骤的程序代码:获取目标函数在历史时段所使用的平均历史资源,其中,历史资源包括平均历史资源;基于历史时段和平均历史资源确定目标资源。
可选地,上述处理器还可以执行如下步骤的程序代码:获取目标函数的目标参数,其中,目标参数用于确定目标资源的超售程度;基于历史时段和平均历史资源确定目标资源,包括:基于历史时段、平均历史资源和目标参数,确定目标资源。
可选地,上述处理器还可以执行如下步骤的程序代码:获取目标函数的画像数据,其中,画像数据包括当目标函数的目标容器和其它函数的容器在虚拟机上共置时,允许分配到虚拟机上的目标容器的最大数量;基于画像数据确定分配到虚拟机上的目标容器的数量。
可选地,上述处理器还可以执行如下步骤的程序代码:响应于虚拟机位于第一目标区域,获取目标函数的画像数据。
可选地,上述处理器还可以执行如下步骤的程序代码:对目标容器进行监测,得到第一监测结果;响应于第一监测结果用于表示目标函数的性能下降,对目标容器进行迁移处理或隔离处理。
可选地,上述处理器还可以执行如下步骤的程序代码:响应于目标容器所分配到的虚拟机位于第二目标区域,对目标容器进行监测,得到第一监测结果。
可选地,上述处理器还可以执行如下步骤的程序代码:获取目标函数在目标容器中对目标请求进行响应的延迟时长;响应于延迟时长大于目标时长,确定第一监测结果用于表示目标函数的性能下降。
可选地,上述处理器还可以执行如下步骤的程序代码:将目标容器从原始虚拟机迁移至目标虚拟机,其中,目标虚拟机包括以下至少之一:使用率低于目标阈值的虚拟机,已分配有与目标容器相同的容器的虚拟机,位于第三目标区域的资源未超售的虚拟机。
可选地,上述处理器还可以执行如下步骤的程序代码:在对目标容器进行迁移处理或隔离处理之后,对迁移处理或隔离处理后的目标容器进行监测,得到第二监测结果;响应于第二监测结果用于表示目标函数的性能下降,确定目标函数处于异常状态。
作为一种可选的实施方式,处理器还可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:确定虚拟机在虚拟机集群中所处的目标区域;基于目标区域确定目标函数的目标容器,其中,目标函数的目标容器允许分配到虚拟机上,目标容器用于运行目标函数;将为目标容器已分配到的当前资源,调整至目标容器的目标资源,其中,目标资源为基于目标函数确定;基于目标资源在目标容器中运行目标函数。
采用本发明实施例,提供了一种资源处理的方案。通过获取目标函数的目标容器,其中,目标容器用于运行目标函数;获取为目标容器已分配到的当前资源;将当前资源调整至目标容器的目标资源,其中,目标资源为基于目标函数确定;基于目标资源在目标容器中运行目标函数,也就是说,在本申请中,通过将内存分配减少到函数的每个容器的真实使用的部分,这样在保障函数性能不变的前提下减少资源使用量,解决了资源的利用率低的技术问题,达到了提升资源的利用率的技术效果。
本领域普通技术人员可以理解,图8所示的结构仅为示意,计算机终端A也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图8其并不对上述计算机终端A的结构造成限定。例如,计算机终端A还可包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种资源处理方法,其特征在于,包括:
获取目标函数的目标容器,其中,所述目标容器用于运行所述目标函数;
获取为所述目标容器已分配到的当前资源;
将所述当前资源调整至所述目标容器的目标资源,其中,所述目标资源为基于所述目标函数确定;
基于所述目标资源在所述目标容器中运行所述目标函数。
2.根据权利要求1所述的方法,其特征在于,将所述当前资源调整至所述目标容器的目标资源,包括:
响应于所述目标容器未完全使用所述当前资源,将所述当前资源减少至所述目标资源。
3.根据权利要求2所述的方法,其特征在于,在将所述当前资源减少至所述目标资源之后,所述方法还包括:
基于所述目标资源,将分配到虚拟机上的所述目标容器的原始数量增加至目标数量。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述目标函数在历史时段所使用的平均历史资源,其中,所述历史资源包括所述平均历史资源;
基于所述历史时段和所述平均历史资源确定所述目标资源。
5.根据权利要求4所述的方法,其特征在于,
所述方法还包括:获取所述目标函数的目标参数,其中,所述目标参数用于确定所述目标资源的超售程度;
基于所述历史时段和所述平均历史资源确定所述目标资源,包括:基于所述历史时段、所述平均历史资源和所述目标参数,确定所述目标资源。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述目标函数的画像数据,其中,所述画像数据包括当所述目标函数的所述目标容器和其它函数的容器在虚拟机上共置时,允许分配到所述虚拟机上的所述目标容器的最大数量;
基于所述画像数据确定分配到所述虚拟机上的所述目标容器的数量。
7.根据权利要求6所述的方法,其特征在于,获取所述目标函数的画像数据,包括:
响应于所述虚拟机位于第一目标区域,获取所述目标函数的画像数据。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述目标容器进行监测,得到第一监测结果;
响应于所述第一监测结果用于表示所述目标函数的性能下降,对所述目标容器进行迁移处理或隔离处理。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
响应于所述目标容器所分配到的虚拟机位于第二目标区域,对所述目标容器进行监测,得到所述第一监测结果。
10.根据权利要求8所述的方法,其特征在于,对所述目标容器进行监测,得到第一监测结果,包括:
获取所述目标函数在所述目标容器中对目标请求进行响应的延迟时长;
响应于所述延迟时长大于目标时长,确定所述第一监测结果用于表示所述目标函数的性能下降。
11.根据权利要求8所述的方法,其特征在于,对所述目标容器进行迁移处理,包括:
将所述目标容器从原始虚拟机迁移至目标虚拟机,其中,所述目标虚拟机包括以下至少之一:使用率低于目标阈值的虚拟机,已分配有与所述目标容器相同的容器的虚拟机,位于第三目标区域的资源未超售的虚拟机。
12.根据权利要求8所述的方法,其特征在于,在对所述目标容器进行迁移处理或隔离处理之后,所述方法还包括:
对迁移处理或隔离处理后的所述目标容器进行监测,得到第二监测结果;
响应于所述第二监测结果用于表示所述目标函数的性能下降,确定所述目标函数处于异常状态。
13.一种资源处理方法,其特征在于,包括:
确定虚拟机在虚拟机集群中所处的目标区域;
基于所述目标区域确定目标函数的目标容器,其中,所述目标函数的目标容器允许分配到所述虚拟机上,所述目标容器用于运行所述目标函数;
将为所述目标容器已分配到的当前资源,调整至所述目标容器的目标资源,其中,所述目标资源为基于所述目标函数确定;
基于所述目标资源在所述目标容器中运行所述目标函数。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序被处理器运行时控制所述计算机可读存储介质所在设备执行权利要求1至13中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/072183 WO2023138513A1 (zh) | 2022-01-18 | 2023-01-13 | 资源处理方法和存储介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022100561299 | 2022-01-18 | ||
CN202210056129 | 2022-01-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114741181A true CN114741181A (zh) | 2022-07-12 |
Family
ID=82275413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210072247.9A Pending CN114741181A (zh) | 2022-01-18 | 2022-01-21 | 资源处理方法和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114741181A (zh) |
WO (1) | WO2023138513A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023138513A1 (zh) * | 2022-01-18 | 2023-07-27 | 阿里巴巴(中国)有限公司 | 资源处理方法和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10700991B2 (en) * | 2017-11-27 | 2020-06-30 | Nutanix, Inc. | Multi-cluster resource management |
CN112130984A (zh) * | 2019-06-25 | 2020-12-25 | 中国电信股份有限公司 | 资源处理方法、装置以及计算机可读存储介质 |
CN113434253B (zh) * | 2021-06-29 | 2023-08-25 | 平安科技(深圳)有限公司 | 集群资源调度方法、装置、设备及存储介质 |
CN114741181A (zh) * | 2022-01-18 | 2022-07-12 | 阿里巴巴(中国)有限公司 | 资源处理方法和存储介质 |
-
2022
- 2022-01-21 CN CN202210072247.9A patent/CN114741181A/zh active Pending
-
2023
- 2023-01-13 WO PCT/CN2023/072183 patent/WO2023138513A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023138513A1 (zh) * | 2022-01-18 | 2023-07-27 | 阿里巴巴(中国)有限公司 | 资源处理方法和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023138513A1 (zh) | 2023-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11416307B2 (en) | System and method for processing task resources | |
CN109375872B (zh) | 数据访问请求的处理方法、装置和设备及存储介质 | |
JP7304887B2 (ja) | 仮想マシンスケジューリング方法および装置 | |
US20190230004A1 (en) | Network slice management method and management unit | |
US20190324819A1 (en) | Distributed-system task assignment method and apparatus | |
CN102567072B (zh) | 一种资源分配方法、装置及系统 | |
US9442763B2 (en) | Resource allocation method and resource management platform | |
US8347297B2 (en) | System and method of determining an optimal distribution of source servers in target servers | |
US20140237069A1 (en) | Assigning pre-existing processes to select sets of non-uniform memory access (numa) aligned resources | |
WO2018200172A1 (en) | Cluster resource management in distributed computing systems | |
US20220156115A1 (en) | Resource Allocation Method And Resource Borrowing Method | |
CN110308980A (zh) | 数据的批量处理方法、装置、设备及存储介质 | |
CN110221920B (zh) | 部署方法、装置、存储介质及系统 | |
CN109522090B (zh) | 资源调度方法及装置 | |
CN111858054A (zh) | 一种异构环境下基于边缘计算的资源调度系统及方法 | |
Adhikary et al. | Quality of service aware cloud resource provisioning for social multimedia services and applications | |
EP3698246A1 (en) | Management of a virtual network function | |
CN115033352A (zh) | 多核处理器任务调度方法、装置及设备、存储介质 | |
CN103713852A (zh) | 一种信息处理方法、服务平台及电子设备 | |
CN114741181A (zh) | 资源处理方法和存储介质 | |
US20230136189A1 (en) | Gateway Prioritization | |
US20230367654A1 (en) | Automatic node fungibility between compute and infrastructure nodes in edge zones | |
WO2022062981A1 (zh) | 资源调度方法和系统、电子设备及计算机可读存储介质 | |
Jain et al. | Critical analysis of load balancing strategies for cloud environment | |
CN114490015A (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 |