CN113296934A - 调度进程的方法以及装置 - Google Patents
调度进程的方法以及装置 Download PDFInfo
- Publication number
- CN113296934A CN113296934A CN202011193840.6A CN202011193840A CN113296934A CN 113296934 A CN113296934 A CN 113296934A CN 202011193840 A CN202011193840 A CN 202011193840A CN 113296934 A CN113296934 A CN 113296934A
- Authority
- CN
- China
- Prior art keywords
- node
- awakening
- wake
- data
- scheduling
- 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
- 238000000034 method Methods 0.000 title claims abstract description 308
- 230000008569 process Effects 0.000 title claims abstract description 268
- 230000004044 response Effects 0.000 claims abstract description 13
- 238000005562 fading Methods 0.000 claims description 4
- 230000007423 decrease Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 14
- 230000001186 cumulative effect Effects 0.000 description 13
- 238000004891 communication Methods 0.000 description 5
- 230000002238 attenuated effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000002618 waking effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
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/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
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)
- Power Sources (AREA)
Abstract
本说明书实施例提供调度进程的方法以及装置,其中所述调度进程的方法应用于NUMA架构下的内核调度器,包括:响应于第一进程被第一节点上的进程唤醒,利用所述第一进程被所述第一节点唤醒的历次唤醒数据更新所述第一进程对应于第一节点的唤醒频繁度;判断所述唤醒频繁度是否满足预设调度条件;如果是,则将所述第一进程调度给所述第一节点的CPU执行。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种调度进程的方法。本说明书一个或者多个实施例同时涉及一种调度进程的装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
NUMA(Uniform Memory Access Architecture非一致性内存访问)架构,包括多个节点,每个节点内部拥有多个CPU,节点内部使用共有的内存控制器,节点之间通过互联模块进行连接和信息交互。在NUMA架构下,一个进程被唤醒意味着该进程从阻塞状态变为就绪状态,此时内核调度器需要为该进程选择CPU,并将该进程调度给选择的CPU执行。
目前,进程调度策略一般是考虑CPU的负载来决定推荐给被唤醒的进程的CPU。但是,这些调度策略并未充分利用节点的内部资源,系统整体性能有待提升。
发明内容
有鉴于此,本说明书施例提供了一种调度进程的方法。本说明书一个或者多个实施例同时涉及一种调度进程的装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种调度进程的方法,应用于NUMA架构下的内核调度器,包括:响应于第一进程被第一节点上的进程唤醒,利用所述第一进程被所述第一节点唤醒的历次唤醒数据更新所述第一进程对应于第一节点的唤醒频繁度;判断所述唤醒频繁度是否满足预设调度条件;如果是,则将所述第一进程调度给所述第一节点的CPU执行。
可选地,所述利用所述第一进程被所述第一节点唤醒的历次唤醒数据更新所述第一进程对应于第一节点的唤醒频繁度包括:利用所述第一进程被所述第一节点上的进程唤醒的历次唤醒数据,得到所述第一进程对应于第一节点的分值;利用所述第一进程被所述NUMA架构下的各个节点唤醒的总历次唤醒数据,得到所述第一进程总分值;计算所述第一进程对应于第一节点的分值与所述第一进程总分值的比值,得到所述唤醒频繁度。
可选地,所述判断所述唤醒频繁度是否满足预设调度条件包括:判断是否所述第一进程总分值大于预设总分值阈值且所述比值大于预设比值阈值。
可选地,所述方法还包括:在将所述第一进程调度给所述第一节点的CPU执行的情况下,将用于更新所述第一进程对应于第一节点的唤醒频繁度的唤醒数据重置为初始状态。
可选地,所述方法还包括:在所述第一进程对应于第一节点的唤醒频繁度未满足预设调度条件的情况下,根据所述历次唤醒数据按照其唤醒时间距离当前时间从近到远呈衰减趋势的更新规则,更新所述历次唤醒数据。
可选地,所述根据所述历次唤醒数据按照其唤醒时间距离当前时间从近到远呈衰减趋势的更新规则,更新所述历次唤醒数据包括:将所述历次唤醒数据中每次唤醒数据乘以对应的权重,得到更新的历次唤醒数据,其中,所述权重是根据对应的唤醒时间距离当前时间从近到远衰减地取值的;或者,将所述历次唤醒数据中对应的唤醒时间距离当前时间的时长超过预设有效时长的唤醒数据从所述历次唤醒数据中删除。
可选地,,所述历次唤醒数据包括:唤醒次数或者每次唤醒对应的唤醒时间的记录。
根据本说明书实施例的第二方面,提供了一种调度进程的装置,配置于NUMA架构下的内核调度器,包括:唤醒频繁度更新模块,被配置为响应于第一进程被第一节点上的进程唤醒,利用所述第一进程被所述第一节点唤醒的历次唤醒数据更新所述第一进程对应于第一节点的唤醒频繁度。调度判断模块,被配置为判断所述唤醒频繁度是否满足预设调度条件。调度执行模块,被配置为如果是,则将所述第一进程调度给所述第一节点的CPU执行。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:响应于第一进程被第一节点上的进程唤醒,利用所述第一进程被所述第一节点唤醒的历次唤醒数据更新所述第一进程对应于第一节点的唤醒频繁度;判断所述唤醒频繁度是否满足预设调度条件;如果是,则将所述第一进程调度给所述第一节点的CPU执行。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现本说明书任意一实施例所述调度进程的方法的步骤。
本说明书一个实施例提供了一种调度进程的方法,由于该方法响应于第一进程被第一节点上的进程唤醒,利用所述第一进程被所述第一节点唤醒的历次唤醒数据更新所述第一进程对应于第一节点的唤醒频繁度,判断所述唤醒频繁度是否满足预设调度条件,从而通过唤醒频繁度判断第一进程是否在第一节点上具有显著的唤醒关系,由于显著的唤醒关系往往蕴含着随后的进程之间的信息交换,调度进程到具有显著的唤醒关系的节点上运行能够减少跨节点的信息传递,也能充分利用缓存亲和性等同一个节点的内部资源,节省跨节点访存等通信开销,因此,在判定唤醒频繁度满足预设调度条件的情况下,可以将第一进程调度给第一节点的CPU执行,从而有效提升系统整体性能。
附图说明
图1是本说明书一个实施例提供的一种调度进程的方法的流程图;
图2是本说明书一个实施例提供的进程唤醒关系示意图;
图3是本说明书一个实施例提供的一种调度进程的方法的处理过程流程图;
图4是本说明书一个实施例提供的统计信息示意图;
图5是本说明书一个实施例提供的一种调度进程的装置的结构示意图;
图6是本说明书另一个实施例提供的一种调度进程的装置的结构示意图;
图7是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
内核:操作系统的内部核心程序。
调度器:内核管理决定进程运行的程序。
NUMA节点:组成NUMA架构的单位,同一个节点内的访存要比跨节点访存速度快。
缓存:高速缓冲存储器,命中CACHE的速度比访存速度快。
缓存亲和性:命中缓存中已缓存内容的性质。
在本说明书中,提供了一种调度进程的方法,本说明书同时涉及一种调度进程的装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一个实施例提供的一种调度进程的方法的流程图,包括步骤102至步骤106。
步骤102:响应于第一进程被第一节点上的进程唤醒,利用所述第一进程被所述第一节点唤醒的历次唤醒数据更新所述第一进程对应于第一节点的唤醒频繁度。
其中,所述历次唤醒数据可以包括根据实施场景需要所记录的历次唤醒中能够表现出频繁度的任意相关数据,本说明书实施例对此并不进行限制。例如,所述历次唤醒数据可以包括:唤醒次数,或者,每次唤醒对应的唤醒时间的记录。例如,在包括唤醒次数的情况下,可以根据第一进程被第一节点唤醒的唤醒次数来更新所述唤醒频繁度。再例如,由于唤醒时间距离当前时间越远,时效性越差,因此,在包括每次唤醒对应的唤醒时间的记录的情况下,可以根据所有的记录统计出唤醒次数,从而根据唤醒次数以及对应的唤醒时间的时效性来更新唤醒频繁度。
步骤104:判断所述唤醒频繁度是否满足预设调度条件。
其中,所述预设调度条件可以包括根据实施场景需要所设置的能够表现出显著唤醒关系的任意条件,本说明书实施例对此并不进行限制。例如,所述唤醒频繁度为一个数值的情况下,预设调度条件可以设置为能够表现出显著唤醒关系的数值阈值范围。再例如,所述唤醒频繁度为多个数值的情况下,预设调度条件可以设置为对应的、能够表现出显著唤醒关系的多个数值阈值范围,或者,设置为包括了多个数值对应的变量及变量之间的运算关系的表达式,并针对表达式设置出能够表现出显著唤醒关系的表达式结果阈值范围。
步骤106:如果是,则将所述第一进程调度给所述第一节点的CPU执行。
可见,由于该方法响应于第一进程被第一节点上的进程唤醒,利用所述第一进程被所述第一节点唤醒的历次唤醒数据更新所述第一进程对应于第一节点的唤醒频繁度,判断所述唤醒频繁度是否满足预设调度条件,从而通过唤醒频繁度判断第一进程是否在第一节点上具有显著的唤醒关系,由于显著的唤醒关系往往蕴含着随后的进程之间的信息交换,调度进程到具有显著的唤醒关系的节点上运行能够减少跨节点的信息传递,也能充分利用缓存亲和性等同一个节点的内部资源,节省跨节点访存等通信开销,因此,在判定唤醒频繁度满足预设调度条件的情况下,可以将第一进程调度给第一节点的CPU执行,从而有效提升系统整体性能。
可以理解的是,进程之间的唤醒关系通常都伴有随后的信息交换,通常表现为内存数据的拷贝。如果进程唤醒发生在节点内部,会使之后的信息交换也在节点内部进行。而同一个节点内部访存速度比跨节点的访存要快,在同一个节点访存,能充分利用到该节点内部的缓存,一旦命中缓存,就能避免访存操作,缓存的访问比内存的访问要快。为了充分说明本说明书实施例提供的调度进程的方法的效果,下面,结合如图2所示的NUMA架构下的进程唤醒关系示意图来进行说明。如图2所示,进程1和2运行在node0上,假设进程2唤醒1和3,随后给1和3传输数据,那么节点1可能会由于命中cache而快速完成,即使cache没有命中,由于1和2在同一个节点,节点内的访存访问也快于跨节点的内存访问;而2要向3传递数据,需要跨越node0到node2,这种跨节点的访存操作,一些系统中比本地访存慢70%,因此,如果进程3对应于node0的唤醒频繁度满足预设调度条件,则根据本说明书实施例提供的方法能够在进程2唤醒进程3的时候调度进程3到node0上,从而能显著降低其后的内存访问开销,从而同提升系统整体运行性能。
需要说明的是,本说明书实施例对于更新唤醒频繁度的计算方式不限。例如,可以累计第一进程被唤醒的唤醒次数。所述唤醒频繁度可以由所述第一进程被第一节点唤醒的次数来表示,或者,由所述第一进程被所有节点唤醒的唤醒次数以及被第一节点唤醒的次数来表示,等。下面,对一可能的实施方式进行举例说明。
一个或多个实施例中,可以利用所述第一进程被所述第一节点上的进程唤醒的历次唤醒数据,得到所述第一进程对应于第一节点的分值;利用所述第一进程被所述NUMA架构下的各个节点唤醒的总历次唤醒数据,得到所述第一进程总分值;计算所述第一进程对应于第一节点的分值与所述第一进程总分值的比值,得到所述唤醒频繁度。在该实施方式中,所述唤醒频繁度可以由所述第一进程总分值及所述比值来表示,或者,可以由所述比值来表示,或者,可以由所述第一进程对应于第一节点的分值及所述比值来表示。
例如,在该实施方式中,在历次唤醒数据为唤醒次数的情况下,可以累计第一节点被各个节点唤醒的历次唤醒次数总和从而得到第一进程总分值,累计第一进程被第一节点唤醒次数从而得到第一进程对应于第一节点的分值,再计算二者比值,从而得到唤醒频繁度。如图2所示的进程唤醒关系示意图,每个进程均统计对应所有节点的唤醒次数,包括所有node上的cpu唤醒当前进程的次数以及当前进程被唤醒的总体次数。当进程2唤醒进程3时,由于进程2位于node0上,因此更新进程3关于node0的唤醒次数和进程3被所有节点唤醒的总唤醒次数。
在该实施方式中,由于通过计算第一进程对应于第一节点的分值与第一进程总分值的比值,得到所述唤醒频繁度,从而能够准确评估第一进程在NUMA架构下的所有节点中对应于第一节点的唤醒频繁度,使得计算的唤醒频繁度更加准确。
需要说明的是,在该实施方式基础上,判断是否满足预设调度条件的判断方式不限。例如,在所述唤醒频繁度由所述第一进程总分值及所述比值来表示的情况下,可以通过判断是否所述第一进程总分值大于预设总分值阈值且所述比值大于预设比值阈值来实现判断。如果述第一进程总分值大于预设总分值阈值且比值大于预设比值阈值,则可以确定唤醒频繁度满足预设调度条件。通过该实施方式中对第一进程总分值及比值的判断,能够有效判断第一进程总体被唤醒达到显著频繁且第一进程对应于第一节点被唤醒达到显著频繁,从而有效评估第一进程与第一节点之间的唤醒关系的显著性。
由于在将第一进程调度给第一节点的CPU执行的情况下,之前累积的历次唤醒数据在第一进程的调度中已经完成其评估作用,继续累积可能会造成对第一进程调度到第一节点执行的循环触发。为了避免循环触发所造成的计算资源的浪费,本说明书一个或多个实施例中,还包括:在将所述第一进程调度给所述第一节点的CPU执行的情况下,将用于更新所述第一进程对应于第一节点的唤醒频繁度的唤醒数据重置为初始状态。例如,可以通过重置唤醒进程和被唤醒进程的统计值如第一进程被所有节点唤醒的累积次数清零,从而避免循环触发。
考虑到在第一进程对应于第一节点的唤醒频繁度未满足预设调度条件的情况下,会继续累积历次唤醒数据,而唤醒数据对唤醒频繁度的时效性受唤醒时间距当前时间的时长变化而逐渐衰减,因此,本说明书一个或多个实施例中,在所述第一进程对应于第一节点的唤醒频繁度未满足预设调度条件的情况下,根据所述历次唤醒数据按照其唤醒时间距离当前时间从近到远呈衰减趋势的更新规则,更新所述历次唤醒数据。在该实施方式中,根据时效性衰减的更新规则对历次唤醒数据进行更新,从而避免历史统计占比过大,保证时效性。
例如,所述根据所述历次唤醒数据按照其唤醒时间距离当前时间从近到远呈衰减趋势的更新规则,更新所述历次唤醒数据可以包括:将所述历次唤醒数据中每次唤醒数据乘以对应的权重,得到更新的历次唤醒数据,其中,所述权重是根据对应的唤醒时间距离当前时间从近到远衰减地取值的。举例来说,历次唤醒数据中的总唤醒次数用S表示,其中包括当前次唤醒总共n次唤醒,S1到Sn-1为上一次更新后第1次唤醒到第n-1次唤醒分别对应的唤醒次数,每次唤醒对应的唤醒次数初值为1,Qn-1到Q1,是根据对应的唤醒时间距离当前时间从近到远衰减地取值的。例如,唤醒时间距离当前时间较近的一个预设时间段的唤醒对应的权重可以取值1,唤醒时间距离当前时间较远的另一个预设时间段唤醒对应的权重可以取值0.5,唤醒时间距离当前时间更远的又一个预设时间段唤醒对应的权重可以取值0。根据如下公式更新S:
S1=S1*Q1;
…
Sn=Sn*Qn;
S=S1+S2…+Sn-1+Sn。
在该实施方式中,利用根据唤醒时间距离当前时间从近到远衰减地取值的权重,可以准确地消除时效性不足的唤醒数据的累积,更新出更加有效的唤醒数据,从而进一步实现对唤醒频繁度的准确评估。
再例如,所述根据所述历次唤醒数据按照其唤醒时间距离当前时间从近到远呈衰减趋势的更新规则,更新所述历次唤醒数据可以包括:将所述历次唤醒数据中对应的唤醒时间距离当前时间的时长超过预设有效时长的唤醒数据从所述历次唤醒数据中删除。
在该实施方式中,通过将唤醒时间距当前时间超过预设有效时长的唤醒数据直接删除,更加简便快速地完成对唤醒数据的更新,使得累积的历次唤醒数据既能保证一定的时效性,更新又快速简便,从而进一步实现对唤醒频繁度的快速而准确地评估。
为了能够进一步提高系统整体性能,本说明书一个或多个实施例中,在唤醒频繁度不满足预设调度条件的情况下,还可以结合其他调度策略来为第一进程进行调度。例如,可以通过wake affine(唤醒仿射)调度策略或者numa balance(numa平衡)调度策略来进行调度。
例如,wake affine调度策略包括:记录进程唤醒其它进程变化的次数,每次唤醒其它进程时,记录最后一次唤醒的进程,如果本次唤醒的进程和上次不一样,那么变化次数增加,从而可以识别进程频繁唤醒多个进程的场景,来决定被唤醒进程选择哪个CPU运行。wake affine考虑唤醒进程所在CPU C和被唤醒进程上次运行的CPU P,如果C空闲,那么选择C为推荐CPU,否则如果P空闲,那么选择P为推荐CPU,或者根据C和P的负载来决定具有较小负载的CPU作为推荐CPU;然后再选择推荐CPU所在节点里的空闲CPU作为最终选择,没有空闲CPU的话就选择推荐CPU。
再例如,numa balance调度策略关注的是进程运行CPU与进程拥有的内存是否在同一个节点上。在同一节点上时,进程访存可以减少跨节点的访存。numa balance通过周期性地扫描进程的内存页面,决定是否迁移进程和内存页面到同一个节点上。
下述结合附图3,对结合了本说明书多个实施例的调度进程的方法进行进一步说明。其中,图3示出了本说明书一个实施例提供的一种调度进程的方法的处理过程流程图,具体步骤包括步骤302至步骤314。
步骤302:执行第一进程被第一节点上的进程唤醒的唤醒操作。
步骤304:更新被唤醒的第一进程的统计值,所述统计值包括:第一进程被各个节点唤醒的累计唤醒次数总和,第一进程被第一节点唤醒的累计唤醒次数。
步骤306:判断所述累计唤醒次数总和是否超过预设总和阈值。
如果累计唤醒次数总和未超过预设总分值阈值,进入步骤308-步骤310。
步骤308:根据唤醒时间距当前时间从近到远呈衰减趋势的更新规则,衰减所述统计值。
步骤310:根据预设的其他调度策略,选择CPU给第一进程。
步骤312:如果累计唤醒次数总和超过预设总分值阈值,判断所述第一进程被第一节点唤醒的累计唤醒次数与累计唤醒次数总和的比值是否超过预设比值阈值。
步骤314:如果是,将所述第一进程调度给所述第一节点的CPU执行。
步骤316:重置统计值为初始值。
如果否,进入步骤308-步骤310。
例如,结合如图2所示的进程唤醒关系示意图。在选择cpu之前,可以更新进程3对应的统计信息。例如,如图4所示的统计信息示意图,NUMA架构下的每个进程均具有对应的、与所有节点的唤醒关系的统计信息。统计信息中,记录了节点上的cpu唤醒当前进程的累计唤醒次数以及当前进程被唤醒的累计唤醒次数总和。当进程2唤醒进程3的时候,由于进程2位于node0上,因此更新进程3对应的统计信息,更新包括关于node0的累计唤醒次数和所有节点的累计唤醒次数总和。更新后,判断进程3被所有节点唤醒的累计唤醒次数总和是否超过阈值,如果是,进入上述步骤312,否则转到步骤308。在步骤312中,判断进程3对应于node0的累计唤醒次数相对于进程3总共被唤醒的累计唤醒次数总和的比值是否超过阈值,如果是,说明大多数唤醒进程3的进程都在node0上,那么可以通过上述步骤314给进程3选择位于node0上的cpu,如果否则进入上述步骤308。
可见,基于本说明书实施例提供的多个实施例,由于进行了节点层面的唤醒统计,给调度器选择CPU做决策时提供了节点层面的统计信息,从而可以更好地判断进程调度到哪个节点上最合适,实现了识别跨节点的唤醒关系。并且调度进程到唤醒最频繁的节点上,使得唤醒之后的信息传递具有访存优势,能够充分利用节点内访存和CACHE的优势。在基于唤醒统计调度不成功的情况下,还可以根据时效性衰减统计信息,避免历史统计占比过大,保证时效性,并在基于唤醒统计调度成功的情况下,重置统计初值,避免循环触发,从而从整体上提高了系统的性能。
与上述方法实施例相对应,本说明书还提供了调度进程的装置实施例,该装置配置于NUMA架构下的内核调度器。图5示出了本说明书一个实施例提供的一种调度进程的装置的结构示意图。如图5所示,该装置包括:唤醒频繁度更新模块502、调度判断模块504及调度执行模块506。
该唤醒频繁度更新模块502,可以被配置为响应于第一进程被第一节点上的进程唤醒,利用所述第一进程被所述第一节点唤醒的历次唤醒数据更新所述第一进程对应于第一节点的唤醒频繁度。
其中,所述历次唤醒数据可以包括根据实施场景需要所记录的历次唤醒中能够表现出频繁度的任意相关数据,本说明书实施例对此并不进行限制。例如,所述历次唤醒数据可以包括:唤醒次数,或者,每次唤醒对应的唤醒时间的记录。
该调度判断模块504,可以被配置为判断所述唤醒频繁度是否满足预设调度条件。
该调度执行模块506,可以被配置为如果是,则将所述第一进程调度给所述第一节点的CPU执行。
可见,由于该装置响应于第一进程被第一节点上的进程唤醒,利用所述第一进程被所述第一节点唤醒的历次唤醒数据更新所述第一进程对应于第一节点的唤醒频繁度,判断所述唤醒频繁度是否满足预设调度条件,从而通过唤醒频繁度判断第一进程是否在第一节点上具有显著的唤醒关系,由于显著的唤醒关系往往蕴含着随后的进程之间的信息交换,调度进程到具有显著的唤醒关系的节点上运行能够减少跨节点的信息传递,也能充分利用缓存亲和性等同一个节点的内部资源,节省跨节点访存等通信开销,因此,在判定唤醒频繁度满足预设调度条件的情况下,可以将第一进程调度给第一节点的CPU执行,从而有效提升系统整体性能。
图6示出了本说明书另一个实施例提供的一种调度进程的装置的结构示意图。如图6所示,所述唤醒频繁度更新模块502可以包括:
节点分值计算子模块5022,可以被配置为利用所述第一进程被所述第一节点上的进程唤醒的历次唤醒数据,得到所述第一进程对应于第一节点的分值。
总分值计算子模块5024,可以被配置为利用所述第一进程被所述NUMA架构下的各个节点唤醒的总历次唤醒数据,得到所述第一进程总分值。
比值计算子模块5026,可以被配置为计算所述第一进程对应于第一节点的分值与所述第一进程总分值的比值,得到所述唤醒频繁度。
在该实施方式中,由于通过计算第一进程对应于第一节点的分值与第一进程总分值的比值,得到所述唤醒频繁度,从而能够准确评估第一进程在NUMA架构下的所有节点中对应于第一节点的唤醒频繁度,使得计算的唤醒频繁度更加准确。
需要说明的是,在该实施方式基础上,判断是否满足预设调度条件的判断方式不限。例如,如图6所示,所述调度判断模块504,可以被配置为判断是否所述第一进程总分值大于预设总分值阈值且所述比值大于预设比值阈值。
由于在将第一进程调度给第一节点的CPU执行的情况下,之前累积的历次唤醒数据在第一进程的调度中已经完成其评估作用,继续累积可能会造成对第一进程调度到第一节点执行的循环触发。为了避免循环触发所造成的计算资源的浪费,本说明书一个或多个实施例中,如图6所示,该装置还可以包括:重置模块508,可以被配置为在所述调度执行模块506将所述第一进程调度给所述第一节点的CPU执行的情况下,将用于更新所述第一进程对应于第一节点的唤醒频繁度的唤醒数据重置为初始状态。
考虑到在第一进程对应于第一节点的唤醒频繁度未满足预设调度条件的情况下,会继续累积历次唤醒数据,而唤醒数据对唤醒频繁度的时效性受唤醒时间距当前时间的时长变化而逐渐衰减,因此,本说明书一个或多个实施例中,如图6所示,该装置还可以包括:唤醒数据更新模块510,可以被配置为在所述第一进程对应于第一节点的唤醒频繁度未满足预设调度条件的情况下,根据所述历次唤醒数据按照其唤醒时间距离当前时间从近到远呈衰减趋势的更新规则,更新所述历次唤醒数据。
如图6所示,唤醒数据更新模块510,可以被配置为将所述历次唤醒数据中每次唤醒数据乘以对应的权重,得到更新的历次唤醒数据,其中,所述权重是根据对应的唤醒时间距离当前时间从近到远衰减地取值的;或者,将所述历次唤醒数据中对应的唤醒时间距离当前时间的时长超过预设有效时长的唤醒数据从所述历次唤醒数据中删除。
上述为本实施例的一种调度进程的装置的示意性方案。需要说明的是,该调度进程的装置的技术方案与上述的调度进程的方法的技术方案属于同一构思,调度进程的装置的技术方案未详细描述的细节内容,均可以参见上述调度进程的方法的技术方案的描述。
图7示出了根据本说明书一个实施例提供的一种计算设备700的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。
计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备700还可以是移动式或静止式的服务器。
其中,处理器720用于执行如下计算机可执行指令:
响应于第一进程被第一节点上的进程唤醒,利用所述第一进程被所述第一节点唤醒的历次唤醒数据更新所述第一进程对应于第一节点的唤醒频繁度;
判断所述唤醒频繁度是否满足预设调度条件;
如果是,则将所述第一进程调度给所述第一节点的CPU执行。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的调度进程的方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述调度进程的方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:
响应于第一进程被第一节点上的进程唤醒,利用所述第一进程被所述第一节点唤醒的历次唤醒数据更新所述第一进程对应于第一节点的唤醒频繁度;
判断所述唤醒频繁度是否满足预设调度条件;
如果是,则将所述第一进程调度给所述第一节点的CPU执行。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的调度进程的方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述调度进程的方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种调度进程的方法,应用于NUMA架构下的内核调度器,包括:
响应于第一进程被第一节点上的进程唤醒,利用所述第一进程被所述第一节点唤醒的历次唤醒数据更新所述第一进程对应于第一节点的唤醒频繁度;
判断所述唤醒频繁度是否满足预设调度条件;
如果是,则将所述第一进程调度给所述第一节点的CPU执行。
2.根据权利要求1所述的方法,所述利用所述第一进程被所述第一节点唤醒的历次唤醒数据更新所述第一进程对应于第一节点的唤醒频繁度包括:
利用所述第一进程被所述第一节点上的进程唤醒的历次唤醒数据,得到所述第一进程对应于第一节点的分值;
利用所述第一进程被所述NUMA架构下的各个节点唤醒的总历次唤醒数据,得到所述第一进程总分值;
计算所述第一进程对应于第一节点的分值与所述第一进程总分值的比值,得到所述唤醒频繁度。
3.根据权利要求2所述的方法,所述判断所述唤醒频繁度是否满足预设调度条件包括:
判断是否所述第一进程总分值大于预设总分值阈值且所述比值大于预设比值阈值。
4.根据权利要求1所述的方法,还包括:
在将所述第一进程调度给所述第一节点的CPU执行的情况下,将用于更新所述第一进程对应于第一节点的唤醒频繁度的唤醒数据重置为初始状态。
5.根据权利要求1所述的方法,还包括:
在所述第一进程对应于第一节点的唤醒频繁度未满足预设调度条件的情况下,根据所述历次唤醒数据按照其唤醒时间距离当前时间从近到远呈衰减趋势的更新规则,更新所述历次唤醒数据。
6.根据权利要求5所述的方法,所述根据所述历次唤醒数据按照其唤醒时间距离当前时间从近到远呈衰减趋势的更新规则,更新所述历次唤醒数据包括:
将所述历次唤醒数据中每次唤醒数据乘以对应的权重,得到更新的历次唤醒数据,其中,所述权重是根据对应的唤醒时间距离当前时间从近到远衰减地取值的;
或者,
将所述历次唤醒数据中对应的唤醒时间距离当前时间的时长超过预设有效时长的唤醒数据从所述历次唤醒数据中删除。
7.根据权利要求1-6任一项所述的方法,所述历次唤醒数据包括:唤醒次数或者每次唤醒对应的唤醒时间的记录。
8.一种调度进程的装置,配置于NUMA架构下的内核调度器,包括:
唤醒频繁度更新模块,被配置为响应于第一进程被第一节点上的进程唤醒,利用所述第一进程被所述第一节点唤醒的历次唤醒数据更新所述第一进程对应于第一节点的唤醒频繁度;
调度判断模块,被配置为判断所述唤醒频繁度是否满足预设调度条件;
调度执行模块,被配置为如果是,则将所述第一进程调度给所述第一节点的CPU执行。
9.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
响应于第一进程被第一节点上的进程唤醒,利用所述第一进程被所述第一节点唤醒的历次唤醒数据更新所述第一进程对应于第一节点的唤醒频繁度;
判断所述唤醒频繁度是否满足预设调度条件;
如果是,则将所述第一进程调度给所述第一节点的CPU执行。
10.一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现权利要求1至7任意一项所述调度进程的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011193840.6A CN113296934B (zh) | 2020-10-30 | 2020-10-30 | 调度进程的方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011193840.6A CN113296934B (zh) | 2020-10-30 | 2020-10-30 | 调度进程的方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113296934A true CN113296934A (zh) | 2021-08-24 |
CN113296934B CN113296934B (zh) | 2024-10-25 |
Family
ID=77318373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011193840.6A Active CN113296934B (zh) | 2020-10-30 | 2020-10-30 | 调度进程的方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113296934B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114461404A (zh) * | 2022-04-01 | 2022-05-10 | 统信软件技术有限公司 | 一种进程迁移方法、计算设备及可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5826079A (en) * | 1996-07-05 | 1998-10-20 | Ncr Corporation | Method for improving the execution efficiency of frequently communicating processes utilizing affinity process scheduling by identifying and assigning the frequently communicating processes to the same processor |
CN105700939A (zh) * | 2016-04-21 | 2016-06-22 | 北京京东尚科信息技术有限公司 | 一种分布式系统中多线程同步的方法和系统 |
CN105955809A (zh) * | 2016-04-25 | 2016-09-21 | 深圳市万普拉斯科技有限公司 | 线程调度方法和系统 |
CN106227321A (zh) * | 2016-07-11 | 2016-12-14 | 广东欧珀移动通信有限公司 | 一种终端系统的唤醒监控方法及终端 |
CN107608723A (zh) * | 2017-09-20 | 2018-01-19 | 深圳市金立通信设备有限公司 | 一种应用对齐唤醒方法、终端及计算机可读存储介质 |
CN109002381A (zh) * | 2018-06-29 | 2018-12-14 | Oppo(重庆)智能科技有限公司 | 进程通信监控方法、电子装置及计算机可读存储介质 |
CN110459220A (zh) * | 2019-08-26 | 2019-11-15 | 杭州涂鸦信息技术有限公司 | 一种语音唤醒方法和系统以及可读存储介质、计算机 |
-
2020
- 2020-10-30 CN CN202011193840.6A patent/CN113296934B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5826079A (en) * | 1996-07-05 | 1998-10-20 | Ncr Corporation | Method for improving the execution efficiency of frequently communicating processes utilizing affinity process scheduling by identifying and assigning the frequently communicating processes to the same processor |
CN105700939A (zh) * | 2016-04-21 | 2016-06-22 | 北京京东尚科信息技术有限公司 | 一种分布式系统中多线程同步的方法和系统 |
CN105955809A (zh) * | 2016-04-25 | 2016-09-21 | 深圳市万普拉斯科技有限公司 | 线程调度方法和系统 |
CN106227321A (zh) * | 2016-07-11 | 2016-12-14 | 广东欧珀移动通信有限公司 | 一种终端系统的唤醒监控方法及终端 |
CN107608723A (zh) * | 2017-09-20 | 2018-01-19 | 深圳市金立通信设备有限公司 | 一种应用对齐唤醒方法、终端及计算机可读存储介质 |
CN109002381A (zh) * | 2018-06-29 | 2018-12-14 | Oppo(重庆)智能科技有限公司 | 进程通信监控方法、电子装置及计算机可读存储介质 |
CN110459220A (zh) * | 2019-08-26 | 2019-11-15 | 杭州涂鸦信息技术有限公司 | 一种语音唤醒方法和系统以及可读存储介质、计算机 |
Non-Patent Citations (3)
Title |
---|
DALLE AVE, G等: "An Explicit Online Resource-Task Network Scheduling Formulation to Avoid Scheduling Nervousness", 《ESCAPE》, 31 December 2019 (2019-12-31) * |
成坚: "面向穿戴应用的大小核架构低功耗策略研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, vol. 2018, no. 2, 15 February 2018 (2018-02-15) * |
曹越;顾乃杰;任开新;张旭;吴志强;: "一种面向多核系统的Linux任务调度算法", 计算机工程, no. 02, 31 December 2014 (2014-12-31) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114461404A (zh) * | 2022-04-01 | 2022-05-10 | 统信软件技术有限公司 | 一种进程迁移方法、计算设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113296934B (zh) | 2024-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11256619B2 (en) | Memory management for serverless databases | |
WO2021233261A1 (zh) | 一种多任务动态资源调度方法 | |
CN107515663B (zh) | 调整中央处理器内核运行频率的方法和装置 | |
US8402223B2 (en) | Cache eviction using memory entry value | |
JP2001229040A (ja) | 分散型処理システムのためのインテリジェント電力管理方法および装置 | |
CN113989561B (zh) | 基于异步联邦学习的参数聚合更新方法、设备及系统 | |
US9652027B2 (en) | Thread scheduling based on performance state and idle state of processing units | |
CN110895524B (zh) | redis满载时键的复合过期方法、装置、服务器及存储介质 | |
WO2020228289A1 (zh) | 日志获取方法、装置、终端及存储介质 | |
US20210165477A1 (en) | Frequency Scaling Method And Apparatus And Computer-Readable Storage Medium | |
WO2014138234A1 (en) | Demand determination for data blocks | |
KR101770736B1 (ko) | 응용프로그램의 질의 스케쥴링을 이용한 시스템의 소모전력 절감 방법 및 그 방법을 이용하여 소모전력을 절감하는 휴대단말기 | |
CN107943720A (zh) | 混合云中基于文件收益及优先级权重的lru缓存优化算法 | |
CN116069152A (zh) | 针对ai计算集群的运行频率控制方法、系统及相关设备 | |
Yan et al. | EASE: Energy‐efficient task scheduling for edge computing under uncertain runtime and unstable communication conditions | |
US20230252353A1 (en) | On-device training method to train an artificial intelligent model and a system therefor | |
CN113296934B (zh) | 调度进程的方法以及装置 | |
Wang et al. | Task arrival based energy efficient optimization in smart-IoT data center | |
KR100830747B1 (ko) | 분산된 프로세싱 시스템을 위한 인텔리젼트 전력 관리 | |
CN110347477B (zh) | 一种云环境下服务自适应部署方法和装置 | |
CN117149351A (zh) | 一种基于预测的边缘协同计算迁移方法及系统 | |
CN117097646A (zh) | 尾延迟调整方法及装置 | |
CN114860151B (zh) | 控制多缓存系统刷盘的方法以及装置 | |
CN111077976B (zh) | 多核心处理器的空闲状态低功耗模式实现方法和处理器 | |
Yang et al. | Optimization of virtual resources provisioning for cloud applications to cope with traffic burst |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40057838 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |