CN112650575B - 资源调度方法、装置和云端服务系统 - Google Patents

资源调度方法、装置和云端服务系统 Download PDF

Info

Publication number
CN112650575B
CN112650575B CN202110055044.4A CN202110055044A CN112650575B CN 112650575 B CN112650575 B CN 112650575B CN 202110055044 A CN202110055044 A CN 202110055044A CN 112650575 B CN112650575 B CN 112650575B
Authority
CN
China
Prior art keywords
service
data
resource
allocated
preset
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
Application number
CN202110055044.4A
Other languages
English (en)
Other versions
CN112650575A (zh
Inventor
刘桐仁
张安站
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202110055044.4A priority Critical patent/CN112650575B/zh
Publication of CN112650575A publication Critical patent/CN112650575A/zh
Application granted granted Critical
Publication of CN112650575B publication Critical patent/CN112650575B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5055Allocation 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 software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Mathematical Physics (AREA)
  • Telephonic Communication Services (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开公开了一种资源调度方法、装置和云端服务系统,涉及云计算和智能搜索技术领域。具体实现方案为:在所述云端服务系统中来自数据生产方的服务数据被送入对应服务的数据队列中,以便为所述服务分配的资源实例从所述数据队列中读取服务数据并进行相应处理;资源调度装置监测所述数据队列的堆积状况;依据所述数据队列的堆积状况调整为所述服务分配的资源实例。通过本公开能够合理地利用资源,减少资源浪费。

Description

资源调度方法、装置和云端服务系统
技术领域
本公开涉及计算机应用技术领域,尤其涉及云计算和智能搜索技术领域。
背景技术
如今硬件的处理能力发展迅速,服务器的处理能力也得到了迅速提升。为了提高服务器的资源利用率,逐渐将多个服务部署到同一台机器上,这就产生了云端服务架构。对于服务提供商而言,不需要去购买各种机器,而直接在云上运用各种资源来部署服务。
目前搜索、推荐等服务成为用户内容消费的主流方式,例如图文内容、小视频、短视频、长视频、音频等媒体内容等,都需要大量复杂的策略计算从而实现以策略计算为驱动的内容分发。由于多数服务的流量不会一成不变,会有相应的波动。为了保证服务的正常提供通常按照流量的高峰吞吐量来部署资源实例,这必然会造成很大的资源浪费。
发明内容
本公开提供了一种资源调度方法、装置、云端服务系统、电子设备、计算机可读存储介质和计算机程序产品,以减少资源浪费。
根据本公开的第一方面,提供了一种资源调度方法,应用于云端服务系统,在所述云端服务系统中来自数据生产方的服务数据被送入对应服务的数据队列中,以便为所述服务分配的资源实例从所述数据队列中读取服务数据并进行相应处理;所述方法包括:
监测所述数据队列的堆积状况;
依据所述数据队列的堆积状况调整为所述服务分配的资源实例。
根据本公开的第二方面,提供了一种资源调度装置,应用于云端服务系统,在所述云端服务系统中来自数据生产方的服务数据被送入对应服务的数据队列中,以便为所述服务分配的资源实例从所述数据队列中读取服务数据并进行相应处理;所述装置包括:
监测单元,用于监测所述数据队列的堆积状况;
调度单元,用于依据所述数据队列的堆积状况调整为所述服务分配的资源实例。
根据本公开的第三方面,提供了一种云端服务系统,包括:
至少一个数据队列,用于缓存来自数据生产方的服务数据;
为所述服务分配的资源实例,用于从所述数据队列中读取服务数据并进行相应处理;以及,
如上所述的资源调度装置。
根据本公开的第四方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。
根据本公开的第五方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如上所述的方法。
根据本公开的第六方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方法。
由以上技术方案可以看出,本公开中在输入阶段引入数据队列,资源实例从数据队列中获取服务数据并进行处理,依据数据队列的实际堆积情况调整为对应服务分配的资源实例,从而合理地利用资源,减少资源浪费。
应当理解,本部分分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开实施例提供的云端服务系统的示意图;
图2是本公开实施例提供的方法流程图;
图3为本公开实施例提供的资源调度装置的结构示意图;
图4是用来实现本公开实施例的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
鉴于目前云端服务系统中为了保证服务的正常提供,通常按照流量的高峰吞吐量来部署资源实例。但由于常态下流量通常比高峰吞吐量小很多,甚至很多时候的流量为零。这就必然造成了资源的极大浪费。
有鉴于此,本公开在云端服务系统的数据输入阶段引入数据队列,如图1中所示。对于来自数据生产方的服务数据先进入对应的数据队列,对应数据消费方从数据队列中读取服务数据并进行相应处理。其中,数据消费方是提供服务的相应进程,即运行的应用服务(APP)。应用服务会包含至少一个算子来实现相应处理,各算子由为该服务分配的资源实例执行。也就是说,实际上是由为该服务分配的资源实例从数据队列中读取服务数据并进行相应处理。基于上述系统架构,如图2中所示,资源调度装置可以执行:
在201中,监测数据队列的堆积状况。
在202中,依据数据队列的堆积状况调整为对应服务分配的资源实例。
也就是说,依据数据队列的实际堆积情况调整为对应服务分配的资源实例,从而合理地利用资源,减少资源浪费。
在上述云端服务系统中,服务数据所来自的数据生产方可以是内容服务器。例如,来自小视频内容的服务器、音频内容的服务器、图片内容的服务器等等。对应的数据消费方可以是基于内容的服务策略的实现方,通常体现为服务提供者布设于云端实现的应用服务。例如,在实现基于内容的搜索服务,基于内容的推荐服务等。
作为其中一种应用场景,下面以基于小视频的内容推荐为例。在这种应用场景下,图1中所示的数据生产方为提供小视频数据的内容服务器。对于小视频这种类型的服务数据而言,可以对应至少一个数据队列。在图1中,以一个服务对应一个数据队列为例。数据消费方就是提供内容推荐的应用服务。该应用服务由为其分配的资源实例执行。在执行内容推荐处理的过程中,可能需要执行多个算子的处理,通过多个算子共同完成内容推荐策略的计算。对于每一个算子而言,可以分别为其分配至少一个资源实例。
资源实例则可以理解为从计算资源中虚拟出来的一块独立计算单元。由于本公开应用于云端服务系统,因此其中的资源实例指的是云容器实例(Cloud ContainerInstance,CCI)。云容器是将云端的计算资源划分为能够独立运行一个或一组应用及其所必需的运行环境的资源组。容器既可以承载于物理机,也可以承载于虚拟机,也可以运行于公有云主机上。容器技术能够让多个独立、归属于不同用户空间的应用服务运行在同一台宿主机上。
下面结合实施例对上述步骤201即“监测数据队列的堆积状况”进行详细描述。
在本公开中数据队列的作用一方面可以保证系统中的数据吞吐,另一方面可以通过监测数据队列的堆积状态推断出数据消费方的处理能力是否充足,从而调整为该服务分配的资源实例。
数据队列可以采用基于时间顺序存储的高性能数据队列。作为一种优选的实施方式,数据队列可以采用kafka队列,也可以采用其他类型的数据队列。kafka队列是一个分布式、高吞吐量、高扩展性的消息队列系统。
如图1中所示,资源调度装置可以对几个状态进行监测:
状态1是各数据队列最新放入的服务数据状态。以kafka队列为例,在数据队列中会记录放入该数据队列的数据状态标识(logSize),该状态标识类似于对数据的编号,用以体现写入数据队列的数据数量。
状态2是为服务分配的资源实例最新处理完的服务数据状态。例如对于数据消费方处理完的服务数据的logSize,资源调度装置对其进行记录。
作为一种优选的实现方式,上述状态1和状态2之间的差异值体现了尚未处理和正在处理的服务数据量,也就是体现了数据队列目前整体的堆积状况即数据队列广义的堆积状况。
状态3是各数据队列被数据消费方最新读取的服务数据状态。在kafka队列中以偏移位置(Offset)体现。
作为一种可实现的方式,上述状态1和状态3之间的差异值体现了尚未处理的服务数据量,可以认为是数据队列狭义的堆积状况。
状态2和状态3之间的差异值体现了正在处理的服务数据量,在后续实施例中可以用以对资源实例的性能瓶颈进行分析,具体参见后续实施例中的记载。
下面结合实施例对上述步骤202即“依据数据队列的堆积状况调整为对应服务分配的资源实例”进行详细描述。
对于资源实例的调整可以主要分为两种:扩容和缩容。所谓扩容就是增加为对应服务分配的资源实例,所谓缩容就是减少为对应服务分配的资源实例。下面分别详细说明这两种调整。
若数据队列的堆积状况大于或等于预设扩容阈值的持续时长达到预设第一时长,则增加为对应服务分配的资源实例。也就是说,若数据队列持续发生堆积,而不是短时间涨下去又很快下来的情况,就触发资源实例扩容。
若数据队列的堆积状况小于或等于预设缩容阈值的持续时长达到预设第二时长,则减少为对应服务分配的资源实例。也就是说,若数据队列持续空闲,而不是短时间降下去又很快上来的情况,就触发资源实例缩容。上述扩容阈值大于缩容阈值。
其中,由于资源实例的扩容和缩容从触发、分配到启动完成需要一定的“反应时间”,在此可以预设最小连续触发时长。限制调整为对应服务分配的资源时间的间隔时长大于或等于该最小连续触发时长。也就是说,需要保证对于同一服务而言两次调整资源实例的时间间隔不小于最小连续触发时长。其中最小连续触发时长可以根据服务实际从触发调整到真正调整完毕的时间来确定,可以采用经验值或实验值。
对于资源实例的扩容而言,可以存在两种情况:一种情况是普通的扩容,另一种情况是极限情况。
其中普通的扩容指的是每次按照预设的步长或比例增加为对应服务分配的资源实例,直至达到最大资源实例数。例如,每次扩容都增加预设数量的资源实例,或者每次扩容增加固定比例的资源实例。在此可以限制为服务分配的资源实例数量,即最大资源实例数。其中可以针对所有服务设置相同的最大资源实例数量,也可以按照服务的不同等级设置不同的最大资源实例数量。
其中极限情况指的是当服务数据突然过来特别多,远远超过扩容阈值的时候,可以一次到位,不必逐步扩容。从而保证突发的流量能够有足够的处理能力。即若数据队列的堆积状况大于或等于预设突发阈值,则将为服务分配的资源实例增加至预设的最大资源实例数。其中突发阈值大于扩容阈值。
对于资源实例的缩容而言,也可以存在两种情况:一种情况是普通的缩容,另一种情况是极限情况。
其中普通的缩容指的是每次按照预设的步长或比例减少为对应服务分配的资源实例,直至达到预设的最小资源实例数。例如,每次缩容都减少预设数量的资源实例,或者每次缩容减少固定比例的资源实例。在此可以限制为服务分配的资源实例数量,即最小资源实例数。其中可以针对所有服务设置相同的最下资源实例数量,也可以按照服务的不同等级设置不同的最小资源实例数量。
其中极限情况指的是长时间没有流量的时候,进行资源回收,即将为对应服务分配的资源实例数量降为0。若数据队列的堆积状况指示无待处理服务数据的持续时长达到预设第三时长,则将为对应服务分配的资源实例数减少为0。其中第三时长大于或等于第二时长。例如,记录的放入数据队列的服务数据logSize长时间没有变化,且数据消费方处理完的服务数据logSize与放入数据队列的服务数据logSize的差异值为0,则将对应服务分配的资源实例数量降为0。
需要说明的是,即便数据队列中没有数据要处理,但上述状态2和状态3之间的差异值表明仍存在服务数据正在被该服务的数据消费方处理,那么就不能够将为该服务分配的资源实例全部回收,而至少应该为其保留最小资源实例数来处理完数据。
更进一步地,当资源回收即将为对应服务分配的资源实例数量降为0时,记录回收之前数据队列的状态,包括记录资源实例最后读取到的数据队列的Offset。一旦监测到有新的流量即服务数据进入数据队列,则为该服务分配资源实例。其中监测是否有新的流量进入数据队列可以通过监测最新写入数据队列的服务数据状态标识logSize是否发生变化来确定,如果发生变化则说明有新的流量进入数据队列。
由于已经记录了回收之前数据队列的状态即Offset,资源实例启动时需要保证紧跟上次消费位置接续读取和处理,因此为相应服务分配的资源实例启动后依据记录的上述Offset读取服务数据,从而完成冷启动。由于诸如kafka等数据队列对数据的记录具有时效性,例如每两天定时删除每个分区(partition)中最早的片段(Segment)。因此如果上次记录的Offset已被删除,则冷启动的资源实例从数据队列的起始位置(earliset)开始读取并处理。
资源实例在启动过程中可能存在一些异常情况导致长时间无法正常启动,为了避免这种情况影响服务进度,可以在监测到资源实例超过预设异常启动时长仍未启动完成,则将该资源实例的处理任务迁移至其他资源实例。例如可以重新分配其他资源实例给该服务,对启动异常的这些资源实例进行回收。
其中上述异常启动时长的设置如果过长,可能导致异常资源实例启动时间过长影响服务进度。如果设置得过短,则会造成正常的资源实例也频繁被迁移。因此,可以进一步确定本次扩容的资源实例(即新增加的资源实例)中超过异常启动时长仍未启动完成的资源实例比例,并将该比例进行输出。用户可以依据该比例确定异常启动时长设置得是否合理。一般情况下异常启动的资源实例比例不会超过10%。例如如果多次超过20%,则说明异常启动时长设置的过短,需要对其进行调整。
另外,若数据队列的堆积状况大于或等于预设扩容阈值的持续时长达到第一预设时长,上面已经描述了需要将对应服务的资源实例进行扩容。但在一些异常情况下,可能是由数据消费方的某些特定处理节点异常造成的服务性能瓶颈。因此,可以监测为对应服务分配的各资源实例的数据堆积状况,依据各资源实例的数据堆积状况确定热门算子,然后针对热门算子进行扩容即增加资源实例,从而有针对性的缓解服务性能瓶颈。
其中,在确定各资源实例的数据堆积状况时,可以通过获取各资源实例的缓存状况来确定。具体地,可以理解为各资源实例也存在“数据队列”,这些“数据队列”通常体现为各资源实例的缓存中(图1中未示出资源实例之间的数据队列),各资源实例将接收到的数据放入缓存中,处理完后发送给下一个资源实例。因此资源实例的缓存中的数据量则体现了资源实例的数据堆积状况。
作为其中一种优选的实现方式,在依据各资源实例的数据堆积状况确定热门算子时,可以进一步结合算子之间的拓扑关系。可以理解地,在实现一个完成的服务策略时,是需要多个算子之间按照一定的逻辑顺序和相互关联实现的,这些逻辑顺序和相互关联就是算子之间的拓扑关系。而算子是由对应的资源实例执行的,因此也就相当于资源实例之间也存在拓扑关系。依据资源实例的拓扑关系,采用诸如深度优先遍历的方法来回溯存在数据堆积的资源实例,进而确定热门算子。所谓热门算子就是需要大量计算资源的算子,数据堆积因热门算子的资源不足产生。
如图1中所示的,资源调度装置负责为多种服务进行资源调度。图中以两种服务为例,即数据生产方1的服务数据送入数据队列1,由数据消费方1从数据队列1中读取服务数据并基于相应策略进行处理。资源的角度装置为数据消费方1中的各算子调整分配的资源实例。数据生产方2的服务数据送入数据队列2,由数据消费方2从数据队列2中读取服务数据并基于相应策略进行处理。资源的角度装置为数据消费方2中的各算子调整分配的资源实例。需要说明的是,一个服务可以对应于多个数据队列,在图1中仅以对应1个数据队列为例。资源调度装置还可以为其他数据消费方调整分配的资源实例,在图1中仅以两个数据消费方为例。
由于云端的资源是有限的,可以为各服务设置最大资源实例数。各服务的最大资源实例数可以相同,也可以不同。作为一种优选的实施方式,最大资源可以依据服务等级进行设置。其中服务等级可以依据服务类型确定(例如不同服务类型对于时效性的要求不同,可以据此确定服务等级),也可以依据服务提供商的签约确定(例如依据付费等级确定服务等级)。
作为其中一种实现方式,在剩余资源不充足的情况下,例如,剩余资源小于或等于预设资源数量阈值,则可以优选增加为高优先级服务分配的资源实例,即优先为高服务等级的服务扩容。在具体实现时,可以设置多个资源数量阈值,在剩余资源小于或等于不同的资源数量阈值时,优先保证不同服务等级的服务扩容。例如设置两个资源数量阈值:第一资源数量阈值和第二资源数量阈值,其中第一资源数量阈值小于第二资源数量阈值。若剩余资源小于或等于第二资源数量阈值,则保证高服务等级和中服务等级的服务扩容。若剩余资源小于或等于第一资源数量阈值,则仅保证高服务等级的服务扩容。若剩余资源大于第二资源数量阈值,则可以保证高、中、低服务等级的服务扩容。
在本公开中,资源实例在从数据队列读取服务数据进行处理的过程中,如果确定服务数据异常,例如缺少处理所必须的数据,则可以直接丢弃并跳过该服务数据,以保证服务的正常进行。并可以进一步向数据生产方反馈信息。
另外,在本公开中,为了提高系统的可靠性,可以对资源调度装置设置主备架构,即设置主资源调度装置和至少一个备用资源调度装置。当主资源调度装置发生异常时,由备用资源的角度装置接替主资源调度装置执行上述资源调度。
以上是对本公开所提供方法进行的详细描述,下面结合实施例对本公开提供的装置进行详细描述。
图3为本公开实施例提供的资源调度装置的结构示意图,该资源调度装置应用于如图1中所示的云端服务系统。如图3中所示,该装置300可以包括:监测单元310和调度单元320。其中各组成单元的主要功能包括:
监测单元310,用于监测数据队列的堆积状况。
调度单元320,用于依据数据队列的堆积状况调整为服务分配的资源实例。
作为一种可选的实施方式,监测单元310可以具体包括:状态获取子单元311和堆积监测子单元312。
状态获取子单元311,用于监测数据队列最新放入的服务数据状态和为服务分配的资源实例最新处理完的服务数据状态。
堆积监测子单元312,用于依据数据队列最新放入的服务数据状态和为服务分配的资源实例最新处理完的服务数据状态之间的差异值,确定数据队列的堆积状况。
作为一种可选的实施方式,调度单元320可以具体包括:分析子单元321、扩容子单元322和缩容子单元323,还可以进一步包括记录子单元324、冷启动子单元325和迁移子单元326。
分析子单元321,用于分析数据队列的堆积状况。
扩容子单元322,用于若分析子单元321分析出数据队列的堆积状况大于或等于预设扩容阈值的持续时长达到预设第一时长,则增加为服务分配的资源实例。
缩容子单元323,用于若分析子单元321分析出数据队列的堆积状况小于或等于预设缩容阈值的持续时长达到预设第二时长,则减少为服务分配的资源实例。
作为一种优选的实施方式,扩容子单元322,具体用于若数据队列的堆积状况大于或等于预设突发阈值,突发阈值大于扩容阈值,则将为服务分配的资源实例增加至预设的最大资源实例数;否则,按照预设的步长或比例增加为服务分配的资源实例直至达到最大资源实例数。
作为一种优选的实施方式,缩容子单元323,具体用于若数据队列的堆积状况指示无待处理服务数据的持续时长达到预设第三时长,第三时长大于或等于第二时长,则将为服务分配的资源实例数减少为0;否则,按照预设的步长或比例减少为服务分配的资源实例直至达到预设的最小资源实例数,最小资源实例数为正整数。
作为一种优选的实施方式,调度单元320调整为服务分配的资源实例的间隔时长大于或等于预设最小连续触发时长。
作为一种优选的实施方式,记录子单元324,用于在缩容子单元323将为服务分配的资源实例数减少为0之后,记录资源实例最后读取到的数据队列偏移位置。
分析子单元321,还用于分析最新写入数据队列的服务数据状态标识是否发生变化。
冷启动子单元325,用于若最新写入数据队列的服务数据状态标识发生变化,则为服务分配资源实例,以便资源实例启动后依据记录的偏移位置读取服务数据。
资源实例在启动过程中可能存在一些异常情况导致长时间无法正常启动。为了避免这种情况影响服务进度,作为一种优选的实施方式,迁移子单元326,用于若监测到资源实例超过预设异常启动时长仍未启动完成,则将该资源实例的处理任务迁移至其他资源实例。
为了更加有针对性地进行扩容处理,作为一种优选的实施方式,监测单元310,还用于监测为服务分配的各资源实例的数据堆积状况。
扩容子单元322,还用于若数据队列的堆积状况大于或等于预设扩容阈值的持续时长达到预设第一时长,则依据各资源实例的数据堆积状况确定热门算子,针对热门算子增加资源实例。
由于云端的资源是有限的,因此,为了保证高优先级的服务正常,作为一种优选的实施方式,扩容子单元322,还用于若剩余资源少于或等于预设资源数量阈值,则优先增加为高优先级服务分配的资源实例。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
如图4所示,是根据本公开实施例的资源调度方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图4所示,设备400包括计算单元401,其可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执行各种适当的动作和处理。在RAM 403中,还可存储设备400操作所需的各种程序和数据。计算单元401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理,例如资源调度方法。例如,在一些实施例中,资源调度方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。
在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元409而被载入和/或安装到设备400上。当计算机程序加载到RAM 403并由计算单元401执行时,可以执行上文描述的资源调度方法的一个或多个步骤。备选地,在其他实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行资源调度方法。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控30制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (22)

1.一种资源调度方法,应用于云端服务系统,在所述云端服务系统中来自数据生产方的服务数据被送入对应服务的数据队列中,以便为所述服务分配的资源实例从所述数据队列中读取服务数据并进行相应处理;所述方法包括:
监测所述数据队列的堆积状况;
依据所述数据队列的堆积状况调整为所述服务分配的资源实例,包括:若所述数据队列的堆积状况小于或等于预设缩容阈值的持续时长达到预设第二时长,则减少为所述服务分配的资源实例;其中,
所述减少为所述服务分配的资源实例包括:
若所述数据队列的堆积状况指示无待处理服务数据的持续时长达到预设第三时长,所述第三时长大于或等于所述第二时长,则将为所述服务分配的资源实例数减少为0,记录资源实例最后读取到的数据队列偏移位置,若监测到最新写入所述数据队列的服务数据状态标识发生变化,则为所述服务分配资源实例,以便资源实例启动后依据记录的所述偏移位置读取服务数据。
2.根据权利要求1所述的方法,其中,监测所述数据队列的堆积状况包括:
监测所述数据队列最新放入的服务数据状态和为所述服务分配的资源实例最新处理完的服务数据状态;
依据所述数据队列最新放入的服务数据状态和为所述服务分配的资源实例最新处理完的服务数据状态之间的差异值,确定所述数据队列的堆积状况。
3.根据权利要求1所述的方法,其中,依据所述数据队列的堆积状况调整为所述服务分配的资源实例还包括:
若所述数据队列的堆积状况大于或等于预设扩容阈值的持续时长达到预设第一时长,则增加为所述服务分配的资源实例。
4.根据权利要求3所述的方法,其中,所述增加为所述服务分配的资源实例包括:
若所述数据队列的堆积状况大于或等于预设突发阈值,所述突发阈值大于所述扩容阈值,则将为所述服务分配的资源实例增加至预设的最大资源实例数;
否则,按照预设的步长或比例增加为所述服务分配的资源实例直至达到所述最大资源实例数。
5.根据权利要求3所述的方法,其中,所述减少为所述服务分配的资源实例还包括:
否则,按照预设的步长或比例减少为所述服务分配的资源实例直至达到预设的最小资源实例数,所述最小资源实例数为正整数。
6.根据权利要求1、3、4或5所述的方法,其中,调整为所述服务分配的资源实例的间隔时长大于或等于预设最小连续触发时长。
7.根据权利要求1、3或4所述的方法,还包括:
若监测到资源实例超过预设异常启动时长仍未启动完成,则将该资源实例的处理任务迁移至其他资源实例。
8.根据权利要求3所述的方法,若所述数据队列的堆积状况大于或等于预设扩容阈值的持续时长达到预设第一时长,该方法还包括:监测为所述服务分配的各资源实例的数据堆积状况,依据所述各资源实例的数据堆积状况确定热门算子;
所述增加为所述服务分配的资源实例包括:针对所述热门算子增加资源实例。
9.根据权利要求3所述的方法,还包括:
若剩余资源少于或等于预设资源数量阈值,则优先增加为高优先级服务分配的资源实例。
10.根据权利要求1-5或9中任一项所述的方法,其中,所述服务数据包括多媒体内容数据;
所述处理包括基于搜索策略的计算或者基于推荐策略的计算。
11.一种资源调度装置,应用于云端服务系统,在所述云端服务系统中来自数据生产方的服务数据被送入对应服务的数据队列中,以便为所述服务分配的资源实例从所述数据队列中读取服务数据并进行相应处理;所述装置包括:
监测单元,用于监测所述数据队列的堆积状况;
调度单元,用于依据所述数据队列的堆积状况调整为所述服务分配的资源实例;其中,
所述调度单元包括:
分析子单元,用于分析所述数据队列的堆积状况;
缩容子单元,用于若所述分析子单元分析出所述数据队列的堆积状况小于或等于预设缩容阈值的持续时长达到预设第二时长,则减少为所述服务分配的资源实例;其中,
所述缩容子单元,具体用于
若所述数据队列的堆积状况指示无待处理服务数据的持续时长达到预设第三时长,所述第三时长大于或等于所述第二时长,则将为所述服务分配的资源实例数减少为0;其中,
所述分析子单元,还用于分析最新写入所述数据队列的服务数据状态标识是否发生变化;
所述调度单元还包括:
记录子单元,用于在所述缩容子单元将为所述服务分配的资源实例数减少为0之后,记录资源实例最后读取到的数据队列偏移位置;
冷启动子单元,用于若最新写入所述数据队列的服务数据状态标识发生变化,则为所述服务分配资源实例,以便资源实例启动后依据记录的所述偏移位置读取服务数据。
12.根据权利要求11所述的装置,其中,所述监测单元包括:
状态获取子单元,用于监测所述数据队列最新放入的服务数据状态和为所述服务分配的资源实例最新处理完的服务数据状态;
堆积监测子单元,用于依据所述数据队列最新放入的服务数据状态和为所述服务分配的资源实例最新处理完的服务数据状态之间的差异值,确定所述数据队列的堆积状况。
13.根据权利要求11所述的装置,其中,所述调度单元包括:
扩容子单元,用于若所述分析子单元分析出所述数据队列的堆积状况大于或等于预设扩容阈值的持续时长达到预设第一时长,则增加为所述服务分配的资源实例。
14. 根据权利要求13所述的装置,其中,所述扩容子单元,具体用于若所述数据队列的堆积状况大于或等于预设突发阈值,所述突发阈值大于所述扩容阈值,则将为所述服务分配的资源实例增加至预设的最大资源实例数;否则,按照预设的步长或比例增加为所述服务分配的资源实例直至达到所述最大资源实例数。
15.根据权利要求13所述的装置,其中,所述缩容子单元,还用于
否则,按照预设的步长或比例减少为所述服务分配的资源实例直至达到预设的最小资源实例数,所述最小资源实例数为正整数。
16.根据权利要求11、13、14或15所述的装置,其中,所述调度单元调整为所述服务分配的资源实例的间隔时长大于或等于预设最小连续触发时长。
17.根据权利要求11、13或14所述的装置,其中,所述调度单元还包括:
迁移子单元,用于若监测到资源实例超过预设异常启动时长仍未启动完成,则将该资源实例的处理任务迁移至其他资源实例。
18.根据权利要求13所述的装置,其中,所述监测单元,还用于监测为所述服务分配的各资源实例的数据堆积状况;
所述扩容子单元,还用于若所述数据队列的堆积状况大于或等于预设扩容阈值的持续时长达到预设第一时长,则依据所述各资源实例的数据堆积状况确定热门算子,针对所述热门算子增加资源实例。
19.根据权利要求13所述的装置,其中,所述扩容子单元,还用于若剩余资源少于或等于预设资源数量阈值,则优先增加为高优先级服务分配的资源实例。
20.一种云端服务系统,包括:
至少一个数据队列,用于缓存来自数据生产方的服务数据;
为所述服务分配的资源实例,用于从所述数据队列中读取服务数据并进行相应处理;以及,
如权利要求11至19中任一项所述的资源调度装置。
21. 一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-10中任一项所述的方法。
22.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-10中任一项所述的方法。
CN202110055044.4A 2021-01-15 2021-01-15 资源调度方法、装置和云端服务系统 Active CN112650575B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110055044.4A CN112650575B (zh) 2021-01-15 2021-01-15 资源调度方法、装置和云端服务系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110055044.4A CN112650575B (zh) 2021-01-15 2021-01-15 资源调度方法、装置和云端服务系统

Publications (2)

Publication Number Publication Date
CN112650575A CN112650575A (zh) 2021-04-13
CN112650575B true CN112650575B (zh) 2023-08-18

Family

ID=75368359

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110055044.4A Active CN112650575B (zh) 2021-01-15 2021-01-15 资源调度方法、装置和云端服务系统

Country Status (1)

Country Link
CN (1) CN112650575B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113342542B (zh) * 2021-05-12 2024-03-22 北京百度网讯科技有限公司 业务处理方法、装置、设备和计算机存储介质
CN113407347B (zh) * 2021-06-30 2023-02-24 北京百度网讯科技有限公司 资源调度方法、装置、设备和计算机存储介质
CN116149867A (zh) * 2023-04-12 2023-05-23 阿里巴巴(中国)有限公司 资源调度方法及设备
CN116560859B (zh) * 2023-07-11 2023-09-22 恒辉信达技术有限公司 一种基于云计算的访问设备资源分配方法及相关装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681241B1 (en) * 1999-08-12 2004-01-20 International Business Machines Corporation Resource contention monitoring employing time-ordered entries in a blocking queue and waiting queue
CN106227605A (zh) * 2016-07-26 2016-12-14 北京北森云计算股份有限公司 一种多语言云编译的动态微服务扩容方法及装置
CN106452818A (zh) * 2015-08-13 2017-02-22 阿里巴巴集团控股有限公司 一种资源调度的方法和系统
US10091297B1 (en) * 2016-05-18 2018-10-02 EMC IP Holding Company LLC Data processing and data movement in cloud computing environment
CN109240825A (zh) * 2018-08-14 2019-01-18 阿里巴巴集团控股有限公司 弹性任务调度方法、装置、设备及计算机可读存储介质
CN109947532A (zh) * 2019-03-01 2019-06-28 中山大学 一种教育云平台中的大数据任务调度方法
CN111694646A (zh) * 2020-05-29 2020-09-22 北京百度网讯科技有限公司 资源调度方法、装置、电子设备及计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3610374A1 (en) * 2017-04-13 2020-02-19 Telefonaktiebolaget LM Ericsson (PUBL) Method and resource manager for scheduling of instances in a data centre

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681241B1 (en) * 1999-08-12 2004-01-20 International Business Machines Corporation Resource contention monitoring employing time-ordered entries in a blocking queue and waiting queue
CN106452818A (zh) * 2015-08-13 2017-02-22 阿里巴巴集团控股有限公司 一种资源调度的方法和系统
US10091297B1 (en) * 2016-05-18 2018-10-02 EMC IP Holding Company LLC Data processing and data movement in cloud computing environment
CN106227605A (zh) * 2016-07-26 2016-12-14 北京北森云计算股份有限公司 一种多语言云编译的动态微服务扩容方法及装置
CN109240825A (zh) * 2018-08-14 2019-01-18 阿里巴巴集团控股有限公司 弹性任务调度方法、装置、设备及计算机可读存储介质
CN109947532A (zh) * 2019-03-01 2019-06-28 中山大学 一种教育云平台中的大数据任务调度方法
CN111694646A (zh) * 2020-05-29 2020-09-22 北京百度网讯科技有限公司 资源调度方法、装置、电子设备及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Chenhao Qu, Rodrigo N. Calheiros, Rajkumar Buyya.Auto-scaling Web Applications in Clouds: A Taxonomy and Survey.https://arxiv.org/abs/1609.09224.2017,1-35. *

Also Published As

Publication number Publication date
CN112650575A (zh) 2021-04-13

Similar Documents

Publication Publication Date Title
CN112650575B (zh) 资源调度方法、装置和云端服务系统
CN113381944B (zh) 系统限流方法、装置、电子设备、介质和程序产品
US20160378570A1 (en) Techniques for Offloading Computational Tasks between Nodes
CN112559182B (zh) 资源分配方法、装置、设备及存储介质
US20180027061A1 (en) Method and apparatus for elastically scaling virtual machine cluster
CN106230997B (zh) 一种资源调度方法和装置
CN109032805A (zh) 一种弹性扩缩容方法、装置、服务器及存储介质
CN109766172B (zh) 一种异步任务调度方法以及装置
CN109412841A (zh) 虚拟机资源的调整方法、装置和云平台
US20160154676A1 (en) Method of Resource Allocation in a Server System
CN112579304A (zh) 基于分布式平台的资源调度方法、装置、设备及介质
CN106569917B (zh) 一种数据备份方法及移动移动终端
CN114448989B (zh) 调整消息分发的方法、装置、电子设备、存储介质及产品
CN111857992B (zh) 一种Radosgw模块中线程资源分配方法和装置
CN109522100B (zh) 实时计算任务调整方法和装置
CN105592134B (zh) 一种负载分担的方法和装置
CN113238861A (zh) 一种任务执行方法和装置
CN110471769B (zh) 一种虚拟机的资源管理方法及装置
CN113014608A (zh) 一种流量分发控制方法、装置、电子设备及存储介质
CN112887407B (zh) 用于分布式集群的作业流量控制方法和装置
CN113760522A (zh) 一种任务处理方法和装置
CN112817687A (zh) 一种数据同步方法和装置
CN113568706B (zh) 针对业务的容器调整方法、装置、电子设备和存储介质
CN114936106A (zh) 一种主机故障的处理方法、装置及介质
JP2022166934A (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