CN113535346A - 线程数量调整的方法、装置、设备及计算机存储介质 - Google Patents

线程数量调整的方法、装置、设备及计算机存储介质 Download PDF

Info

Publication number
CN113535346A
CN113535346A CN202010316813.7A CN202010316813A CN113535346A CN 113535346 A CN113535346 A CN 113535346A CN 202010316813 A CN202010316813 A CN 202010316813A CN 113535346 A CN113535346 A CN 113535346A
Authority
CN
China
Prior art keywords
tasks
mapping
state
concurrency
task
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.)
Granted
Application number
CN202010316813.7A
Other languages
English (en)
Other versions
CN113535346B (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.)
China Mobile Communications Group Co Ltd
China Mobile Information Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Information 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 China Mobile Communications Group Co Ltd, China Mobile Information Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202010316813.7A priority Critical patent/CN113535346B/zh
Publication of CN113535346A publication Critical patent/CN113535346A/zh
Application granted granted Critical
Publication of CN113535346B publication Critical patent/CN113535346B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例提供了一种线程数量调整的方法、装置、设备及计算机存储介质,该方法包括:获取多个第一任务与执行多个第一任务所需资源;根据多个第一任务和执行多个第一任务所需资源得到第一映射信息;根据第一映射信息和预设决策模型确定第一信息;确定满足预设阈值的第一信息对应的备选调整动作为目标调整动作;根据目标调整动作对第一映射关系的数量进行调整。本发明能够灵活调整执行任务的线程数量,提高任务的执行效率。

Description

线程数量调整的方法、装置、设备及计算机存储介质
技术领域
本发明涉及业务支撑技术领域,尤其涉及一种线程数量调整的方法、装置、设备及计算机存储介质。
背景技术
传统的执行任务的过程中,系统通过创建线程来执行任务和分配资源,各个线程并行执行不同的任务,而执行任务的线程数量(或并发量)通常都是由人工根据经验配置,并且在整个任务执行过程中,线程数量都是固定的。在一个工作中的系统内,任务与资源一直都是需求与被需求的关系,每个任务的执行都需要占用一定的资源。
在实际情况下,系统所需的所有资源中供应量最少且需求量最大的资源(或瓶颈资源)是随着时间变化的,而现有技术中采用固定的线程数量执行任务,无法对上述瓶颈资源的时变性进行灵活应对。例如,在系统面临大量任务时,正常情况下所有线程都应在执行任务,部分任务因线程数量少而处于等待中,若此时瓶颈资源不足,则部分线程很可能因分配不到瓶颈资源一直处于就绪态,无法执行任务,这样一来,部分任务等待释放线程,而部分线程等待释放瓶颈资源,导致该系统的任务执行效率下降。
发明内容
本发明实施例提供了一种线程数量调整的方法、装置、设备及计算机存储介质,能够灵活调整执行任务的线程数量,提高任务的执行效率。
第一方面,提供了一种线程数量调整的方法,该方法包括:获取多个第一任务与执行多个第一任务所需资源;根据多个第一任务与执行多个第一任务所需资源得到第一映射信息,第一映射信息包括第一并发量,第一并发量为当前多个第一任务与执行多个第一任务所需资源的第一映射关系的数量;根据第一映射信息和预设决策模型确定第一信息,第一信息是对第一映射关系的数量进行至少一个备选调整动作后的信息,其中,预设决策模型是根据预设时间内运行的多个第二任务的第二并发量和吞吐率的时间序列得到的,第二并发量为多个第二任务与执行多个第二任务所需资源的第二映射关系的数量,每个第二任务包括多个第二子任务,吞吐率为多个第二子任务的单位时间内的完成量;确定满足预设阈值的第一信息对应的备选调整动作为目标调整动作;根据目标调整动作对第一映射关系的数量进行调整。
在第一方面的一些可实现方式中,备选调整动作包括增加并发量、保持并发量和减少并发量。
在第一方面的一些可实现方式中,每个第一任务包括多个第一子任务,多个第一任务并行执行,第一任务中的多个第一子任务串行执行。
在第一方面的一些可实现方式中,第一映射信息还包括第一映射关系的映射态,映射态表征第一任务中第一子任务的执行状态;根据目标调整动作对第一映射关系的数量进行调整,包括:根据目标调整动作和第一映射关系的映射态对第一映射关系的数量进行调整。
在第一方面的一些可实现方式中,映射态包括初始态、执行态、完成态和失败态;初始态为第一任务中多个第一子任务未执行时的第一映射关系的状态;执行态为第一任务中多个第一子任务正在执行时的第一映射关系的状态;完成态为第一任务中没有可以执行的第一子任务时的第一映射关系的状态;失败态为第一任务中多个第一子任务正在执行时的第一映射关系的状态。
在第一方面的一些可实现方式中,根据目标调整动作和第一映射关系的映射态对第一映射关系的数量进行调整,包括:当目标调整动作为增加并发量时,创建处于初始态的第一映射关系;当目标调整动作为保持并发量时,保持第一映射信息中第一映射关系的数量;当目标调整动作为减少并发量时,删除处于完成态和失败态的第一映射关系。
在第一方面的一些可实现方式中,在根据第一映射信息和预设决策模型确定第一信息之前,还包括:获取预设时间内运行的多个第二任务与执行多个第二任务所需资源的第二映射信息;根据第二映射信息得到多个第二任务的第二并发量和吞吐率的时间序列;根据时间序列确定预设决策模型。
第二方面,提供了一种线程数量调整的装置,该装置包括:获取模块,用于获取多个第一任务与执行多个第一任务所需资源;映射模块,用于根据多个第一任务与执行多个第一任务所需资源得到第一映射信息,第一映射信息包括第一并发量,第一并发量为当前多个第一任务与执行多个第一任务所需资源的第一映射关系的数量;确定模块,用于根据第一映射信息和预设决策模型确定第一信息,第一信息是对第一映射关系的数量进行至少一个备选调整动作后的信息,其中,预设决策模型是根据预设时间内运行的多个第二任务的第二并发量和吞吐率的时间序列得到的,第二并发量为多个第二任务与执行多个第二任务所需资源的第二映射关系的数量,每个第二任务包括多个第二子任务,吞吐率为多个第二子任务的单位时间内的完成量;确定模块,还用于确定满足预设阈值的第一信息对应的备选调整动作为目标调整动作;调整模块,用于根据目标调整动作对第一映射关系的数量进行调整。
在第二方面的一些可实现方式中,备选调整动作包括增加并发量、保持并发量和减少并发量。
在第二方面的一些可实现方式中,每个第一任务包括多个第一子任务,多个第一任务并行执行,第一任务中的多个第一子任务串行执行。
在第二方面的一些可实现方式中,第一映射信息还包括第一映射关系的映射态,映射态表征第一任务中第一子任务的执行状态;调整模块具体用于:根据目标调整动作和第一映射关系的映射态对第一映射关系的数量进行调整。
在第二方面的一些可实现方式中,映射态包括初始态、执行态、完成态和失败态;初始态为第一任务中多个第一子任务未执行时的第一映射关系的状态;执行态为第一任务中多个第一子任务正在执行时的第一映射关系的状态;完成态为第一任务中没有可以执行的第一子任务时的第一映射关系的状态;失败态为第一任务中多个第一子任务正在执行时的第一映射关系的状态。
在第二方面的一些可实现方式中,调整模块具体用于:当目标调整动作为增加并发量时,创建处于初始态的第一映射关系;当目标调整动作为保持并发量时,保持第一映射信息中第一映射关系的数量;当目标调整动作为减少并发量时,删除处于完成态和失败态的第一映射关系。
在第二方面的一些可实现方式中,确定模块还用于:获取预设时间内运行的多个第二任务与执行多个第二任务所需资源的第二映射信息;根据第二映射信息得到多个第二任务的第二并发量和吞吐率的时间序列;根据时间序列确定预设决策模型。
第三方面,提供了一种线程数量调整的设备,该设备包括:处理器,以及存储有计算机程序指令的存储器;处理器读取并执行计算机程序指令时实现第一方面或第一方面的一些可实现方式中的线程数量调整的方法。
第四方面,提供了一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现第一方面或第一方面的一些可实现方式中的线程数量调整的方法。
本发明实施例的线程数量调整的方法、装置、设备及计算机存储介质,通过预设决策模型确定多个备选调整动作对应的第一信息,将满足预设阈值的第一信息确定为目标调整动作,能够根据目标调整动作对当前执行的线程数量进行灵活调整,解决了现有技术中固定线程数量带来的任务执行效率低的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种线程数量调整的方法的流程示意图;
图2是本发明实施例提供的一种任务粒度划分的示意图;
图3是本发明实施例提供的一种预设决策模型的示意图;
图4是本发明实施例提供的一种线程数量调整的装置的结构示意图;
图5是本发明实施例提供的另一种线程数量调整的装置的结构示意图;
图6是本发明实施例提供的一种线程数量调整的设备的结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本发明主要应用于利用有限资源执行大量任务的场景。
现有技术中,数据的处理过程主要包括:系统首先接收上游产生的大量数据;然后根据业务需求创建大量的、复杂的计算任务;接着由调度逻辑利用有限计算资源完成各任务的执行;最后将计算结果返回上游或其它指定系统。
计算任务有着不同大小的粒度,如作业级任务、普通级任务、操作级任务等。任务之间可能相互独立,也可能相互依赖。相互独立的任务可以并行执行,相互依赖的任务必须串行执行,即一个任务所依赖的所有前提任务必须先执行,然后该任务才可被执行。每个任务的执行都需要占用一定量的计算资源,其中一部分是有效资源,另一部分是因调度或竞争而引起的损耗资源。
计算资源有着不同的类别,如CPU、网卡速率、网络设备带宽、数据库事务空间等。同时,跟计算任务类似,计算资源也有着不同大小的粒度,如时间片级、线程级、进程级、容器级、物理机级等。各类别、各粒度的资源由虚拟化技术管理,并以动态申请释放的方式共同使用。而对于某个特定的进程来说,受随时间不断变化的剩余共享资源量的影响,该进程所能申请的资源上限也是时变的。除此之外,当该进程以资源组(如CPU、带宽)的方式申请资源时,类似木桶原理,若资源组中某个资源(如带宽)不足,则此次资源组申请失败并结束运行,或继续等待直至资源充足。不足的资源为该进程的瓶颈资源。瓶颈资源是也是时变的,其数量、种类随时变化。
系统在执行任务的过程中,任务与资源是需求与被需求的关系,工作中的任务与工作中的资源成对出现,系统以建立任务与资源的映射对的方式(如创建线程,并指定任务入口)来执行任务和分配资源。在已有可申请资源和一批任务的前提下,系统完成所有任务的时长取决吞吐率(单位时间的任务完成量),系统完成所有任务的资源利用率取决于吞吐率和任务的并发量。因此,系统在对任务进行调度时的调度目标,可以是以最短的时间(保持以最大任务吞吐率)执行完所有任务,也可以是以最大资源利用率完成所有任务等。
在现有技术中,系统在执行任务的过程中通常采用固定线程数量,且线程数量不可改变。但在实际情况下,一方面,当前系统的瓶颈资源随时间变化,其可申请的各类资源量也跟着动态变化,进而影响到系统允许的最大吞吐率;另一方面,因不同时刻并发执行的多个任务的类别不同,其所需要的资源量也不同,所产生的任务吞吐率也会不同。而现有技术中的固定线程数量并不能应对这种瓶颈资源的时变性,也不能应对任务组所需资源的时变性。
当任务量较少时,线程数量固定,部分线程虽然未执行任务但仍占用一定资源,从而造成了一定量的资源浪费。
当任务量较多时,线程数量固定,所有线程都有任务在执行,部分任务处于等待中,但由于瓶颈资源时变,在瓶颈资源不足的情况下,部分线程中的任务其实只是处于就绪态,因资源不足并未真正执行,导致任务执行的效率低下。
当任务量较多时,线程数量固定,所有线程都有任务在执行,部分任务处于等待中,在瓶颈资源充足的情况下,系统在为每个线程分配了所需资源后,仍有资源剩余,而这些剩余资源却不能分配给等待中的任务,导致瓶颈资源得不到有效利用,导致任务执行的效率低下。
为了解决现有技术中固定线程数量导致任务执行的效率低下的问题,本发明实施例提供了一种线程数量调整的方法、装置、设备及计算机存储介质。下面结合附图对本发明实施例的技术方案进行描述。
在执行任务的系统中,可分为资源单元、调度单元和任务单元三个单元,其中,调度单元通过任务口与任务单元进行协调,通过资源口与资源单元进行协调。
图1是本发明实施例提供的一种线程数量调整的方法的流程示意图,如图1所示,该方法的执行主体可以是执行任务的系统,该线程数量调整的方法可以包括以下步骤:
S101,获取多个第一任务与执行多个第一任务所需资源。
具体地,调度单元通过任务口向任务单元获取第一任务。
其中,任务单元为调度单元提供相互独立的第一任务,并允许调度单元随时中断和恢复第一任务的执行。
在一个实施例中,任务单元根据任务的不同细化程度将任务划分成多个粒度级别的任务,包括:业务级任务、单个业务级任务、普通级任务、操作级任务、时间片级任务、指令级任务等。任务单元定义多个粒度级别的任务及任务间的关系,控制各粒度级别任务的执行时机。
在一个实施例中,调度单元获取到的多个第一任务可以为普通级任务,多个普通级任务之间相互独立,或者普通级任务所依赖的前提任务都已执行完毕,因此,多个第一任务为并行执行。
在一个实施例中,每个第一任务可以包括多个第一子任务,第一子任务为操作级任务,第一任务中的多个第一子任务为串行执行。
不同粒度级别的任务用于表示不同粒度的业务需求,所有业务的需求用业务级任务表示,单个业务线的需求用单个业务级任务表示,单个业务级任务中包含至少一个普通级任务,单个业务线需求中的详细需求细节用普通级任务表示,一个普通级任务中包含至少一个操作级任务,同属一个普通级任务的多个操作级任务必须串行执行。
图2是本发明实施例提供的一种任务粒度划分的示意图,如图2所示,业务1、业务2、业务3是所有业务中的单个业务级任务,业务1中包括4个普通级任务,业务2包括两个普通级任务,业务3包括1个普通级任务,各需求细节间的逻辑先后依赖关系用普通级任务间的关系箭头表示。
单个业务级任务之间(一般来说)相互独立,其内的普通级任务可以相互独立,也可以依赖其它普通级任务,有前提依赖的普通级任务必须在前提任务执行完毕后再执行。
在一个实施例中,一个业务需要统计上游系统的一批文件的单词数,并将结果交给下游系统,为实现这个业务而创建的任务为业务级任务,该业务级任务包括三类普通级任务:从远程文件服务器下载数据文件到本地系统;然后分别读取每个文件并统计单词数,并将各文件单词数求和;最后将结果发送至下游系统。虽然这三类普通任务有先后依赖关系,但以第一类普通级任务为例,不同数据文件的下载任务之间相互独立,对于其中的某个文件的下载任务来说,每从远程文件读取一行并写入一行到本地文件是一个操作级任务,多个操作级任务之间为串行执行。
具体地,调度单元通过向资源口进行请求的方式获取线程(粒度)级资源,一次请求释放一个线程。
其中,线程级资源依赖于进程级资源,进程级资源依赖于容器(或虚拟机)级资源,容器级资源依赖于物理机级资源,物理机级资源依赖于数据中心级资源(如网络设备、电力设备等),较大粒度级的资源由资源单元以及所依赖的底层基础设施实现。
S102,根据多个第一任务与执行多个第一任务所需资源得到第一映射信息。
其中,第一映射信息可以为多个第一任务的映射集,映射集内包括多个第一任务与执行该第一任务所需资源的第一映射(或第一映射关系),第一映射数量即第一并发量(或线程数量)。映射集内的各映射会统计任务执行情况,单位时间内映射集内总的第一子任务的完成数量即吞吐率。
S103,根据第一映射信息和预设决策模型确定第一信息。
其中,第一信息是对第一映射关系的数量进行至少一个备选调整动作后的信息。
可选地,在一个实施例中,备选调整动作包括增加并发量、保持并发量和减少并发量。
在一个实施例中,第一信息可以是对第一映射关系的数量进行至少一个备选调整动作后的收益信息,收益信息包括映射集的吞吐率和线程效率,其中,线程效率为吞吐率/并发量。
在一个实施例中,在根据第一映射信息和预设决策模型确定第一信息之前,还包括确定预设决策模型,包括以下几个步骤:
步骤1,获取预设时间内运行的多个第二任务与执行多个第二任务所需资源的第二映射信息。
其中,第二任务为系统在采样周期(或预设时间)内运行过的历史任务,每个第二任务可以包括多个第二子任务。第二映射信息可以为第二任务的历史映射集,历史映射集中包括多个历史任务与执行该历史任务所需资源的第二映射,第二映射数量为第二并发量,单位时间内历史映射集内总的第二子任务的完成数量即吞吐率。
步骤2,根据第二映射信息得到多个第二任务的第二并发量和吞吐率的时间序列。
调度单元可以感知并记忆映射集内的并发量和吞吐率的即时值,通过获取采样周期内历史映射集的各个时刻下的并发量X和吞吐率Y,得到并发量X和吞吐率Y随时间变化的(历史)时间序列(X,Y)。
具体地,历史映射集内包括多个历史任务的映射,每一个历史任务包括多个操作级任务,每一个映射需要统计自上次采样以来的操作级任务完成量,计算每个映射在历史周期内的吞吐率,累加得到历史映射集的吞吐率Y。
在一个实施例中,调度单元还可以统计历史映射集的并发量X与最佳吞吐率Ymax随时间变化的时间序列(X1,Ymax),以及并发量X与最佳线程效率(Y/X)max随时间变化的时间序列(X2,(Y/X)max)。
由于瓶颈资源时变性和任务组的资源需求时变性,在不同时刻的相同并发量下,系统的吞吐率和线程效率可能不同。因此,需要考虑资源的时变性,及时刷新最佳吞吐率、最佳吞吐率下的并发量、最佳线程效率以及最佳线程效率下的并发量。
步骤3,根据时间序列确定预设决策模型。
根据采样周期内收集到的大量时间序列的样本,训练出预测模型,根据预测模型确定预设决策模型。
其中,预测模型考虑预测的准确度和环境状态的时效性,用于预测所有备选调整动作后的收益信息。如同“历史总是如此相似的”,预测模型根据历史预测未来具有一定的可信度,当未来到时,若与预测结果一致,则说明未来与历史的内在状态一致;若与预测结果不一致,则说明未来的内在状态发生了变更。
在一个实施例中,在当前映射集的并发量和吞吐率持续增加的进程中突遇吞吐率下降,则很可能触及当前状态下的时变瓶颈;当在保持或动态保持并发量和吞吐率的进程中突遇吞吐率下降或上升,则可能是由于时变瓶颈下降或升高,也可能是由于任务组需求下降或升高;在持续降低并发量且吞吐率持续升高的进程中突遇吞吐率下降,则很可能触及当前状态下的时变瓶颈,并将并行执行的任务间的竞争降到了最低。
在一个实施例中,如果过去增加并发量,收益增加,那么预测模型预测未来继续增加并发量的收益会增加;如果未来增加了并发量,但收益降低,说明环境状态发生变更,则预测减少并发量的收益会增加。
预设决策模块根据感知到的当前时变状态下的最近历史的时间序列,并考虑已感知历史的时效性,根据各备选调整动作的潜在收益调整整体收益。
可以理解的是,本发明实施例提供的预设决策模型不需要在每次调整线程数量之前进行确定,但可随着采样周期的变化而随时进行更新,得到最接近当前时变状态的预设决策模型。
图3是本发明实施例提供的一种预设决策模型的示意图,如图3所示,预设决策模型包括3个顶点,分别表示3种不同的并发量控制状态,其中,状态1为扩张态(或初始态)、状态0为保持态、状态-1为收缩态,有向箭头为状态与状态间的迁移方向和迁移事件,迁移事件表示整体收益变更事件,迁移事件1为收益增加、迁移事件0为收益不变、迁移事件-1为收益减少。
在一个实施例中,映射集在处于状态0时,遇到迁移事件1并迁移至状态1,表示在并发量保持态时突然出现吞吐率(收益)增加的情况时,采取增加并发量的收益会增加。在映射集内任务满载,且新增可用资源时,会触发系统采取此种调整策略。
S104,确定满足预设阈值的第一信息对应的备选调整动作为目标调整动作。
具体地,根据预设决策模型预测所有备选调整动作后的收益信息,将收益信息满足预设阈值对应的备选调整动作作为目标调整动作。
在一个实施例中,可以将最大吞吐率或最佳线程效率对应的备选调整动作作为目标调整动作。
在一个实施例中,可以为吞吐率和线程效率分配相应的权值,综合考虑每个备选调整动作的两种收益信息,得到最终的目标调整动作。
S105,根据目标调整动作对第一映射关系的数量进行调整。
具体地,根据目标调整动作对映射集内的线程数量做出相应调整。
在一个实施例中,映射集内还包括第一映射关系的映射态,映射态表征第一任务中第一子任务的执行状态,映射态包括初始态、执行态、完成态和失败态。其中,初始态为第一任务中多个第一子任务未执行时的第一映射关系的状态,例如,当第一映射关系刚刚建立时,此时第一子任务所共用的运行环境还未准备好,任务无法执行;执行态为第一任务中多个第一子任务正在执行时的第一映射关系的状态;完成态为第一任务中没有可以执行的第一子任务时的第一映射关系的状态;失败态为第一任务中多个第一子任务正在执行时的第一映射关系的状态。
在一个实施例中,可以根据目标调整动作和第一映射关系的映射态对第一映射关系的数量进行调整,包括:当目标调整动作为增加并发量时,创建处于初始态的第一映射关系;当目标调整动作为保持并发量时,保持第一映射信息中第一映射关系的数量;当目标调整动作为减少并发量时,删除处于完成态和失败态的第一映射关系。
在一个实施例中,可以根据当前第一映射关系的数量与最佳第一映射关系的数量之差,对第一映射关系的数量进行调整。
在一个实施例中,映射态还可以包括准备态、中断态和中断恢复态,其中,准备态为映射集已准备好运行环境的状态,此时若发现中断标志则应立即中断,否则进入执行态;中断态为系统为了减少并发量而暂时中断处于执行态的第一映射关系后的状态,任务被中断执行的同时保存当前第一映射关系中第一子任务的执行进度信息;中断恢复态为处于中断态的第一映射关系重新开始执行时的状态,此时第一映射关系中的第一子任务会从之前中断的位置继续执行。当目标调整动作为增加并发量时,中断处于执行态和准备态的第一映射关系,该第一映射关系进入中断态;当目标调整动作为减少并发量时,恢复处于中断态的第一映射关系。
本发明实施例的线程数量调整的方法,能够根据预设决策模型得到当前时变状态下的最佳目标调整动作,并对当前执行的线程数量进行灵活调整,有效提升任务的执行效率,解决了现有技术中固定线程数量带来的任务执行效率低的问题。
图4是本发明实施例提供的一种线程数量调整的装置的结构示意图,如图4所示,该线程数量调整的装置200可以包括:获取模块210、映射模块220、确定模块230、调整模块240。
其中,获取模块210,用于获取多个第一任务与执行多个第一任务所需资源。
映射模块220,用于根据多个第一任务与执行多个第一任务所需资源得到第一映射信息,第一映射信息包括第一并发量,第一并发量为当前多个第一任务与执行多个第一任务所需资源的第一映射关系的数量。
确定模块230,用于根据第一映射信息和预设决策模型确定第一信息,第一信息是对第一映射关系的数量进行至少一个备选调整动作后的信息,其中,预设决策模型是根据预设时间内运行的多个第二任务的第二并发量和吞吐率的时间序列得到的,第二并发量为多个第二任务与执行多个第二任务所需资源的第二映射关系的数量,吞吐率为多个第二任务的单位时间内的完成量。
确定模块230,还用于确定满足预设阈值的第一信息对应的备选调整动作为目标调整动作。
调整模块240,用于根据目标调整动作对第一映射关系的数量进行调整。
在一些实施例中,备选调整动作包括增加并发量、保持并发量和减少并发量。
在一些实施例中,每个第一任务包括多个第一子任务,多个第一任务并行执行,第一任务中的多个第一子任务串行执行。
在一些实施例中,第一映射信息还包括第一映射关系的映射态,映射态表征第一任务中第一子任务的执行状态;调整模块240具体用于:根据目标调整动作和第一映射关系的映射态对第一映射关系的数量进行调整。
在一些实施例中,映射态包括初始态、执行态、完成态和失败态;初始态为第一任务中多个第一子任务未执行时的第一映射关系的状态;执行态为第一任务中多个第一子任务正在执行时的第一映射关系的状态;完成态为第一任务中没有可以执行的第一子任务时的第一映射关系的状态;失败态为第一任务中多个第一子任务正在执行时的第一映射关系的状态。
在一些实施例中,调整模块240具体用于:当目标调整动作为增加并发量时,创建处于初始态的第一映射关系;当目标调整动作为保持并发量时,保持第一映射信息中第一映射关系的数量;当目标调整动作为减少并发量时,删除处于完成态和失败态的第一映射关系。
在一些实施例中,确定模块230还用于:获取预设时间内运行的多个第二任务与执行多个第二任务所需资源的第二映射信息;根据第二映射信息得到多个第二任务的第二并发量和吞吐率的时间序列;根据时间序列确定预设决策模型。
图4所示装置中的各个模块具有实现图1中执行任务的系统所执行的各个步骤的功能,并能达到其相应的技术效果,为简洁描述,在此不再赘述。
图5是本发明实施例提供的另一种线程数量调整的装置的结构示意图,如图5所示,该线程数量调整的装置300包括:调度环境310和智能调度器320,其中,调度环境320包括任务口330、资源口340和映射集350,映射集350中包含任务与资源的映射,调度环境320通过任务口330与任务单元进行任务协调,通过资源口340与资源单元进行资源协调,智能调度器320包括感知模块360、记忆模块370、决策模块380和控制模块390,其中,智能调度器320的记忆模块370和决策模块380是决定是否能够达到调度目标的核心模块。
其中,感知模块360,用于感知调度环境310的并发量和吞吐率的即时值。
记忆模块370,用于记忆调度环境310的并发量和吞吐率随时间变化的时间序列。
决策模块380,用于根据记忆的时间序列决策出收益最大的应对策略,即最佳并发量。
控制模块390,用于根据当前并发量与最佳并发量之差,控制调度环境310做出实际调整。
本发明实施例的线程数量调整的装置,智能调度器能够利用感知能力识别调度环境的状态,利用记忆能力记忆并发量和吞吐率随时间变化的时间序列,利用决策能力搜索最佳应对动作,利用控制能力操纵调度环境做出线程数量的相应调整,能够以智能的方式的自动调整并发量,让系统时刻保持最佳的并发量与吞吐率,有效提升任务的执行效率。
图6是本发明实施例提供的一种线程数量调整的设备的硬件结构示意图。
如图6所示,本实施例中的线程数量调整的设备400包括输入设备401、输入接口402、中央处理器403、存储器404、输出接口405、以及输出设备406。其中,输入接口402、中央处理器403、存储器404、以及输出接口405通过总线410相互连接,输入设备401和输出设备406分别通过输入接口402和输出接口405与总线410连接,进而与线程数量调整的设备400的其他组件连接。
具体地,输入设备401接收来自外部的输入信息,并通过输入接口402将输入信息传送到中央处理器403;中央处理器403基于存储器404中存储的计算机可执行指令对输入信息进行处理以生成输出信息,将输出信息临时或者永久地存储在存储器404中,然后通过输出接口405将输出信息传送到输出设备406;输出设备406将输出信息输出到线程数量调整的设备400的外部供用户使用。
在一个实施例中,图6所示的线程数量调整的设备400包括:存储器404,用于存储程序;处理器403,用于运行存储器中存储的程序,以执行本发明实施例提供的图1-图3所示实施例的方法。
本发明实施例还提供一种计算机存储介质,该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现本发明实施例提供的图1-图3所示实施例的方法。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,做出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、只读存储器(Read-Only Memory,ROM)、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(Radio Frequency,RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

Claims (11)

1.一种线程数量调整的方法,其特征在于,所述方法包括:
获取多个第一任务与执行所述多个第一任务所需资源;
根据所述多个第一任务与执行所述多个第一任务所需资源得到第一映射信息,所述第一映射信息包括第一并发量,所述第一并发量为当前所述多个第一任务与执行所述多个第一任务所需资源的第一映射关系的数量;
根据所述第一映射信息和预设决策模型确定第一信息,所述第一信息是对所述第一映射关系的数量进行至少一个备选调整动作后的信息,其中,所述预设决策模型是根据预设时间内运行的多个第二任务的第二并发量和吞吐率的时间序列得到的,所述第二并发量为所述多个第二任务与执行所述多个第二任务所需资源的第二映射关系的数量,每个第二任务包括多个第二子任务,所述吞吐率为所述多个第二子任务的单位时间内的完成量;
确定满足预设阈值的所述第一信息对应的备选调整动作为目标调整动作;
根据所述目标调整动作对所述第一映射关系的数量进行调整。
2.根据权利要求1所述的方法,其特征在于,所述备选调整动作包括增加并发量、保持并发量和减少并发量。
3.根据权利要求1所述的方法,其特征在于,每个第一任务包括多个第一子任务,所述多个第一任务并行执行,所述第一任务中的所述多个第一子任务串行执行。
4.根据权利要求3所述的方法,其特征在于,所述第一映射信息还包括所述第一映射关系的映射态,所述映射态表征所述第一任务中所述第一子任务的执行状态;所述根据所述目标调整动作对所述第一映射关系的数量进行调整,包括:
根据所述目标调整动作和所述第一映射关系的映射态对所述第一映射关系的数量进行调整。
5.根据权利要求4所述的方法,其特征在于,所述映射态包括初始态、执行态、完成态和失败态;
所述初始态为所述第一任务中所述多个第一子任务未执行时的第一映射关系的状态;
所述执行态为所述第一任务中所述多个第一子任务正在执行时的第一映射关系的状态;
所述完成态为所述第一任务中没有可以执行的第一子任务时的第一映射关系的状态;
所述失败态为所述第一任务中所述多个第一子任务正在执行时的第一映射关系的状态。
6.根据权利要求5所述的方法,其特征在于,所述根据所述目标调整动作和所述第一映射关系的映射态对所述第一映射关系的数量进行调整,包括:
当所述目标调整动作为增加并发量时,创建处于所述初始态的第一映射关系;
当所述目标调整动作为保持并发量时,保持所述第一映射信息中所述第一映射关系的数量;
当所述目标调整动作为减少并发量时,删除处于所述完成态和所述失败态的第一映射关系。
7.根据权利要求1所述的方法,其特征在于,所述第一信息包括所述多个第一任务的吞吐率。
8.根据权利要求1所述的方法,其特征在于,在所述根据所述第一映射信息和预设决策模型确定第一信息之前,所述方法还包括:
获取所述预设时间内运行的多个第二任务与执行所述多个第二任务所需资源的第二映射信息;
根据所述第二映射信息得到所述多个第二任务的第二并发量和吞吐率的时间序列;
根据所述时间序列确定所述预设决策模型。
9.一种线程数量调整的装置,其特征在于,所述装置包括:
获取模块,用于获取多个第一任务与执行所述多个第一任务所需资源;
映射模块,用于根据所述多个第一任务与执行所述多个第一任务所需资源得到第一映射信息,所述第一映射信息包括第一并发量,所述第一并发量为当前所述多个第一任务与执行所述多个第一任务所需资源的第一映射关系的数量;
确定模块,用于根据所述第一映射信息和预设决策模型确定第一信息,所述第一信息是对所述第一映射关系的数量进行至少一个备选调整动作后的信息,其中,所述预设决策模型是根据预设时间内运行的多个第二任务的第二并发量和吞吐率的时间序列得到的,所述第二并发量为所述多个第二任务与执行所述多个第二任务所需资源的第二映射关系的数量,每个第二任务包括多个第二子任务,所述吞吐率为所述多个第二子任务的单位时间内的完成量;
所述确定模块,还用于确定满足预设阈值的所述第一信息对应的备选调整动作为目标调整动作;
调整模块,用于根据所述目标调整动作对所述第一映射关系的数量进行调整。
10.一种线程数量调整的设备,其特征在于,所述设备包括:处理器,以及存储有计算机程序指令的存储器;
所述处理器读取并执行所述计算机程序指令,以实现如权利要求1-8任意一项所述的线程数量调整的方法。
11.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如权利要求1-8任意一项所述的线程数量调整的方法。
CN202010316813.7A 2020-04-21 2020-04-21 线程数量调整的方法、装置、设备及计算机存储介质 Active CN113535346B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010316813.7A CN113535346B (zh) 2020-04-21 2020-04-21 线程数量调整的方法、装置、设备及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010316813.7A CN113535346B (zh) 2020-04-21 2020-04-21 线程数量调整的方法、装置、设备及计算机存储介质

Publications (2)

Publication Number Publication Date
CN113535346A true CN113535346A (zh) 2021-10-22
CN113535346B CN113535346B (zh) 2024-03-19

Family

ID=78123824

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010316813.7A Active CN113535346B (zh) 2020-04-21 2020-04-21 线程数量调整的方法、装置、设备及计算机存储介质

Country Status (1)

Country Link
CN (1) CN113535346B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023109613A1 (zh) * 2021-12-15 2023-06-22 北京字跳网络技术有限公司 任务执行方法、装置、设备及介质
CN118014732A (zh) * 2024-04-10 2024-05-10 深圳华锐分布式技术股份有限公司 数据回传方法、装置、设备及介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6353829B1 (en) * 1998-12-23 2002-03-05 Cray Inc. Method and system for memory allocation in a multiprocessing environment
US20050183084A1 (en) * 2004-02-13 2005-08-18 International Business Machines Corporation Autonomic workload classification using predictive assertion for wait queue and thread pool selection
US20060107261A1 (en) * 2004-11-18 2006-05-18 Oracle International Corporation Providing Optimal Number of Threads to Applications Performing Multi-tasking Using Threads
US8108872B1 (en) * 2006-10-23 2012-01-31 Nvidia Corporation Thread-type-based resource allocation in a multithreaded processor
CN102831053A (zh) * 2011-06-17 2012-12-19 阿里巴巴集团控股有限公司 一种测试执行的调度方法及装置
CN103428272A (zh) * 2013-07-16 2013-12-04 无限极(中国)有限公司 一种中间件线程的监控调度系统及方法
US20140089935A1 (en) * 2011-05-19 2014-03-27 Nec Corporation Parallel processing device, parallel processing method, optimization device, optimization method and computer program
CN104487946A (zh) * 2011-10-14 2015-04-01 英特尔公司 用于事务存储器系统中的自适应线程调度的方法、设备和系统
US20160179558A1 (en) * 2014-12-18 2016-06-23 International Business Machines Corporation Exiting multiple threads of a simulation environment in a computer
CN109814998A (zh) * 2019-01-22 2019-05-28 中国联合网络通信集团有限公司 一种多进程任务调度的方法及装置
CN109885385A (zh) * 2018-12-21 2019-06-14 山东中创软件商用中间件股份有限公司 一种应用服务器线程池的自调优方法、装置及设备
CN110297743A (zh) * 2018-03-21 2019-10-01 财付通支付科技有限公司 一种负载测试方法、装置和存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6353829B1 (en) * 1998-12-23 2002-03-05 Cray Inc. Method and system for memory allocation in a multiprocessing environment
US20050183084A1 (en) * 2004-02-13 2005-08-18 International Business Machines Corporation Autonomic workload classification using predictive assertion for wait queue and thread pool selection
US20060107261A1 (en) * 2004-11-18 2006-05-18 Oracle International Corporation Providing Optimal Number of Threads to Applications Performing Multi-tasking Using Threads
US8108872B1 (en) * 2006-10-23 2012-01-31 Nvidia Corporation Thread-type-based resource allocation in a multithreaded processor
US20140089935A1 (en) * 2011-05-19 2014-03-27 Nec Corporation Parallel processing device, parallel processing method, optimization device, optimization method and computer program
CN102831053A (zh) * 2011-06-17 2012-12-19 阿里巴巴集团控股有限公司 一种测试执行的调度方法及装置
CN104487946A (zh) * 2011-10-14 2015-04-01 英特尔公司 用于事务存储器系统中的自适应线程调度的方法、设备和系统
CN103428272A (zh) * 2013-07-16 2013-12-04 无限极(中国)有限公司 一种中间件线程的监控调度系统及方法
US20160179558A1 (en) * 2014-12-18 2016-06-23 International Business Machines Corporation Exiting multiple threads of a simulation environment in a computer
CN110297743A (zh) * 2018-03-21 2019-10-01 财付通支付科技有限公司 一种负载测试方法、装置和存储介质
CN109885385A (zh) * 2018-12-21 2019-06-14 山东中创软件商用中间件股份有限公司 一种应用服务器线程池的自调优方法、装置及设备
CN109814998A (zh) * 2019-01-22 2019-05-28 中国联合网络通信集团有限公司 一种多进程任务调度的方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023109613A1 (zh) * 2021-12-15 2023-06-22 北京字跳网络技术有限公司 任务执行方法、装置、设备及介质
CN118014732A (zh) * 2024-04-10 2024-05-10 深圳华锐分布式技术股份有限公司 数据回传方法、装置、设备及介质

Also Published As

Publication number Publication date
CN113535346B (zh) 2024-03-19

Similar Documents

Publication Publication Date Title
US11656911B2 (en) Systems, methods, and apparatuses for implementing a scheduler with preemptive termination of existing workloads to free resources for high priority items
US10514951B2 (en) Systems, methods, and apparatuses for implementing a stateless, deterministic scheduler and work discovery system with interruption recovery
US11294726B2 (en) Systems, methods, and apparatuses for implementing a scalable scheduler with heterogeneous resource allocation of large competing workloads types using QoS
US9442760B2 (en) Job scheduling using expected server performance information
US10761897B2 (en) Predictive model-based intelligent system for automatically scaling and managing provisioned computing resources
JP3658420B2 (ja) 分散処理システム
US10831387B1 (en) Snapshot reservations in a distributed storage system
CN111381950A (zh) 一种面向边缘计算环境基于多副本的任务调度方法和系统
CN114780225B (zh) 一种分布式模型训练系统、方法及装置
CN113342477A (zh) 一种容器组部署方法、装置、设备及存储介质
CN115543577B (zh) 基于协变量的Kubernetes资源调度优化方法、存储介质及设备
CN114356587B (zh) 算力任务跨区域调度方法、系统及设备
CN109634714B (zh) 一种智能调度的方法及装置
CN113535346B (zh) 线程数量调整的方法、装置、设备及计算机存储介质
Razavi et al. FA2: Fast, accurate autoscaling for serving deep learning inference with SLA guarantees
IL301738A (en) Predictive block storage size allocation for cloud storage
US10909094B1 (en) Migration scheduling for fast-mutating metadata records
CN108595251B (zh) 动态图更新方法、装置、存储引擎接口和程序介质
CN111555987B (zh) 限流配置方法、装置、设备及计算机存储介质
CN110928649A (zh) 资源调度的方法和装置
CN110958192B (zh) 一种基于虚拟交换机的虚拟数据中心资源分配系统及方法
Ibrahim et al. Improving mapreduce performance with progress and feedback based speculative execution
CN116737370A (zh) 一种多资源调度方法、系统、存储介质及终端
CN110297692B (zh) 一种分布式软件任务动态管理的方法及其系统
CN114168299A (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