CN109992366A - 任务调度方法及调度装置 - Google Patents
任务调度方法及调度装置 Download PDFInfo
- Publication number
- CN109992366A CN109992366A CN201711483871.3A CN201711483871A CN109992366A CN 109992366 A CN109992366 A CN 109992366A CN 201711483871 A CN201711483871 A CN 201711483871A CN 109992366 A CN109992366 A CN 109992366A
- Authority
- CN
- China
- Prior art keywords
- hyperthread
- group
- task
- resource
- migrated
- 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
Links
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/486—Scheduler internals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- 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)
- Multi Processors (AREA)
- Power Sources (AREA)
Abstract
本申请公开了一种任务调度方法及调度装置。其中,该方法包括:根据第一处理器核中运行的多个超线程使用的资源的标识对所述多个超线程进行分组,以得到至少一个超线程组,其中,所述至少一个超线程组中,超线程组内的超线程所使用的资源的标识相同;根据所述至少一个超线程组中一个或者多个超线程组的运行状态参数,变更所述多个超线程中,至少一个超线程上运行的任务,所述运行状态参数包括负载、利用率、竞争资源的类型和资源密集指数中的一项或多项。采用本申请,能够基于以资源共享关系分组得到的超线程组来实现任务调度,有助于减少因任务间资源竞争导致的任务无法被及时处理的问题,从而提升了系统性能。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种任务调度方法及调度装置。
背景技术
随着计算机技术的不断发展,超线程(Hyper-Threading,缩写:HT)技术得到广泛应用,使得能够提升中央处理器(Central Processing Unit,缩写:CPU)的处理性能。该HT技术是利用特殊的硬件指令,把一个物理CPU模拟成多个逻辑CPU即超线程,该多个超线程运行于该物理CPU上,并可使用该物理CPU的资源去执行多个任务。从而在一个超线程上可以并行执行多个任务,使得在一个物理CPU上能够同时执行更多的任务,这就减少了CPU的闲置时间,提升了CPU效率。然而,多个超线程之间可能会共用CPU中的部分资源,比如共用某一cache资源和某一运算逻辑单元等等,当该多个超线程上的多个任务需要使用该cache资源或运算逻辑单元时,同一时间只能有一个任务可以使用该资源。也就是说,当两个及以上任务都同时需要某一个资源时,只有一个任务能够使用,其余的任务要让出资源,等待至该资源闲置后才能继续运行。
此外,目前存在的各种各样的调度策略,用于管理任务在CPU上的运行,比如全局任务调度(Global Task Scheduler,缩写:GTS)策略、完全公平调度(Completely FairScheduler,缩写:CFS)策略、节能调度(Energy Aware Scheduler,缩写:EAS)策略等等。这些调度策略在进行任务调度时,都是独立的以物理CPU或者超线程的负载情况来进行调度的,比如将任务部署到负载小的CPU或超线程上。如果部署到使用相同资源的超线程上的任务很多,则导致任务间资源竞争加剧,导致任务无法被及时处理,使得系统性能降低。
发明内容
本发明实施例提供了一种任务调度方法及调度装置,能够基于以资源共享关系分组得到的超线程组来实现任务调度,有助于减少因任务间资源竞争导致的任务无法被及时处理的问题,从而提升了系统性能。
第一方面,本申请提供了一种任务调度方法,该方法可应用于物理机,该物理机的处理电路中可包括第一处理器核,该第一处理器核中可运行有多个超线程,该多个超线程可共用该第一处理器核的多种资源,该方法包括:调度装置根据该多个超线程使用的资源的标识对该多个超线程进行分组,以得到至少一个超线程组,根据该至少一个超线程组中一个或者多个超线程组的运行状态参数,变更该多个超线程中,至少一个超线程上运行的任务。也就是说,本申请能够通过将使用相同的资源的超线程划分为一组,也即基于超线程之间的资源共享关系分组得到的超线程组,进而以超线程组的整体运行状态来实现物理机上的任务调度,有助于减少因任务间资源竞争导致的任务无法被及时处理的问题,提升了系统性能。
其中,该至少一个超线程组中,超线程组内的超线程所使用的资源的标识相同。该标识可用于唯一确定该第一处理器核中的资源,比如可以为资源的编号、型号等等。或者也可通过其他方式对该多个超线程进行分组,以实现将使用的资源相同的超线程划分到同一个超线程组中,本申请不做限定。进一步的,该运行状态参数可包括负载、利用率、竞争资源的类型和资源密集指数中的一项或多项,用于表示一超线程组的整体运行状态。其中,一个超线程组的负载对应于该超线程组中运行的所有任务,例如,该负载可用于表示运行于一超线程组中的所有任务的负载,如该负载可以是该超线程组包括的所有的超线程上的所有任务的负载之和;该利用率可用于表示一超线程组使用分配给该超线程组的该第一处理器核的资源的程度,如该利用率可以为该超线程组中的所有超线程的平均利用率,或者为超线程组的所有超线程的利用率中的最大利用率等等;该竞争资源的类型可用于表示一超线程组的超线程之间竞争的资源的类型,即超线程组的超线程整体竞争资源的类型;该资源密集指数可用于表示一超线程组的超线程之间竞争某一资源的程度,如该资源密集指数可以是超线程组的IO-Bound和/或CPU-Bound等等。
在一种可能的设计中,该物理机的处理电路中还可包括第二处理器核。进而调度装置可根据该至少一个超线程组的运行状态参数,将运行于该第二处理器核的任务迁移到该至少一个超线程组的一超线程上,或者从运行于该至少一个超线程组的超线程上的任务中选择任务迁移到该第二处理器核,或者将新任务部署到该第二处理器核。可选的,将任务迁移到或部署到第二处理器核可以包括,将任务迁移到或部署到该第二处理器核对应的CPU上(比如第二处理器核为CPU且未运行有超线程时,可以是指迁移到或部署到该CPU上;第二处理器核为多个CPU的集合且未运行有超线程时,可以是指迁移到或部署到该第二处理器核中的CPU上),或者可包括将任务迁移到或部署到该第二处理器核中的超线程上(比如第二处理器核运行有超线程时)。
在一种可能的设计中,调度装置在根据该至少一个超线程组中一个或者多个超线程组的运行状态参数,变更该多个超线程中,至少一个超线程上运行的任务时,可在第一待迁移任务为输入输出(Input Output,缩写:IO或I/O)IO密集型任务,且该至少一个超线程组中第一超线程组的竞争资源的类型为CPU的处理资源的情况下,将第一待迁移任务迁移到该第一超线程组中的超线程上;在该第一待迁移任务为CPU密集型任务,且该至少一个超线程组中的第二超线程组的竞争资源的类型为IO的处理资源的情况下,将该第一待迁移任务迁移到该第二超线程组中的超线程上。其中,该第一待迁移任务可以为运行于该第二处理器核中的待迁移的任务。可选的,该第一超线程组可以为该至少一个超线程组中负载低于预设的第一阈值的超线程组或为该至少一个超线程组中利用率低于预设的第二阈值的超线程组。进一步可选的,该第二超线程组可以为该至少一个超线程组中负载低于预设的第一阈值的超线程组或为该至少一个超线程组中利用率低于预设的第二阈值的超线程组。可选的,任务的类型如该任务是属于IO密集型还是CPU密集型可以通过计算该任务的资源密集指数如IO-Bound(I/O密集型程度)和CPU-Bound(CPU密集型程度)确定出。例如,如果计算出的IO-Bound高于CPU-Bound,则该任务属于IO密集型任务;如果计算出的IO-Bound低于CPU-Bound,则该任务属于CPU密集型任务。进一步可选的,该超线程组中的超线程之间竞争资源的类型的确定方式和任务的类型的确定方式类似,如果该超线程组的IO-Bound高于CPU-Bound,则该超线程组竞争资源的类型为IO资源;如果该超线程组的IO-Bound低于CPU-Bound,则该超线程组竞争资源的类型为CPU资源。从而有助于降低超线程之间的资源竞争。
在一种可能的设计中,将该第一待迁移任务迁移到超线程组如该第一超线程组或第二超线程组中的超线程上,可以是指将该第一待迁移任务迁移到该超线程组中负载低于某一阈值的超线程中的任一超线程上,或者将该第一待迁移任务迁移到该超线程组中的负载最小的超线程上,本申请不做限定。
在一种可能的设计中,调度装置在根据该至少一个超线程组中一个或者多个超线程组的运行状态参数,变更该多个超线程中,至少一个超线程上运行的任务时,还可在该至少一个超线程组中存在空闲的超线程且该空闲的超线程所在的超线程组的利用率高于预设的第三阈值的情况下,禁止将该第一待迁移任务迁移到该第一处理器核。其中,该空闲的超线程可以为未运行任务的超线程,以及,该第一待迁移任务为运行于该第二处理器核中的待迁移的任务。从而有助于避免迁移任务无法及时得到运行。
在一种可能的设计中,调度装置在根据该至少一个超线程组中一个或者多个超线程组的运行状态参数,变更该多个超线程中,至少一个超线程上运行的任务时,还可在该至少一个超线程组中存在资源密集指数高于预设的第四阈值,且负载大于预设的第五阈值的第三超线程组的情况下,将该第二待迁移任务迁移到该第二处理器核,该第二待迁移任务可以为运行于该第三超线程组的任务中该资源密集指数最高的任务。从而有助于降低超线程间的资源竞争。
在一种可能的设计中,调度装置在根据该至少一个超线程组中一个或者多个超线程组的运行状态参数,变更该多个超线程中,至少一个超线程上运行的任务时,还可在该至少一个超线程组中不存在资源密集指数高于预设的第四阈值的超线程组,或者不存在负载大于预设的第五阈值的超线程组的情况下,将第二待迁移任务迁移到该第二处理器核,该第二待迁移任务为运行于该第一处理器核的待迁移的任务,且该第二待迁移任务可以为该至少一个超线程组中负载最大的任务。从而有助于负载大的任务及时得到运行。
在一种可能的设计中,调度装置在根据该至少一个超线程组中一个或者多个超线程组的运行状态参数,变更该多个超线程中,至少一个超线程上运行的任务时,还可在第四超线程组中运行有与该新任务属于同一进程的任务的情况下,将新任务部署到该第四超线程组中的超线程上,该第四超线程组为该至少一个超线程组中利用率低于预设的第六阈值的超线程组。从而能够提高使用的相同资源如cache的命中率,对于超线程组内一些其他任务已读取的数据,则可直接获取得到,而不必重新读取,这就提升了任务的运行效率。
在一种可能的设计中,该至少一个超线程组中包括多个该第四超线程组,调度装置在该将新任务部署到该第四超线程组中的超线程上时,可将该新任务部署到多个该第四超线程组中,负载最小的超线程组中的超线程上。
在一种可能的设计中,将任务部署到超线程组的超线程上时,可以确定出该超线程组中负载最小的超线程,并将任务部署到该超线程组中负载最小的超线程上。
上述的第一阈值、第二阈值、第三阈值、第四阈值、第五阈值、第六阈值等可预先设置得到。其中,该第三阈值可大于或等于该第二阈值和第六阈值,该第二阈值可以大于或小于或等于该第六阈值,比如该第二阈值、第三阈值和第六阈值可以相同,该第五阈值可大于或等于该第一阈值,本申请不做限定。
第二方面,本申请还提供了一种调度装置,该装置可设置于物理机中,该装置包括:处理单元和调度单元,该装置可通过上述单元实现上述第一方面的任务调度方法中调度装置执行的部分或全部步骤。可选的,该调度装置还可叫做调度器、调度单元或其余名称,本申请不做限定。
第三方面,本申请还提供了一种物理机,该物理机可包括:处理器和调度装置,该处理器与该调度装置连接;该调度装置可用于执行上述第一方面的任务调度方法中调度装置执行的部分或全部的步骤。可选的,该物理机还可包括存储器、用户接口等等。
第四方面,本申请还提供了一种计算机存储介质,所述计算机存储介质存储有程序,所述程序执行时包括上述第一方面的任务调度方法中调度装置执行的部分或全部的步骤。
第五方面,本申请还提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使得计算机执行上述第一方面的任务调度方法中的部分或全部的步骤。
第六方面,本申请提供了一种芯片系统,该芯片系统包括处理器和调度装置,用于物理机实现上述方面中所涉及的功能。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存物理机必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本发明实施例提供的方案中,在按照超线程之间的资源共享关系分组得到多个超线程组之后,调度装置能够根据超线程组整体的运行状态来进行任务调度,在超线程上部署新任务、迁入和迁出任务均是以超线程组为整体进行考虑,确保不会造成组内资源严重竞争且任务能够得到及时的调度,从而实现了基于超线程组来实现物理机上的任务调度,有助于减少因任务间资源竞争导致的任务无法被及时处理的问题,提升了系统性能。
附图说明
为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
图1是是本发明实施例提供的一种异构系统示意图;
图2是是本发明实施例提供的一种同构系统示意图;
图3是本发明实施例提供的一种任务调度方法的流程示意图;
图4是本发明实施例提供的一种任务调度架构图;
图5是本发明实施例提供的一种超线程组拓扑结构图;
图6是本发明实施例提供的一种调度装置的结构示意图;
图7是本发明实施例提供的一种物理机的结构示意图。
具体实施方式
下面结合本发明实施例中的附图对本发明实施例进行描述。
应理解,本发明实施例所涉及的技术方案可具体应用于物理机中,该物理机可以包括集成有各物理CPU的处理电路,该处理电路可集成在一芯片上,该芯片上可运行各种操作系统(Operating System,缩写:OS),如Linux、Windows、UNIX系统等等,即在芯片上形成片上系统(System on Chip,缩写:SOC)。可选的,该物理机可包括但不限于智能手机(如Android手机、iOS手机等)、平板电脑、移动互联网设备(mobile internet devices,缩写:MID)、计算机等等。
其中,一个物理CPU中可运行有一个或多个超线程。可选的,该超线程也可以称作“逻辑CPU”,或者可以称作“硬超线程”等等,本申请不做限定。应理解,下文提及的CPU或处理器为物理CPU。
在本申请中,任务可以是指达到某一目的的操作,一个任务通常是一个程序的一次运行。例如,读取数据并将数据放入内存中。该任务还可以叫做其余名称,本申请不做限定。其中,一个或多个任务可以运行于一个进程上,一个或多个进程可运行于一个超线程上,或者也可以是一个或多个任务运行于一个超线程上。进一步的,在本申请中,将任务部署到超线程上可以是指将任务添加到该超线程的任务队列中,以等待运行。
在本申请中,负载最小也可以叫做负载最轻,或者简称为“最轻”,或者还可叫做负载最低;相应的,负载最大也可以叫做负载最重,或者简称为“最重”,或者还可以叫做负载最高,等等,本申请不做限定。
本申请的任务调度场景,或者称为本申请的技术方案的应用的CPU的体系结构可以是异构,也可以是同构。其中,异构又称为异构CPU或异构体系结构,同构又称为同构CPU或同构体系结构。异构可以是指物理机内的CPU的类型不同,比如big.LITTLE体系结构,其既包括低功耗、低性能的little型CPU,也包括高功耗、高性能的big型CPU。如图1所示,该图1示出了本发明实施例提供的一种big.LITTLE且有超线程的异构系统示意图,图1中左边的big CPU cores(大核)表示物理机中所有处理能力强的CPU集合;右边的LITTLE cores(小核)表示系统中所有的处理能力较弱的CPU,各LITTLE core可以以总线方式或者其他方式连接,且该LITTLE core可运行有多个超线程。同构可以是指物理机内的CPU的类型相同,比如均为little(低功耗、低性能)型的CPU,或者均为的big(高功耗、高性能)型的CPU等等,如图2所示,该图2示出了本发明实施例提供的一种CPU类型为little型且有超线程的同构系统示意图。
在本申请中,物理机的处理电路中可包括多个处理器核。可选的,一处理器核可以是一独立的CPU,如上述图1所示的小核中的CPU,或者图2中CPU;或者,一处理器核可以是包括多个CPU的集合,比如图1所示的小核或大核等等,此处不一一列举。
本发明实施例公开了一种任务调度方法、调度装置及物理机,能够按照超线程之间的资源共享关系分组得到超线程组,进而基于该超线程组来实现任务调度,有助于减少因任务间资源竞争导致的任务无法被及时处理的问题,从而提升了系统性能。以下分别详细说明。
请结合图1至图2,一并参见图3,图3是本发明实施例提供的一种任务调度方法的流程示意图。如图3所示,本发明实施例的任务调度方法可包括以下步骤:
301、根据运行于第一处理器核中的多个超线程使用的资源的标识对该多个超线程进行分组,以得到至少一个超线程组。
具体的,本申请的技术方案可具体应用于物理机,并可由调度器(scheduler)执行,该调度器可配置于该物理机中。可选的,该调度器还可以叫做调度单元,或者叫做调度装置,或者还可叫做其余名称,本申请不做限定。下面以调度装置为例进行描述。该物理机可包括第一处理器核和第二处理器核,该第一处理器核和第二处理器核可以为独立的CPU或包括多个CPU的集合。例如,如图1所示,第一处理器核可以为小核中运行有超线程的CPU,第二处理器核为小核中运行有超线程的CPU或独立的CPU(未运行有超线程,或者仅运行有有一个超线程);或者,该第一处理器核为小核中运行有超线程的CPU,该第二处理器核为大核中的CPU或该大核;或者,该第一处理器核为小核,第二处理器核为大核中的CPU或该大核;又如,该第一处理器核为图2中运行有超线程的CPU,第二处理器核为运行有超线程的CPU或独立的CPU,等等,此处不一一列举。也就是说,该第一处理器核运行有多个超线程,第二处理器核中可以运行有多个超线程或者仅包括一个或多个独立的CPU。
其中,该第一处理器核中运行有多个超线程,该多个超线程可共用第一处理器核的多种资源,包括cache、运算逻辑单元等多种类型的资源。该分组得到的至少一个超线程组中,每个超线程组内包括的超线程所使用的资源的标识相同,一个标识可用于唯一确定该第一处理器核中的一个资源,比如可以是资源的编号,型号等等。也就是说,该每个超线程组包括的超线程所使用的资源为类型(种类)相同的同一个或多个资源。例如,一处理器核如CPU内包括资源类型为IO的处理资源(以下简称IO资源)的2个cache(比如标识为cache1和cache2的2个cache)和资源类型为CPU的处理资源(以下简称CPU资源)的2个运算逻辑单元(比如标识为运算逻辑单元1和运算逻辑单元2的两个运算逻辑单元),该处理器核运行有8个超线程,其中4个使用的资源为cache1和运算逻辑单元1,另外4个超线程使用的资源为cache2和运算逻辑单元2时,可以将使用cache1和运算逻辑单元1的超线程分为一组,将使用cache2和运算逻辑单元2的超线程分为一组;也就是说,每个超线程组包括的超线程所使用的资源均为某一cache,以及均为某一运算逻辑单元。其中,每个超线程使用的资源可以是芯片出厂时配置得到的,该物理机中可存储有各超线程及其使用的资源的标识的对应关系,比如在预置的配置文件中存储该对应关系。从而能够实现将处理器核内部共享一部分资源的超线程分为一个超线程组,将共享另一部分资源的超线程分为另一个超线程组等等。通过划分超线程组,使得能够实现将有资源共享关系的超线程即一个超线程组看作一个整体来进行任务调度,由此有助于降低任务间的资源竞争。
举例来说,请参见图4,是本发明实施例提供的一种任务调度系统的架构示意图。如图4所示,本申请可通过新增一个超线程调度类,用于实现基于超线程组的调度。该超线程调度类可以作为一个调度类与现有的CFS/FIFO/Deadline等调度类并列,以实现对物理机内的所有超线程和CPU的调度;或者,基于该超线程调度类可独立实现调度,比如针对仅包括超线程不包括独立CPU的同构体系结构。该调度主要包括对新创建的任务即新任务进行管理,比如为该新任务选择部署的超线程;还包括任务休眠与唤醒管理、任务运行过程中的负载均衡,比如为被唤醒的任务选择超线程或者CPU,为待迁移任务选择需迁移到的超线程或者CPU,或者选择需要迁出的任务等等。
进一步的,请一并参见图5,是本发明实施例提供的一种超线程组的拓扑结构示意图。如图5所示,假设该第一处理器核如小核的CPU中包括8个超线程,其在CPU内的编号(即物理编号)分别为0~7,假设物理编号为0、2、4、6的超线程有共享资源,即使用的资源相同,物理编号为1、3、5、7的超线程有共享资源,则调度装置可以将该8个超线程分为两组,一个超线程组包括物理编号为0、2、4、6的超线程,另一个超线程组包括物理编号为1、3、5、7的超线程。其中,超线程组内的超线程物理编号不一定是连续的,其可以是连续的,也可以是非连续的。可选的,分组得到各超线程组之后,调度装置可对超线程组内的超线程重新编号,该编号在整个物理机内唯一确定一个超线程,比如对于物理编号为0、2、4、6的超线程,重新编号为0、1、2、3,即图5中的Group0至Group3;对于物理编号为1、3、5、7的超线程,重新编号为4、5、6、7,即图5中的Group4至Group7,即对该8个超线程重新编号为Group0至Group7,该Group0至Group3为一个超线程组,即Group0-3;该Group4至Group7为一个超线程组,即Group4-7。进一步可选的,还可对运行于其他CPU的超线程进行分组,如图5所示,对Group8-15和Group16-23对应的超线程进行分组,此处不赘述。其中,每个超线程上可运行一个或多个任务。从而可建立超线程组拓扑结构。
进一步可选的,该超线程组可作为一个调度域,从而能够基于超线程组这一调度域进行任务调度。比如Linux系统里有CPU domain、MC domain、SMT domain三个调度域,进行超线程分组之后,则可新增加一级调度域,即超线程组对应的调度域,比如将该调度域叫做SMT_GROUP domain,从而调度域从上到下的层次关系可以为:CPU domain,MC domain,SMT domain,SMT_GROUP domain,如图5所示。从而调度装置可按照该调度域从下到上进行负载均衡。
302、根据该至少一个超线程组中一个或者多个超线程组的运行状态参数,变更所述多个超线程中,至少一个超线程上运行的任务。
可选的,该运行状态参数可包括负载、利用率、竞争资源的类型和资源密集指数中的一项或多项。应理解,该运行状态参数可以是用于表示超线程组的整体运行状态的参数。例如,一个超线程组的负载可对应于该超线程组中运行的所有任务,如该负载可以是该超线程组包括的所有的超线程上的所有任务的负载之和;又如该利用率可以用于表示超线程组使用分配给该超线程组的第一处理器核的资源的程度,如该利用率可以为该超线程组中的所有超线程的平均利用率,或者为超线程组的所有超线程的利用率中的最大利用率等等;又如该竞争资源的类型可以用于表示一超线程组的超线程之间竞争的资源的类型,即超线程组的超线程整体竞争资源的类型;又如该资源密集指数可以用于表示超线程组的超线程之间竞争某一资源的程度,比如该资源密集指数可以是超线程组的IO-Bound和/或CPU-Bound等等。在本申请中,该资源密集指数还可叫做其余名称,本申请不做限定。
进一步可选的,该变更多个超线程中,至少一个超线程上运行的任务,可以包括将第二处理器核中运行的任务迁移到该至少一个超线程上,即在该至少一个超线程上增加任务;和/或,将该至少一个超线程上的任务迁移到第二处理器核(的超线程或CPU上),即在该至少一个超线程上减少任务;和/或,将新任务部署到该至少一个超线程中的超线程上,即在该至少一个超线程上增加任务;等等,以实现对运行于物理机中的任务的调度。
可选的,调度装置可在第一待迁移任务为IO密集型任务,且该分组得到的至少一个超线程组中第一超线程组中的超线程之间竞争资源的类型为CPU资源的情况下,将第一待迁移任务迁移到该第一超线程组中的超线程上;调度装置还可在该第一待迁移任务为CPU密集型任务,且该至少一个超线程组中第二超线程组中的超线程之间竞争资源的类型为IO资源的情况下,将该第一待迁移任务迁移到该第二超线程组中的超线程上。其中,该第一待迁移任务可为运行于该第二处理器核中的待迁移的任务。也就是说,当存在需要由该第二处理器核迁移到该第一处理器核的第一待迁移任务时,调度装置能够根据该任务竞争资源的类型是否与运行于超线程组中各超线程上的任务竞争资源的类型相同,即竞争的是否为同类资源,来为该任务选择迁入的超线程组。如果竞争资源的类型相同,迁入该任务的话会造成同类资源的严重竞争,使得可能无法运行该任务,并会影响该超线程组上其他任务的运行,导致系统整体性能降低。因此,调度装置可通过将需要迁入第一处理器核的任务即该第一待迁移任务迁移到竞争资源的类型不同的超线程组,来避免造成同类资源的严重竞争,使得该第一待迁移任务在不影响其他任务的运行的情况下能够尽快得到运行或处理,从而有助于降低超线程之间的资源竞争,提升了系统整体性能。
进一步可选的,该第一超线程组可以为该至少一个超线程组中负载低于预设的第一阈值的超线程组或为该至少一个超线程组中利用率低于预设的第二阈值的超线程组。进一步可选的,该第二超线程组可以为该至少一个超线程组中负载低于该第一阈值的超线程组或为该至少一个超线程组中利用率低于该第二阈值的超线程组。其中,该负载可以为运行于超线程组中的所有超线程上的所有任务的负载之和;该利用率可以是根据超线程组中的各超线程的利用率确定出的,比如可以是该超线程组中的所有超线程的平均利用率,或者为超线程组的所有超线程的利用率中的最大利用率等等。如果一个超线程的最大利用率为x,则运行于该超线程上面的负载不能超过x*(最大负载=1024)。
进一步可选的,将该第一待迁移任务迁移到超线程组如该第一超线程组或第二超线程组中的超线程上,可以是指将该第一待迁移任务迁移到该超线程组中负载低于某一阈值的超线程中的任一超线程上,或者将该第一待迁移任务迁移到该超线程组中的负载最小的超线程上,本申请不做限定。
例如,如图1所示,在异构场景下,小核中超线程非空闲,因运行于对方异构核即大核上面的任务的负载过低,导致需要将该任务迁移到小核,则该任务可以部署到资源竞争不严重的负载最小超线程组内的负载最小超线程上,比如可确定出负载最小的超线程组,判断该超线程组与迁移过来的任务是不是都属于IO密集型或者CPU密集型,即迁移的任务与该超线程组中的超线程之间竞争资源的类型是否相同,如果不同,则可选择该组。如果相同,则可依次选择其余超线程组中负载最小的超线程组,直至确定出没有同类资源竞争的超线程组。可选的,在确定出迁移任务的超线程组之后,还可选择该超线程组内的负载最小超线程,并将该任务迁移到该负载最小超线程上。又如,调度装置可先确定出第一处理器核中负载小于第一阈值的多个超线程组,并确定其中与该任务竞争资源的类型不同的超线程组,进而可将该任务迁移到该竞争资源的类型不同的超线程组中负载最小的超线程上(如果存在多个负载小于第一阈值且竞争资源的类型不同的超线程组,则可将该任务迁移到其中负载最小的超线程组中负载最小的超线程上,或者迁移到该多个超线程组中负载最小的超线程上,或者迁移到其中利用率最低的超线程组中负载最小的超线程上,此处不一一列举)。其中,该第一阈值(超线程组对应的负载的阈值)不小于上述的某一阈值(超线程对应的负载的阈值)。又如,调度装置可确定出第一处理器核中利用率最低的超线程组,进而判断迁移的任务与该超线程组中的超线程之间竞争资源的类型是否相同,如果不同,则将任务迁移到该超线程组上,如果相同,则可确定出其余超线程组中利用率最低的超线程组,判断该任务与该超线程组的超线程之间是否竞争的是同类资源,直到确定出没有同类资源竞争的超线程组进行任务迁移;或者,调度装置可在第一处理器核中确定出利用率低于预设的第二阈值的一个或多个超线程组,并确定其中与该任务竞争资源的类型不同的超线程组,进而可将该任务迁移到该竞争资源的类型不同的超线程组中负载最小的超线程上(如果存在多个利用率低于第二阈值且竞争资源的类型不同的超线程组,则可将该任务迁移到其中利用率最低的超线程组中负载最小的超线程上,或者迁移到负载最小的超线程组中负载最小的超线程上,或者迁移到该多个超线程组中负载最小的超线程上)。或者,调度装置可将任务迁移到该至少一个超线程组中负载低于该第一阈值或利用率低于该第二阈值的超线程组中,竞争资源的类型不同的超线程组的超线程上;或者,调度装置可将任务迁移到该至少一个超线程组中负载低于该第一阈值且利用率低于该第二阈值的超线程组中,竞争资源的类型不同的超线程组的超线程上,等等,此处不赘述。
可选的,任务的类型如该任务是属于IO密集型还是CPU密集型可以通过计算该任务的资源密集指数如IO-Bound(I/O密集型程度)和CPU-Bound(CPU密集型程度)确定出。例如,如果计算出的IO-Bound高于CPU-Bound,则该任务属于IO密集型任务;如果计算出的IO-Bound低于CPU-Bound,则该任务属于CPU密集型任务。具体的,在计算该资源密集指数,可以通过CPU中的性能监视单元(Performance Monitor Unit,缩写:PMU)来确定,该PMU可预先配置于CPU中,该PMU能够通过访问物理机中的寄存器读取到CPU的性能数据。比如计算IO-Bound时,假设CPU读或写内存I/O导致等待的PMU事件分别为event1、event2,任务执行的cycle数为ncycles,则任务运行期间的平均IO-Bound为(event1+even2)/ncycles。计算CPU-Bound时,可以从PMU中读出一些事件并可以通过这些事件计算得出,比如任务运行期间的平均CPU-Bound为(exec_stall_cycle-(memstall_anyload+memstall_store+resource_bound))/ncycles;其中,exec_stall_cycle为CPU在每个cycle发射的固定数目的微操作,memstall_anyload和memstall_store为I/O内存读写受限时的PMU事件,resource_bound为CPU内部的微架构的资源限制时的PMU事件。由此,任务被调度开始运行时候可读取对应的PMU事件,在被调度出去后,可根据任务运行期间增加的PMU事件计数计算出任务本次的IO-Bound和CPU-Bound。进一步的,为了提升计算出的IO-Bound和CPU-Bound的准确性,调度装置可将本次计算出来的值和上次计算出来的值分别乘以预设的系数,得到任务最终的IO-Bound和CPU-Bound值。例如,最终的CPU-Bound=(CPU-Bound(本次)*x+CPU-Bound(上次)*(1-x)),最终的IO-Bound=(IO-Bound(本次)*y+IO-Bound(上次)*(1-y)),并可把计算出来的最终的IO-Bound和CPU-Bound分别写到任务的结构如task_struct中。其中x和y可预先设置得到,该x和y可以相同也可以不同。或者该IO-Bound和CPU-Bound还可通过其他方式确定出,本申请不做限定。从而能够确定出该任务是属于IO密集型还是CPU密集型任务。进一步可选的,该超线程组中的超线程之间竞争的资源可以是指IO资源或CPU资源,比如可通过计算该超线程组的IO-Bound以及CPU-Bound确定出。具体的,超线程组的IO-Bound和CPU-Bound可以根据超线程组内所有任务的IO-Bound和CPU-Bound的值确定出。例如,将整个超线程组的任务的平均IO-Bound和平均CPU-Bound作为该超线程组的IO-Bound和CPU-Bound,如将所有任务的IO-Bound的和除以任务个数作为该超线程组的平均IO-Bound,该平均CPU-Bound的计算方式类似;或者将该超线程组的所有任务的IO-Bound之和作为该超线程组的IO-Bound,将该超线程组的所有任务的CPU-Bound之和作为该超线程组的CPU-Bound,等等,本申请不做限定。从而可确定出出整个超线程组或者单个CPU的IO-Bound和/或CPU-Bound,进而可确定出该超线程组的竞争资源的类型,例如,如果该超线程组的IO-Bound高于CPU-Bound,则该超线程组属于IO密集型任务;如果该超线程组的IO-Bound低于CPU-Bound,则该超线程组属于CPU密集型任务。
在同构场景下,如图2所示,或者在异构的超线程组之间即SMT_GROUP的任务调度的场景下,如图1所示,调度装置进行负载均衡时,可能由于第二处理器核中的任务过多导致无法及时处理,而第一处理器核的超线程相对空闲,选择将该任务迁移到第一处理器核,此时,调度装置为该任务选择超线程组和超线程的方式与上述的异构场景类似,此处不赘述。
进一步可选的,在该至少一个超线程组中存在空闲的超线程且该空闲的超线程所在的超线程组的利用率高于预设的第三阈值的情况下,该调度装置可禁止将第一待迁移任务迁移到该第一处理器核。其中,该空闲的超线程可以为未运行任务的超线程,且该第一待迁移任务为运行于该第二处理器核中的待迁移的任务。具体的,当第一处理器核存在空闲超线程时,可作为一个调度时机,确定是否允许运行于第二处理器核中的任务迁移过来。调度装置可判断空闲的超线程所在的组是否有额外的能力处理该任务,比如判断该空闲的超线程组的利用率是否高于预设的第三阈值,并在高于该第三阈值的情况,确定该超线程组没有能力处理该任务,则可拒绝该任务迁移过来,即禁止将该任务迁移到第一处理器核,从而有助于避免迁移任务无法及时得到运行;如果该超线程组的利用率不高于该第三阈值,则可确定该超线程组有能力处理该任务。进一步的,在确定该超线程组有能力处理该任务之后,还可判断该任务迁移过来之后,是否会造成该超线程组发生资源严重竞争,即判断该任务是否和该超线程组的超线程竞争资源的类型相同,并在不同时再迁移到该超线程组中,否则也可禁止迁移。从而在同构或者异构的超线程组之间任务调度场景下,任务可优先在超线程组所在的调度域做负载均衡,这就提高了资源如cache的命中率;在异构场景下,能够通过将超线程组看成一个整体来进行任务调度,则提高了系统整体性能。
可选的,在对第二待迁移任务进行调度时,调度装置还可在该至少一个超线程组中存在资源密集指数高于预设的第四阈值,且负载大于预设的第五阈值的第三超线程组的情况下,将第二待迁移任务迁移到该第二处理器核。其中,该第二待迁移任务可以为运行于该第一处理器核的待迁移的任务,且该第二待迁移任务可以为运行于该第三超线程组的任务中资源密集指数最高的任务。从而有助于负载大的任务及时得到运行,且有助于降低超线程间的资源竞争。
进一步可选的,在对第二待迁移任务进行调度时,调度装置还可在该至少一个超线程组中不存在资源密集指数高于预设的第四阈值的超线程组,或者不存在负载大于预设的第五阈值的超线程组的情况下,将第二待迁移任务迁移到该第二处理器核。其中,该第二待迁移任务可以为运行于该第一处理器核的待迁移的任务,且该第二待迁移任务可以为该至少一个超线程组中负载最大的任务。例如,在异构场景下,可能由于对方异构核如大核空闲导致运行于超线程上的任务迁出,则调度装置在选择任务进行迁出时,可确定各超线程组的资源密集指数如IO-bound或者CPU-bound是否高于第四阈值,以及确定超线程组的整体负载是否大于第五阈值(具体可先确定各超线程组的资源密集指数是否高于第四阈值,进而再确定高于该第四阈值的超线程组的负载是否大于第五阈值;或者先确定各超线程组的负载是否大于第五阈值,进而再确定负载大于第五阈值的超线程组的资源密集指数是否高于第四阈值;或者可分别确定各超线程组的资源密集指数是否高于第四阈值,以及确定各超线程组的负载是否大于第五阈值),如果某一超线程组的资源密集指数和负载均达到对应的阈值,调度装置可选择该超线程组中IO-bound或者CPU-bound最高的一个任务进行迁出,即迁移到第二处理器核的CPU或超线程上。如果不存在资源密集指数和负载均达到对应的阈值的超线程组,调度装置可选择运行于各超线程组中负载最大的任务迁出。其中,该迁出的负载最大的任务可以是第一处理器核种负载最大的超线程组中负载最大超线程上负载最大的任务(即最重超线程组中最重超线程上的最重任务),或者可以是该第一处理器核中所有超线程中负载最大超线程上的负载最大的任务,或者可以是第一处理器核中运行于超线程上的所有任务中的负载最大的任务,本申请不做限定。从而有助于负载大的任务及时得到运行。
可选的,在为新任务选择部署的超线程或CPU时,调度装置还可在第四超线程组中运行有与新任务属于同一进程的任务的情况下,将该新任务部署到该第四超线程组中的超线程上。其中,该第四超线程组可以为该至少一个超线程组中利用率低于预设的第六阈值的超线程组。进一步可选的,如果该至少一个超线程组中包括多个该第四超线程组,该调度装置可以将该新任务部署到多个该第四超线程组中,负载最小的超线程组中的超线程上,或者部署到该多个第四超线程组的所有超线程中负载最小的超线程上。进一步可选的,将任务部署到超线程组的超线程上时,可以确定出该超线程组中负载最小的超线程,并将任务部署到该超线程组中负载最小的超线程上。具体的,调度装置在为新任务分配超线程时,可先判断第一处理器核的超线程组是否有能力处理该新任务,比如判断各超线程组中是否存在利用率低于预设的第六阈值的超线程组,并在存在该超线程组时,确定该超线程组中的超线程上是否运行有与该新任务属于同一进程的任务,即运行于该超线程组的超线程上的任务是否与该新任务属于同一地址空间。如果属于同一进程,则可将该新任务部署到该超线程组组内负载最小的超线程上,从而能够提高使用的相同资源如cache的命中率,对于超线程组内一些其他任务已读取的数据,则可直接获取得到,而不必重新读取,这就提升了任务的运行效率。进一步的,如果不存在运行有与该新任务属于同一进程的任务的超线程组,则可将该新任务部署到该利用率高于第六阈值的超线程组中负载最小的超线程上,或者可将该新任务部署到第二处理器核如异构的大核上。如果不存在利用率高于第六阈值的超线程组,调度装置可将该新任务部署到第二处理器核如大核上。从而能够通过将新任务优先部署到cache hot的超线程运行,来提升cache的命中率。
其中,上述的第一阈值、第二阈值、第三阈值、第四阈值、第五阈值、第六阈值等可预先设置得到。该第三阈值可大于或等于该第二阈值和第六阈值,该第二阈值可以大于或小于或等于该第六阈值,比如该第二阈值、第三阈值和第六阈值可以相同;该第五阈值可大于或等于该第一阈值,本申请不做限定。
应理解,当该第二处理器核运行有多个超线程时,也可对该第二处理器核运行的多个超线程进行分组,其分组方式和任务调度方式可参照上述第一处理器核中超线程的分组方式和基于超线程组的任务调度方式,此处不赘述。
在本发明实施例中,在按照超线程的资源共享关系分组得到多个超线程组之后,调度装置能够根据超线程组整体的运行状态来进行任务调度,在超线程上部署新任务、迁入和迁出任务均是以超线程组为整体进行考虑,确保不会造成组内资源严重竞争且任务能够得到及时的调度,使得充分利用了超线程并发的优势来提高进程运行的效率,有助于减少因超线程之间资源严重竞争比如竞争同一种资源cache或运算逻辑导致的系统整体性能低的问题,降低了任务间的资源竞争,实现了资源的合理分配,提升了系统整体性能。
请参见图6,图6是本发明实施例提供的一种调度装置的结构示意图。具体的,本发明实施例的装置可具体设置于上述的物理机中。该物理机包括处理电路,该处理电路包括第一处理器核,该第一处理器核中运行有多个超线程,且该多个超线程共用该第一处理器核的多种资源。参阅图6所示,该调度装置600可包括:处理单元601和调度单元602。其中,这些单元可以执行上述方法示例中调度装置的相应功能。例如,处理单元601,可用于根据该多个超线程使用的资源的标识对该多个超线程进行分组,以得到至少一个超线程组,其中,该至少一个超线程组中,超线程组内的超线程所使用的资源的标识相同;调度单元602,可用于根据该至少一个超线程组中一个或者多个超线程组的运行状态参数,变更该多个超线程中,至少一个超线程上运行的任务,该运行状态参数包括负载、利用率、竞争资源的类型和资源密集指数中的一项或多项。
其中,一个超线程组的负载对应于该超线程组中运行的所有任务,该利用率用于表示一超线程组使用分配给该超线程组的该第一处理器核的资源的程度,该竞争资源的类型用于表示一超线程组的超线程之间竞争的资源的类型,该资源密集指数用于表示一超线程组的超线程之间竞争某一资源的程度。
可选的,该物理机的处理电路中还可包括第二处理器核。
可选的,调度单元602,可具体用于在第一待迁移任务为输入输出IO密集型任务,且该至少一个超线程组中第一超线程组的竞争资源的类型为中央处理器CPU的处理资源的情况下,将第一待迁移任务迁移到该第一超线程组中的超线程上;在该第一待迁移任务为CPU密集型任务,且该至少一个超线程组中的第二超线程组的竞争资源的类型为IO的处理资源的情况下,将该第一待迁移任务迁移到该第二超线程组中的超线程上。其中,该第一待迁移任务为运行于该第二处理器核中的待迁移的任务。
进一步可选的,该第一超线程组可以为该至少一个超线程组中负载低于预设的第一阈值的超线程组或为该至少一个超线程组中利用率低于预设的第二阈值的超线程组。进一步可选的,该第二超线程组可以为该至少一个超线程组中负载低于预设的第一阈值的超线程组或为该至少一个超线程组中利用率低于预设的第二阈值的超线程组。
可选的,调度单元602,可具体用于在该至少一个超线程组中存在空闲的超线程且该空闲的超线程所在的超线程组的利用率高于预设的第三阈值的情况下,禁止将第一待迁移任务迁移到该第一处理器核,该空闲的超线程为未运行任务的超线程,以及,该第一待迁移任务为运行于该第二处理器核中的待迁移的任务。
可选的,调度单元602,可具体用于在该至少一个超线程组中存在资源密集指数高于预设的第四阈值,且负载大于预设的第五阈值的第三超线程组的情况下,将第二待迁移任务迁移到该第二处理器核,该第二待迁移任务为运行于该第一处理器核的待迁移的任务,且该第二待迁移任务为运行于该第三超线程组的任务中该资源密集指数最高的任务。
可选的,调度单元602,可具体用于在该至少一个超线程组中不存在资源密集指数高于预设的第四阈值的超线程组,或者不存在负载大于预设的第五阈值的超线程组的情况下,将第二待迁移任务迁移到该第二处理器核,该第二待迁移任务为运行于该第一处理器核的待迁移的任务,且该第二待迁移任务为该至少一个超线程组中负载最大的任务。
可选的,调度单元602,可具体用于在第四超线程组中运行有与该新任务属于同一进程的任务的情况下,将新任务部署到该第四超线程组中的超线程上,该第四超线程组为该至少一个超线程组中利用率低于预设的第六阈值的超线程组。
进一步可选的,调度单元602,可具体用于将该新任务部署到多个该第四超线程组中,负载最小的超线程组中的超线程上。
需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。本发明实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
可选的,该调度装置可通过上述单元实现上述图1至图5所示实施例中的任务调度方法中调度装置执行的部分或全部步骤。应理解,本发明实施例是对应方法实施例的装置实施例,对方法实施例的描述,也适用于本发明实施例。
请参见图7,图7是本发明实施例提供的一种物理机的结构示意图。具体的,如图7所示,本发明实施例的该物理机700可包括:处理电路701,该处理电路701可包括至少一个处理器,比如该处理电路701可包括上述的第一处理器核和第二处理器核对应的CPU。可选的,该物理机还可包括存储介质702,该存储介质702可以与处理电路701连接。进一步可选的,该物理机还可包括用户接口703等等,该用户接口703可以和处理电路701连接,可用于接收用户的各种操作指令。例如,该用户接口703、存储介质702、以及处理电路701之间可以通过总线704进行数据连接,比如总线704可以是外设部件互连标准(peripheralcomponent interconnect,缩写:PCI)总线或扩展工业标准结构(extended industrystandard architecture,缩写:EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者上述的各元器件也可以通过其他方式进行数据连接。本实施例中以总线连接进行说明。
可选的,该处理电路包括的处理器可以是中央处理器(英文:Central ProcessingUnit,缩写:CPU),通用处理器,数字信号处理器(Digital Signal Processor,缩写:DSP),网络处理器(英文:Network Processor,缩写:NP)或CPU和NP的组合,本申请不做限定。
该物理机700可进一步包括芯片,该处理电路701可集成该芯片上,该处理电路701可包括专用集成电路(Application-Specific Integrated Circuit,缩写:ASIC),可编程逻辑器件(Programmable Logic Device,缩写:PLD)等或其组合。上述PLD可以是复杂可编程逻辑器件(Complex Programmable Logic Device,缩写:CPLD),现场可编程逻辑门阵列(Field-Programmable Gate Array,缩写:FPGA),通用阵列逻辑(Generic Array Logic,缩写:GAL)或其任意组合。该至少一个处理器可集成在该处理电路上。
可选的,该存储介质702可以包括各种存储器,如易失性存储器(VolatileMemory),例如随机存取存储器(Random-Access Memory,缩写:RAM);也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(Hard DiskDrive,缩写:HDD)或固态硬盘(Solid-State Drive,缩写:SSD);还可以包括上述种类的存储器的任意组合。该存储介质702可以用于存储程序指令和数据的至少一项。比如,该处理电路701(具体可以是处理器)可调用该存储介质702中存储的程序指令,可以执行图1至图5所示实施例中的一个或多个步骤,或其中可选的实施方式,使得该物理机实现上述方法中的功能。例如,该物理机可通过上述元器件实现上述图1至图5对应实施例中的任务调度方法中的部分或全部步骤。
具体的,该第一处理器核中运行有多个超线程,该多个超线程可共用该第一处理器核的多种资源,该处理电路701(具体可以是该处理电路中的处理器)可用于执行:
根据该多个超线程使用的资源的标识对该多个超线程进行分组,以得到至少一个超线程组;根据该至少一个超线程组中一个或者多个超线程组的运行状态参数,变更该多个超线程中,至少一个超线程上运行的任务。其中,该至少一个超线程组中,超线程组内的超线程所使用的资源的标识相同,该运行状态参数包括负载、利用率、竞争资源的类型和资源密集指数中的一项或多项,其中,一个超线程组的负载对应于该超线程组中运行的所有任务,该利用率用于表示一超线程组使用分配给该超线程组的该第一处理器核的资源的程度,该竞争资源的类型用于表示一超线程组的超线程之间竞争的资源的类型,该资源密集指数用于表示一超线程组的超线程之间竞争某一资源的程度。
可选的,该处理电路701在执行根据该至少一个超线程组中一个或者多个超线程组的运行状态参数,变更该多个超线程中,至少一个超线程上运行的任务时,可具体用于执行:在第一待迁移任务为输入输出IO密集型任务,且该至少一个超线程组中第一超线程组的竞争资源的类型为中央处理器CPU的处理资源的情况下,将第一待迁移任务迁移到该第一超线程组中的超线程上;在该第一待迁移任务为CPU密集型任务,且该至少一个超线程组中的第二超线程组的竞争资源的类型为IO的处理资源的情况下,将该第一待迁移任务迁移到该第二超线程组中的超线程上。其中,该第一待迁移任务为运行于该第二处理器核中的待迁移的任务。
可选的,该第一超线程组为该至少一个超线程组中负载低于预设的第一阈值的超线程组和/或为该至少一个超线程组中利用率低于预设的第二阈值的超线程组。进一步可选的,该第二超线程组为该至少一个超线程组中负载低于该第一阈值的超线程组和/或为该至少一个超线程组中利用率低于该第二阈值的超线程组。
可选的,该处理电路701在执行根据该至少一个超线程组中一个或者多个超线程组的运行状态参数,变更该多个超线程中,至少一个超线程上运行的任务时,可具体用于执行:在该至少一个超线程组中存在空闲的超线程且该空闲的超线程所在的超线程组的利用率高于预设的第三阈值的情况下,禁止将第一待迁移任务迁移到该第一处理器核,该空闲的超线程为未运行任务的超线程,以及,该第一待迁移任务为运行于该第二处理器核中的待迁移的任务。
可选的,该处理电路701在执行根据该至少一个超线程组中一个或者多个超线程组的运行状态参数,变更该多个超线程中,至少一个超线程上运行的任务时,可具体用于执行:在该至少一个超线程组中存在资源密集指数高于预设的第四阈值,且负载大于预设的第五阈值的第三超线程组的情况下,将第二待迁移任务迁移到该第二处理器核,该第二待迁移任务为运行于该第一处理器核的待迁移的任务,且该第二待迁移任务为运行于该第三超线程组的任务中该资源密集指数最高的任务。
可选的,该处理电路701在执行根据该至少一个超线程组中一个或者多个超线程组的运行状态参数,变更该多个超线程中,至少一个超线程上运行的任务时,可具体用于执行:在该至少一个超线程组中不存在资源密集指数高于预设的第四阈值的超线程组,或者不存在负载大于预设的第五阈值的超线程组的情况下,将第二待迁移任务迁移到该第二处理器核,该第二待迁移任务为运行于该第一处理器核的待迁移的任务,且该第二待迁移任务为该至少一个超线程组中负载最大的任务。
可选的,该处理电路701在执行根据该至少一个超线程组中一个或者多个超线程组的运行状态参数,变更该多个超线程中,至少一个超线程上运行的任务时,可具体用于执行:在第四超线程组中运行有与该新任务属于同一进程的任务的情况下,将新任务部署到该第四超线程组中的超线程上,该第四超线程组为该至少一个超线程组中利用率低于预设的第六阈值的超线程组。
进一步可选的,该至少一个超线程组中包括多个该第四超线程组,该处理电路701在执行将新任务部署到该第四超线程组中的超线程上时,可具体用于执行:将该新任务部署到多个该第四超线程组中,负载最小的超线程组中的超线程上。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(ReadOnly Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于终端中。当然,处理器和存储介质也可以作为分立组件存在于终端中。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
还应理解,本文中涉及的第一、第二、第三以及各种数字编号仅为描述方便进行的区分,并不用来限制本发明实施例的范围。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block)和步骤(step),能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
Claims (20)
1.一种任务调度方法,所述方法应用于物理机,所述物理机的处理电路中包括第一处理器核,其特征在于,所述第一处理器核中运行有多个超线程,所述多个超线程共用所述第一处理器核的多种资源,所述方法包括:
根据所述多个超线程使用的资源的标识对所述多个超线程进行分组,以得到至少一个超线程组,其中,所述至少一个超线程组中,超线程组内的超线程所使用的资源的标识相同;
根据所述至少一个超线程组中一个或者多个超线程组的运行状态参数,变更所述多个超线程中,至少一个超线程上运行的任务,所述运行状态参数包括负载、利用率、竞争资源的类型和资源密集指数中的一项或多项,其中,一个超线程组的负载对应于该超线程组中运行的所有任务,所述利用率用于表示一超线程组使用分配给该超线程组的所述第一处理器核的资源的程度,所述竞争资源的类型用于表示一超线程组的超线程之间竞争的资源的类型,所述资源密集指数用于表示一超线程组的超线程之间竞争某一资源的程度。
2.根据权利要求1所述的方法,其特征在于,所述物理机的处理电路中还包括第二处理器核;
所述根据所述至少一个超线程组中一个或者多个超线程组的运行状态参数,变更所述多个超线程中,至少一个超线程上运行的任务,包括:
在第一待迁移任务为输入输出IO密集型任务,且所述至少一个超线程组中第一超线程组的竞争资源的类型为中央处理器CPU的处理资源的情况下,将第一待迁移任务迁移到所述第一超线程组中的超线程上;
在所述第一待迁移任务为CPU密集型任务,且所述至少一个超线程组中的第二超线程组的竞争资源的类型为IO的处理资源的情况下,将所述第一待迁移任务迁移到所述第二超线程组中的超线程上;
其中,所述第一待迁移任务为运行于所述第二处理器核中的待迁移的任务。
3.根据权利要求2所述的方法,其特征在于,所述第一超线程组为所述至少一个超线程组中负载低于预设的第一阈值的超线程组,所述第二超线程组为所述至少一个超线程组中负载低于所述第一阈值的超线程组。
4.根据权利要求2所述的方法,其特征在于,所述第一超线程组为所述至少一个超线程组中利用率低于预设的第二阈值的超线程组,所述第二超线程组为所述至少一个超线程组中利用率低于所述第二阈值的超线程组。
5.根据权利要求1所述的方法,其特征在于,所述物理机的处理电路中还包括第二处理器核;
所述根据所述至少一个超线程组中一个或者多个超线程组的运行状态参数,变更所述多个超线程中,至少一个超线程上运行的任务,包括:
在所述至少一个超线程组中存在空闲的超线程且所述空闲的超线程所在的超线程组的利用率高于预设的第三阈值的情况下,禁止将第一待迁移任务迁移到所述第一处理器核,所述空闲的超线程为未运行任务的超线程,以及,所述第一待迁移任务为运行于所述第二处理器核中的待迁移的任务。
6.根据权利要求1所述的方法,其特征在于,所述物理机的处理电路中还包括第二处理器核;
所述根据所述至少一个超线程组中一个或者多个超线程组的运行状态参数,变更所述多个超线程中,至少一个超线程上运行的任务,包括:
在所述至少一个超线程组中存在资源密集指数高于预设的第四阈值,且负载大于预设的第五阈值的第三超线程组的情况下,将第二待迁移任务迁移到所述第二处理器核,所述第二待迁移任务为运行于所述第一处理器核的待迁移的任务,且所述第二待迁移任务为运行于所述第三超线程组的任务中所述资源密集指数最高的任务。
7.根据权利要求1所述的方法,其特征在于,所述物理机的处理电路中还包括第二处理器核;
所述根据所述至少一个超线程组中一个或者多个超线程组的运行状态参数,变更所述多个超线程中,至少一个超线程上运行的任务,包括:
在所述至少一个超线程组中不存在资源密集指数高于预设的第四阈值的超线程组,或者不存在负载大于预设的第五阈值的超线程组的情况下,将第二待迁移任务迁移到所述第二处理器核,所述第二待迁移任务为运行于所述第一处理器核的待迁移的任务,且所述第二待迁移任务为所述至少一个超线程组中负载最大的任务。
8.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个超线程组中一个或者多个超线程组的运行状态参数,变更所述多个超线程中,至少一个超线程上运行的任务,包括:
在第四超线程组中运行有与所述新任务属于同一进程的任务的情况下,将新任务部署到所述第四超线程组中的超线程上,所述第四超线程组为所述至少一个超线程组中利用率低于预设的第六阈值的超线程组。
9.根据权利要求8所述的方法,其特征在于,所述至少一个超线程组中包括多个所述第四超线程组,所述将新任务部署到所述第四超线程组中的超线程上,包括:
将所述新任务部署到多个所述第四超线程组中,负载最小的超线程组中的超线程上。
10.一种调度装置,所述调度设置于物理机,所述物理机的处理电路中包括第一处理器核,其特征在于,所述第一处理器核中运行有多个超线程,所述多个超线程共用所述第一处理器核的多种资源,所述调度装置包括:处理单元和调度单元;
所述处理单元,用于根据所述多个超线程使用的资源的标识对所述多个超线程进行分组,以得到至少一个超线程组,其中,所述至少一个超线程组中,超线程组内的超线程所使用的资源的标识相同;
所述调度单元,用于根据所述至少一个超线程组中一个或者多个超线程组的运行状态参数,变更所述多个超线程中,至少一个超线程上运行的任务,所述运行状态参数包括负载、利用率、竞争资源的类型和资源密集指数中的一项或多项,其中,一个超线程组的负载对应于该超线程组中运行的所有任务,所述利用率用于表示一超线程组使用分配给该超线程组的所述第一处理器核的资源的程度,所述竞争资源的类型用于表示一超线程组的超线程之间竞争的资源的类型,所述资源密集指数用于表示一超线程组的超线程之间竞争某一资源的程度。
11.根据权利要求10所述的调度装置,其特征在于,所述物理机的处理电路中还包括第二处理器核;
所述调度单元,具体用于在第一待迁移任务为输入输出IO密集型任务,且所述至少一个超线程组中第一超线程组的竞争资源的类型为中央处理器CPU的处理资源的情况下,将第一待迁移任务迁移到所述第一超线程组中的超线程上;在所述第一待迁移任务为CPU密集型任务,且所述至少一个超线程组中的第二超线程组的竞争资源的类型为IO的处理资源的情况下,将所述第一待迁移任务迁移到所述第二超线程组中的超线程上;其中,所述第一待迁移任务为运行于所述第二处理器核中的待迁移的任务。
12.根据权利要求11所述的调度装置,其特征在于,所述第一超线程组为所述至少一个超线程组中负载低于预设的第一阈值的超线程组,所述第二超线程组为所述至少一个超线程组中负载低于所述第一阈值的超线程组。
13.根据权利要求11所述的调度装置,其特征在于,所述第一超线程组为所述至少一个超线程组中利用率低于预设的第二阈值的超线程组,所述第二超线程组为所述至少一个超线程组中利用率低于所述第二阈值的超线程组。
14.根据权利要求10所述的调度装置,其特征在于,所述物理机的处理电路中还包括第二处理器核;
所述调度单元,具体用于在所述至少一个超线程组中存在空闲的超线程且所述空闲的超线程所在的超线程组的利用率高于预设的第三阈值的情况下,禁止将第一待迁移任务迁移到所述第一处理器核,所述空闲的超线程为未运行任务的超线程,以及,所述第一待迁移任务为运行于所述第二处理器核中的待迁移的任务。
15.根据权利要求10所述的调度装置,其特征在于,所述物理机的处理电路中还包括第二处理器核;
所述调度单元,具体用于在所述至少一个超线程组中存在资源密集指数高于预设的第四阈值,且负载大于预设的第五阈值的第三超线程组的情况下,将第二待迁移任务迁移到所述第二处理器核,所述第二待迁移任务为运行于所述第一处理器核的待迁移的任务,且所述第二待迁移任务为运行于所述第三超线程组的任务中所述资源密集指数最高的任务。
16.根据权利要求10所述的调度装置,其特征在于,所述物理机的处理电路中还包括第二处理器核;
所述调度单元,具体用于在所述至少一个超线程组中不存在资源密集指数高于预设的第四阈值的超线程组,或者不存在负载大于预设的第五阈值的超线程组的情况下,将第二待迁移任务迁移到所述第二处理器核,所述第二待迁移任务为运行于所述第一处理器核的待迁移的任务,且所述第二待迁移任务为所述至少一个超线程组中负载最大的任务。
17.根据权利要求10所述的调度装置,其特征在于,
所述调度单元,具体用于在第四超线程组中运行有与所述新任务属于同一进程的任务的情况下,将新任务部署到所述第四超线程组中的超线程上,所述第四超线程组为所述至少一个超线程组中利用率低于预设的第六阈值的超线程组。
18.根据权利要求17所述的调度装置,其特征在于,所述至少一个超线程组中包括多个所述第四超线程组,所述调度单元将新任务部署到所述第四超线程组中的超线程上时,具体用于:
将所述新任务部署到多个所述第四超线程组中,负载最小的超线程组中的超线程上。
19.一种物理机,其特征在于,所述物理机包括:处理电路和存储器,所述处理电路包括至少一个处理器;
所述存储器用于存储程序指令;
所述处理器用于调用所述存储器中的程序指令执行如权利要求1-9任一项所述的任务调度方法。
20.一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-9任一项所述的任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711483871.3A CN109992366B (zh) | 2017-12-29 | 2017-12-29 | 任务调度方法及调度装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711483871.3A CN109992366B (zh) | 2017-12-29 | 2017-12-29 | 任务调度方法及调度装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109992366A true CN109992366A (zh) | 2019-07-09 |
CN109992366B CN109992366B (zh) | 2023-08-22 |
Family
ID=67110540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711483871.3A Active CN109992366B (zh) | 2017-12-29 | 2017-12-29 | 任务调度方法及调度装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109992366B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541781A (zh) * | 2020-07-07 | 2020-08-14 | 中国人民解放军国防科技大学 | 一种密集网络中移动设备的分布式协同任务调度方法 |
CN112579299A (zh) * | 2020-12-28 | 2021-03-30 | 北京紫光展锐通信技术有限公司 | 资源调度方法、电子设备及存储介质 |
CN112905347A (zh) * | 2021-03-04 | 2021-06-04 | 北京澎思科技有限公司 | 数据处理方法、设备及存储介质 |
CN115269206A (zh) * | 2022-09-27 | 2022-11-01 | 湖南三湘银行股份有限公司 | 一种基于资源分配的数据处理方法及平台 |
CN115718665A (zh) * | 2023-01-10 | 2023-02-28 | 北京卡普拉科技有限公司 | 异步i/o线程处理器资源调度控制方法、装置、介质及设备 |
WO2024087869A1 (zh) * | 2022-10-24 | 2024-05-02 | 普源精电科技股份有限公司 | 示波器及数据处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050172293A1 (en) * | 2004-01-27 | 2005-08-04 | Network Appliance, Inc. | Method and apparatus for allocating resources in a shared resource processor |
WO2015034506A1 (en) * | 2013-09-05 | 2015-03-12 | TidalScale, Inc. | Selective resource migration |
CN104995604A (zh) * | 2015-03-03 | 2015-10-21 | 华为技术有限公司 | 虚拟机的资源分配方法及装置 |
US20160378545A1 (en) * | 2015-05-10 | 2016-12-29 | Apl Software Inc. | Methods and architecture for enhanced computer performance |
CN106484537A (zh) * | 2016-09-30 | 2017-03-08 | 网易(杭州)网络有限公司 | 一种cpu核资源的分配方法和设备 |
-
2017
- 2017-12-29 CN CN201711483871.3A patent/CN109992366B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050172293A1 (en) * | 2004-01-27 | 2005-08-04 | Network Appliance, Inc. | Method and apparatus for allocating resources in a shared resource processor |
WO2015034506A1 (en) * | 2013-09-05 | 2015-03-12 | TidalScale, Inc. | Selective resource migration |
CN104995604A (zh) * | 2015-03-03 | 2015-10-21 | 华为技术有限公司 | 虚拟机的资源分配方法及装置 |
US20160378545A1 (en) * | 2015-05-10 | 2016-12-29 | Apl Software Inc. | Methods and architecture for enhanced computer performance |
CN106484537A (zh) * | 2016-09-30 | 2017-03-08 | 网易(杭州)网络有限公司 | 一种cpu核资源的分配方法和设备 |
Non-Patent Citations (1)
Title |
---|
何文婷等: "HDAS:异构集群上Hadoop+框架中的动态亲和性调度", 《高技术通讯》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541781A (zh) * | 2020-07-07 | 2020-08-14 | 中国人民解放军国防科技大学 | 一种密集网络中移动设备的分布式协同任务调度方法 |
CN111541781B (zh) * | 2020-07-07 | 2020-10-16 | 中国人民解放军国防科技大学 | 一种密集网络中移动设备的分布式协同任务调度方法 |
CN112579299A (zh) * | 2020-12-28 | 2021-03-30 | 北京紫光展锐通信技术有限公司 | 资源调度方法、电子设备及存储介质 |
CN112579299B (zh) * | 2020-12-28 | 2022-11-18 | 北京紫光展锐通信技术有限公司 | 资源调度方法、电子设备及存储介质 |
CN112905347A (zh) * | 2021-03-04 | 2021-06-04 | 北京澎思科技有限公司 | 数据处理方法、设备及存储介质 |
CN115269206A (zh) * | 2022-09-27 | 2022-11-01 | 湖南三湘银行股份有限公司 | 一种基于资源分配的数据处理方法及平台 |
WO2024087869A1 (zh) * | 2022-10-24 | 2024-05-02 | 普源精电科技股份有限公司 | 示波器及数据处理方法 |
CN115718665A (zh) * | 2023-01-10 | 2023-02-28 | 北京卡普拉科技有限公司 | 异步i/o线程处理器资源调度控制方法、装置、介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109992366B (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109992366A (zh) | 任务调度方法及调度装置 | |
US10977068B2 (en) | Minimizing impact of migrating virtual services | |
CN103516536B (zh) | 基于线程数量限制的服务器业务请求并行处理方法及系统 | |
CN103729248B (zh) | 一种基于缓存感知的确定待迁移任务的方法和装置 | |
EP2466460B1 (en) | Compiling apparatus and method for a multicore device | |
US9417935B2 (en) | Many-core process scheduling to maximize cache usage | |
CN104049712B (zh) | 用于计算机系统的功率管理方法和系统 | |
CN107526645B (zh) | 一种通信优化方法及系统 | |
KR20180053359A (ko) | 다중-버전형 태스크들의 효율적 스케줄링 | |
WO2017105750A1 (en) | Techniques to generate workload performance fingerprints for cloud infrastructure elements | |
CN102779075A (zh) | 一种在多处理器核系统中进行调度的方法、装置及系统 | |
CN105528330A (zh) | 负载均衡的方法、装置、丛集和众核处理器 | |
CN109144710A (zh) | 资源调度方法、装置及计算机可读存储介质 | |
US9374314B2 (en) | QoS aware balancing in data centers | |
CN103562870A (zh) | 异构核心的自动加载平衡 | |
CN103677990B (zh) | 虚拟机实时任务的调度方法、装置和虚拟机 | |
US20180032376A1 (en) | Apparatus and method for group-based scheduling in multi-core processor system | |
CN105893113A (zh) | 虚拟机的管理系统及管理方法 | |
CN110417686A (zh) | 云资源动态调度系统 | |
CN111752710B (zh) | 数据中心pue动态优化方法、系统、设备及可读存储介质 | |
CN107533479A (zh) | 功率知晓调度和功率管理器 | |
CN109840141A (zh) | 基于云监控的线程控制方法、装置、电子设备及存储介质 | |
Maroulis et al. | A holistic energy-efficient real-time scheduler for mixed stream and batch processing workloads | |
Lu et al. | InSTechAH: Cost-effectively autoscaling smart computing hadoop cluster in private cloud | |
CN115543577B (zh) | 基于协变量的Kubernetes资源调度优化方法、存储介质及设备 |
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 |