CN115658324B - 一种进程调度方法、计算设备及存储介质 - Google Patents
一种进程调度方法、计算设备及存储介质 Download PDFInfo
- Publication number
- CN115658324B CN115658324B CN202211442798.6A CN202211442798A CN115658324B CN 115658324 B CN115658324 B CN 115658324B CN 202211442798 A CN202211442798 A CN 202211442798A CN 115658324 B CN115658324 B CN 115658324B
- Authority
- CN
- China
- Prior art keywords
- memory
- process scheduling
- node
- intensive
- current
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 445
- 230000008569 process Effects 0.000 title claims abstract description 381
- 230000015654 memory Effects 0.000 claims abstract description 142
- 230000002159 abnormal effect Effects 0.000 claims abstract description 5
- 230000004044 response Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000005012 migration Effects 0.000 description 6
- 238000013508 migration Methods 0.000 description 6
- 230000005856 abnormality Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000007723 transport mechanism Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- 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
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种进程调度方法、计算设备及存储介质,涉及计算机技术领域。方法包括:如果进程在预定时间段内发生的缺页异常次数大于预定次数,则将进程确定为内存密集型进程,并更新进程所属的进程调度队列和进程调度组中的内存密集型进程数量;判断当前进程调度组中的内存密集型进程数量与当前节点的处理器数量的比值是否大于第一预定比值;如果是,则判断当前进程调度组中的内存密集型进程数量,是否比目标进程调度组中的内存密集型进程数量多预定百分比,目标节点是否具有内部存储器;如果是,则将内存密集型进程迁移到目标节点。根据本发明的技术方案,充分考虑了内存带宽竞争对进程性能的影响,能避免将进程无效迁移到没有内存的节点。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种进程调度方法、计算设备及存储介质。
背景技术
在传统的UMA架构中,多个CPU与主存储器模块通过一条系统总线进行通信。随着系统规模的扩大,CPU数量不断增加,对系统总线的争抢现象越来越严重,系统总线带宽成为了多CPU访存的瓶颈。为了减少访存过程中的总线竞争,越来越多的高性能计算机采用NUMA内存架构。
NUMA采用Node(节点)来管理CPU与主存。一个NUMA系统包括多个NUMA Node。每个Node可以包括多个CPU,并且具有独立的本地内存、 I/O 资源等,这里,与CPU处于同一Node上的内存称为本地内存。多个Node之间通过互联总线连接,对于任意一个Node上的CPU来说,其他Node上的内存称为远程内存。由于CPU访问自己的本地内存会有更低的延迟以及更高的性能表现,CPU访问本地内存的速度远远高于访问远程内存的速度。对于一个指定的Node来说,由于该Node与其他Node之间的距离不同,访问不同Node上的内存的延迟也不一样。
在Linux内核中,内存管理器默认从进程当前运行的NUMA节点上获取内存。如果当前NUMA节点内存不足,则从邻近的NUMA节点上申请内存。为了充分利用CPU的计算能力,多核负载均衡机制会在不同的CPU间迁移进程,这会使进程运行在其他节点上,但内存依然在原节点上,导致进程访问远程内存而产生延迟,性能下降。
为了解决进程访问访问远程内存造成的性能下降问题,现有技术中,Linux内核通过NUMA自动均衡(Automatic NUMA Balancing)机制,将远程内存迁移到进程运行的节点上,或者将进程迁移到访问内存最多的节点上,以此增加进程访问本地内存的概率,进而提升系统性能。这种NUMA均衡方案没有考虑最大化利用系统中的内存带宽:如果同一节点上频繁访问内存的进程(内存密集型进程)数量较多,因内存带宽竞争可能导致进程性能严重劣化;如果部分节点上没有内存,导致将内存密集型进程无效迁移到没有内存的节点,由于仍存在访问远程内存的问题,而需要将进程迁移到有内存的节点。
为此,需要一种进程调度方法,以解决上述方案中存在的问题。
发明内容
为此,本发明提供一种进程调度方法及计算设备,以解决或至少缓解上面存在的问题。
根据本发明的一个方面,提供一种进程调度方法,在计算设备中执行,所述计算设备包括通信相连的多个节点,每个所述节点分别包括多个处理器,所述处理器包括进程调度队列,所述进程调度队列中包括一个或多个进程,所述节点包括进程调度组,所述进程调度组包括所述节点的多个处理器的多个进程调度队列,所述方法包括:获取每个进程在预定时间段内发生的缺页异常次数;如果进程在预定时间段内发生的缺页异常次数大于预定次数,则将所述进程确定为内存密集型进程,并更新所述进程所属的进程调度队列和进程调度组中的内存密集型进程数量;判断当前节点的当前进程调度组中的内存密集型进程数量,与所述当前节点包含的处理器数量的比值,是否大于第一预定比值;如果是,则判断当前节点的当前进程调度组中的内存密集型进程数量,是否比目标节点的目标进程调度组中的内存密集型进程数量多预定百分比,以及,所述目标节点是否具有内部存储器;如果是,则将所述当前进程调度组中的内存密集型进程,迁移到所述目标节点。
可选地,在根据本发明的进程调度方法中,将所述当前进程调度组中的内存密集型进程,迁移到所述目标节点,包括:将所述当前进程调度组中的内存密集型进程以及所述内存密集型进程的内存页,迁移到所述目标节点。
可选地,在根据本发明的进程调度方法中,还包括:如果进程在预定时间段内发生的缺页异常次数小于或等于预定次数,则将所述进程确定为非内存密集型进程;如果所述目标节点不具有内部存储器,则将所述当前进程调度组中的非内存密集型进程迁移到所述目标节点。
可选地,在根据本发明的进程调度方法中,还包括:响应于进程发生缺页异常,更新所述进程发生的缺页异常次数。
可选地,在根据本发明的进程调度方法中,响应于进程发生缺页异常,更新所述进程发生的缺页异常次数,包括:每隔预定时间间隔,检测进程是否发生缺页异常;如果是,则将进程在预定时间间隔内发生的缺页异常次数加1。
可选地,在根据本发明的进程调度方法中,更新所述进程所属的进程调度队列和进程调度组中的内存密集型进程数量,包括:将所述进程所属的进程调度队列中的内存密集型进程数量加1;更新所述进程调度队列所属的进程调度组中的内存密集型进程数量;其中,所述进程调度组中的内存密集型进程数量,等于所述进程调度组所包含的所有进程调度队列中的内存密集型进程数量之和。
可选地,在根据本发明的进程调度方法中,还包括:如果当前节点的当前进程调度组中的进程数量,与所述当前节点包含的处理器数量的比值小于第二预定比值,且目标节点不具有内部存储器,则不将当前进程调度组中的进程迁移到所述目标节点。
可选地,在根据本发明的进程调度方法中,所述预定百分比为30%,所述第一预定比值为1/2。
可选地,在根据本发明的进程调度方法中,所述第二预定比值为1/4。
根据本发明的一个方面,提供一种计算设备,包括:至少一个处理器;存储器,存储有程序指令,其中,程序指令被配置为适于由上述至少一个处理器执行,所述程序指令包括用于执行如上所述的进程调度方法的指令。
根据本发明的一个方面,提供一种存储有程序指令的可读存储介质,当该程序指令被计算设备读取并执行时,使得该计算设备执行如上所述的进程调度方法。
根据本发明的技术方案,提供了一种进程调度方法,获取每个进程在预定时间段内发生的缺页异常次数,如果进程在预定时间段内发生的缺页异常次数大于预定次数,则将进程确定为内存密集型进程,并更新进程所属的进程调度队列和进程调度组中的内存密集型进程数量。如果当前节点的当前进程调度组中的内存密集型进程数量与当前节点包含的处理器数量的比值大于第一预定比值,进一步判断当前节点的当前进程调度组中的内存密集型进程数量是否比目标节点的目标进程调度组中的内存密集型进程数量多预定百分比,并判断目标节点是否具有内部存储器,如果是,才会将当前进程调度组中的内存密集型进程以及内存密集型进程的内存页迁移到目标节点。这样,本发明是在确定当前节点上运行的内存密集型进程较多、目标节点上运行的内存密集型进程较少、目标节点具有内部存储器、具有迁移价值的情况下才会迁移进程,能实现避免内存密集型进程被无效迁移到没有内存的目标节点。可见,根据本发明的进程调度方法,充分考虑了当前节点的内存密集型进程数量较多的情况,以及目标节点没有内存的情况,这样,不仅可以解决进程访问访问远程内存造成的性能下降问题,而且充分考虑了内存带宽竞争对进程性能的影响,也能避免将内存密集型进程无效迁移到没有内存的节点。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的计算设备100的示意图;
图2示出了根据本发明一个实施例的进程调度方法200的示意图;
图3示出了根据本发明一个实施例的进程调度方法的流程示意图;
图4示出了根据本发明一个实施例的计算设备100的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的计算设备100的示意图。如图1所示,计算设备100中包括硬件层、操作系统120以及一个或多个进程110。一个或多个进程110基于硬件层和操作系统来运行,应当指出,本发明对进程的数量和种类均不做限制。
计算设备100中运行有操作系统120,操作系统120可以为一个或多个进程110提供软件运行环境。操作系统120中包括内核125,内核125负责进程管理、内存管理、文件管理(例如文件存储空间的管理、目录管理、文件读写管理)、设备管理(例如I/O请求、缓冲管理、驱动)等。
硬件层可以为计算设备中的操作系统120及进程110提供硬件运行环境。如图1所示,硬件层包括通信相连的多个节点150,每个节点150分别可以包括多个处理器151。节点150还可以包括与该节点的多个处理器151通信相连的内部存储器152。另外,在计算设备100的硬件层,可能存在不具有内部存储器152的一个或多个节点150。
这里,多个节点150之间可以通过互联模块(Crossbar Switch)进行通信连接以实现数据交互。基于此,每个节点150的处理器151均可以访问计算设备100中的所有节点的内部存储器152。
应当指出,图1示出的硬件层中所包含的节点150的数量、每个节点150所包含的处理器151的数量均是示例性的,本发明对节点数量、每个节点的处理器数量均不做限制。
需要说明的是,每个处理器151均可以运行进程。对于每个处理器151而言,与处理器151处于同一节点的内部存储器152为该处理器151的本地内存。而与处理器151处于不同节点的内部存储器152为该处理器151的远程内存。应当指出,处理器151与本地内存之间的距离最近,从而访问本地内存的速度最快,具有更低的延迟以及更高的性能表现。换言之,处理器151与本地内存之间的距离小于处理器151与远程内存之间的距离,因此,处理器151访问本地内存的速度也远远高于访问远程内存的速度,相应地,处理器151访问本地内存的延迟远低于访问远程内存的延迟。
当进程110在处理器上运行时,可以向内核125申请在进程所处节点150的内部存储器152(即该处理器151的本地内存)创建进程的虚拟内存区域,这样,进程所处节点的内部存储器中包括为进程创建的虚拟内存区域。虚拟内存区域包括进程的内存页。
还需要指出,同一节点上可能存在多个频繁访问内部存储器152的进程(内存密集型进程),当内存密集型进程数量较多时,因存在内存带宽竞争而会影响进程性能;内存密集型进程可能会被无效迁移到没有内存的节点。
在根据本发明的实施例中,计算设备100的操作系统(的内核)被配置为执行根据本发明的进程调度方法200。计算设备100的操作系统(的内核)中包含用于执行本发明的进程调度方法200的多条程序指令,这些程序指令可以指示处理器执行根据本发明的进程调度方法200。
通过执行根据本发明的进程调度方法200,不仅可以解决进程访问访问远程内存造成的性能下降问题,而且充分考虑内存带宽竞争对进程性能的影响,并避免将内存密集型进程无效迁移到没有内存的节点。
图2示出了根据本发明一个实施例的进程调度方法200的示意图;图3示出了根据本发明一个实施例的进程调度方法的流程示意图。方法200适于在计算设备(例如前述计算设备100)的操作系统中执行。
在本发明的实施例中,计算设备100包括通信相连的多个节点,每个所述节点分别可以包括多个处理器,节点还可以包括与节点的多个处理器通信相连的内部存储器。每个处理器可以运行一个或多个进程,且每个处理器可以包括进程调度队列。这里,处理器的进程调度队列中包括该处理器运行的一个或多个进程。另外,节点的多个处理器的多个进程调度队列组成该节点的进程调度组。换言之,每个节点分别包括进程调度组,节点的进程调度组包括该节点的多个处理器的多个进程调度队列。
如图2和图3所示,方法200包括步骤210~250。
需要说明的是,在执行方法200的过程中,可以检测每个进程是否发生缺页异常,当检测到进程发生缺页异常时,响应于进程发生缺页异常,更新该进程发生的缺页异常次数,也即,将该进程发生的缺页异常次数加1。
在一个实施例中,可以周期性(每隔预定时间间隔)扫描各个进程访问的内部存储器,以周期性(每隔预定时间间隔)检测进程(在访问内部存储器时)是否发生缺页异常。例如,可以每隔1分钟检测进程是否发生缺页异常,如果检测到进程发生缺页异常,则可以更新进程在预定时间间隔内发生的缺页异常次数,也即,将进程在预定时间间隔内发生的缺页异常次数加1。
在步骤210中,获取每个进程在预定时间段内发生的缺页异常次数。
需要说明的是,进程在预定时间段内发生的缺页异常次数,可以反映进程是否频繁访问内部存储器。对于每个节点而言,频繁访问节点的内部存储器的进程可以被确定为该节点上的内存密集型进程。而当任意一个节点上的内存密集型进程较多时,可能存在内存带宽竞争而影响进程性能。
在一个实施例中,可以实时获取每个进程在预定时间段内发生的缺页异常次数,或者,周期性(每隔预定时间间隔)获取每个进程在预定时间段内发生的缺页异常次数。在一种实现方式中,预定时间间隔例如为1分钟。
随后,对于每个进程,可以判断进程在预定时间段内发生的缺页异常次数是否大于预定次数。
在步骤220中,对于每个进程,如果进程在预定时间段内发生的缺页异常次数大于预定次数(可以被判定为频繁访问内部存储器),则可以将该进程确定为内存密集型进程。随后,更新进程所属的进程调度队列和进程调度组中的内存密集型进程数量。
这里,应当指出,本发明对预定次数的具体数值不做限制。例如,在一个实施例中,预定次数可以为200。
具体地,在步骤220中,如果进程在预定时间段内发生的缺页异常次数大于预定次数,则将该进程确定为内存密集型进程,并将进程所属的进程调度队列中的内存密集型进程数量加1。并且,更新进程调度队列所属的进程调度组(即,进程所在节点的进程调度组)中的内存密集型进程数量。
需要说明的是,在创建进程时,可以创建进程描述符来管理进程。进程描述符例如为进程结构体(task struct)。进程结构体task struct中可以记载进程的所有信息。
在一个实施例中,通过在进程结构体task struct中添加decay_numa_faults字段,可以表示该进程在预定时间段内发生的缺页异常次数。并且,可以在进程结构体taskstruct中添加last_numa_faults,以表示进程在预定时间间隔内(例如最近1分钟内)发生缺页异常的数量。
另外,可以预先在进程调度队列中添加memory_intensive_tasks成员,以表示进程调度队列中的内存密集型进程数量;预先在进程调度组中添加memory_intensive_tasks成员,以表示进程调度组中的内存密集型进程数量。这里,应当理解,进程调度组中的内存密集型进程数量,等于该进程调度组所包含的所有进程调度队列中的内存密集型进程数量之和。
这样,在本发明的一个实施例中,当检测到进程发生缺页异常时,通过将进程结构体task struct中的last_numa_faults字段值加1,以表示将该进程在预定时间间隔内发生的缺页异常次数加1。
当进程在预定时间段内发生的缺页异常次数(decay_numa_faults)大于预定次数时,可以将该进程确定为内存密集型进程,并且,将进程所属的进程调度队列中的memory_intensive_tasks成员加1,以表示该进程调度队列中的内存密集型进程数量加1。在更新进程调度队列所属的进程调度组中的内存密集型进程数量时,通过统计、计算进程调度组中当前包含的所有进程调度队列中的内存密集型进程数量之和,并更新该进程调度组中的memory_intensive_tasks成员即可。
在一个实施例中,预定时间段内发生的缺页异常次数(decay_numa_faults)与预定时间间隔内发生的缺页异常次数(last_numa_faults)的关系如下: decay_numa_faults=decay_numa_faults*3/4+last_numa_faults。
接下来,在步骤230中,可以判断当前节点的当前进程调度组中的内存密集型进程数量,与当前节点包含的处理器数量的比值,是否大于第一预定比值。如果大于第一预定比值,则可以继续执行步骤240。在一个实施例中,第一预定比值例如可以为1/2,但本发明不限于此。
这里,需要说明的是,如果当前节点的当前进程调度组中的内存密集型进程数量与当前节点包含的处理器数量的比值,大于第一预定比值,可以确定当前节点上运行的内存密集型进程较多,可能导致内存带宽竞争而影响进程性能。因此,会考虑将当前节点上的内存密集型进程迁移至目标节点。
进而,本发明还通过执行步骤240来进一步比较当前节点与目标节点的内存密集型进程数量。
在步骤240中,判断当前节点的当前进程调度组中的内存密集型进程数量,是否比目标节点的目标进程调度组中的内存密集型进程数量多预定百分比,并且,还判断目标节点是否具有内部存储器。这里,本发明对预定百分比的具体数值不做限制。在一个实施例中,预定百分比例如可以为30%。
如果是(当前节点的当前进程调度组中的内存密集型进程数量,比目标节点的目标进程调度组中的内存密集型进程数量多预定百分比,并且,目标节点具有内部存储器),则继续执行步骤250。
在步骤250中,可以优先选择将当前进程调度组中的内存密集型进程迁移到目标节点。
在一个实施例中,在将当前进程调度组中的内存密集型进程迁移到目标节点的同时,还通过扫描页表,来将内存密集型进程的内存页迁移到目标节点。也就是说,在步骤250中,可以优先选择将当前进程调度组中的内存密集型进程以及内存密集型进程的内存页,迁移到目标节点。
需要说明的是,如果当前节点的当前进程调度组中的内存密集型进程数量,比目标节点的目标进程调度组中的内存密集型进程数量多预定百分比,说明当前节点上运行的内存密集型进程远超过目标节点,目标节点上运行的内存密集型进程较少,从而具有迁移价值,有必要将当前节点上运行的内存密集型进程迁移至目标节点。而且,本发明还进一步判断目标节点是否具有内部存储器,在确定目标节点具有内部存储器的情况下才会迁移进程,这样,能实现避免内存密集型进程被无效迁移到没有内存的目标节点。
另外,在本发明的方法200中,如果进程在预定时间段内发生的缺页异常次数小于或等于预定次数(例如≤200),可以将进程确定为非内存密集型进程。
在一个实施例中,如果在步骤240中确定目标节点不具有内部存储器(没有本地内存),则可以优先选择将当前进程调度组中的非内存密集型进程迁移到目标节点。
此外,在一个实施例中,在执行步骤220之后,还可以判断当前节点的当前进程调度组中的进程数量(即,当前节点的负载数量),与当前节点包含的处理器数量的比值是否小于第二预定比值。如果小于第二预定比值,则继续判断目标节点是否具有内部存储器。
如果当前节点的当前进程调度组中的进程数量,与当前节点包含的处理器数量的比值小于第二预定比值,并且,目标节点不具有内部存储器,则不将当前进程调度组中的进程迁移到目标节点。在一个实施例中,第二预定比值例如可以为1/4,但本发明不限于此。这样,可以确保在低负载时,不迁移进程到目标节点。
根据本发明的进程调度方法200,获取每个进程在预定时间段内发生的缺页异常次数,如果进程在预定时间段内发生的缺页异常次数大于预定次数,则将进程确定为内存密集型进程,并更新进程所属的进程调度队列和进程调度组中的内存密集型进程数量。如果当前节点的当前进程调度组中的内存密集型进程数量与当前节点包含的处理器数量的比值大于第一预定比值,进一步判断当前节点的当前进程调度组中的内存密集型进程数量是否比目标节点的目标进程调度组中的内存密集型进程数量多预定百分比,并判断目标节点是否具有内部存储器,如果是,才会将当前进程调度组中的内存密集型进程以及内存密集型进程的内存页迁移到目标节点。这样,本发明是在确定当前节点上运行的内存密集型进程较多、目标节点上运行的内存密集型进程较少、目标节点具有内部存储器、具有迁移价值的情况下才会迁移进程,能实现避免内存密集型进程被无效迁移到没有内存的目标节点。可见,根据本发明的进程调度方法,充分考虑了当前节点的内存密集型进程数量较多的情况,以及目标节点没有内存的情况,这样,不仅可以解决进程访问访问远程内存造成的性能下降问题,而且充分考虑了内存带宽竞争对进程性能的影响,也能避免将内存密集型进程无效迁移到没有内存的节点。
图4示出了根据本发明一个实施例的计算设备100的结构框图。如图4所示,在基本配置中,计算设备100包括至少一个处理单元102和系统存储器104。根据一个方面,取决于计算设备的配置和类型,处理单元102可以实现为处理器。系统存储器104包括但不限于易失性存储(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪速存储器、或者这样的存储器的任何组合。根据一个方面,系统存储器104中包括操作系统120。
根据一个方面,操作系统120例如适合于控制计算设备100的操作。此外,示例结合图形库、其他操作系统、或任何其他应用程序而被实践,并且不限于任何特定的应用或系统。在图4中通过在虚线内的那些组件示出了该基本配置。根据一个方面,计算设备100具有额外的特征或功能。例如,根据一个方面,计算设备100包括额外的数据存储设备(可移动的和/或不可移动的),例如磁盘、光盘、或者磁带。这样额外的存储在图4中是由可移动存储设备109和不可移动存储设备107示出的。
如在上文中所陈述的,根据一个方面,在系统存储器104中存储有程序模块103。根据一个方面,程序模块103可以包括一个或多个应用程序,本发明不限制应用程序的类型,例如应用程序可以包括:电子邮件和联系人应用程序、文字处理应用程序、电子表格应用程序、数据库应用程序、幻灯片展示应用程序、绘画或计算机辅助应用程序、网络浏览器应用程序等。
在根据本发明的实施例中,程序模块103中可以包括用于执行本发明的进程调度方法200的一条或多条程序指令。
根据一个方面,可以在包括分立电子元件的电路、包含逻辑门的封装或集成的电子芯片、利用微处理器的电路、或者在包含电子元件或微处理器的单个芯片上实践示例。例如,可以经由其中在图4中所示出的每个或许多组件可以集成在单个集成电路上的片上系统(SOC)来实践示例。根据一个方面,这样的SOC设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元、以及各种应用功能,其全部作为单个集成电路而被集成(或“烧”)到芯片基底上。当经由SOC进行操作时,可以经由在单个集成电路(芯片)上与计算设备100的其他组件集成的专用逻辑来对在本文中所描述的功能进行操作。还可以使用能够执行逻辑操作(例如AND、OR和NOT)的其他技术来实践本发明的实施例,所述其他技术包括但不限于机械、光学、流体、和量子技术。另外,可以在通用计算机内或在任何其他任何电路或系统中实践本发明的实施例。
根据一个方面,计算设备100还可以具有一个或多个输入设备112,例如键盘、鼠标、笔、语音输入设备、触摸输入设备等。还可以包括输出设备114,例如显示器、扬声器、打印机等。前述设备是示例并且也可以使用其他设备。计算设备100可以包括允许与其他计算设备118进行通信的一个或多个通信连接116。合适的通信连接116的示例包括但不限于:RF发射机、接收机和/或收发机电路;通用串行总线(USB)、并行和/或串行端口。
如在本文中所使用的术语计算机可读介质包括计算机存储介质。计算机存储介质可以包括以任何用于存储信息(例如,计算机可读指示、数据结构、或程序模块103)的方法或技术来实现的易失性的和非易失性的、可移动的和不可移动的介质。系统存储器104、可移动存储设备109、和不可移动存储设备107都是计算机存储介质的示例(即,存储器存储)。计算机存储介质可以包括随机存取存储器(RAM) 、只读存储器(ROM) 、电可擦只读存储器(EEPROM)、闪速存储器或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光存储、盒式磁带、磁带、磁盘存储器或其他磁存储设备、或者可用于存储信息并且可以由计算设备100访问的任何其他制品。根据一个方面,任何这样的计算机存储介质都可以是计算设备100的一部分。计算机存储介质不包括载波或其他经传播的数据信号。
根据一个方面,通信介质是由计算机可读指令、数据结构、程序模块103、或者经调制的数据信号(例如,载波或其他传输机制)中的其他数据实施的,并且包括任何信息传递介质。根据一个方面,术语“经调制的数据信号”描述了具有一个或多个特征集或者以将信息编码在信号中的方式改变的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、射频(RF)、红外线的、以及其他无线介质之类的无线介质。
在根据本发明的实施例中,计算设备100被配置为执行根据本发明的进程调度方法200。计算设备100包括一个或多个处理器、以及存储有程序指令的一个或多个可读存储介质,当程序指令被配置为由一个或多个处理器执行时,使得计算设备执行本发明实施例中的进程调度方法200。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,移动终端一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的进程调度方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。
Claims (11)
1.一种进程调度方法,在计算设备中执行,所述计算设备包括通信相连的多个节点,每个所述节点分别包括多个处理器,所述处理器包括进程调度队列,所述进程调度队列中包括一个或多个进程,所述节点包括进程调度组,所述进程调度组包括所述节点的多个处理器的多个进程调度队列,所述方法包括:
获取每个进程在预定时间段内发生的缺页异常次数;
如果进程在预定时间段内发生的缺页异常次数大于预定次数,则将所述进程确定为内存密集型进程,并更新所述进程所属的进程调度队列和进程调度组中的内存密集型进程数量;
判断当前节点的当前进程调度组中的内存密集型进程数量,与所述当前节点包含的处理器数量的比值,是否大于第一预定比值;
如果是,则判断当前节点的当前进程调度组中的内存密集型进程数量,是否比目标节点的目标进程调度组中的内存密集型进程数量多预定百分比,以及,所述目标节点是否具有内部存储器;
如果是,则将所述当前进程调度组中的内存密集型进程,迁移到所述目标节点。
2.如权利要求1所述的方法,其中,将所述当前进程调度组中的内存密集型进程,迁移到所述目标节点,包括:
将所述当前进程调度组中的内存密集型进程以及所述内存密集型进程的内存页,迁移到所述目标节点。
3.如权利要求1所述的方法,其中,还包括:
如果进程在预定时间段内发生的缺页异常次数小于或等于预定次数,则将所述进程确定为非内存密集型进程;
如果所述目标节点不具有内部存储器,则将所述当前进程调度组中的非内存密集型进程迁移到所述目标节点。
4.如权利要求1-3中任一项所述的方法,其中,还包括:
响应于进程发生缺页异常,更新所述进程发生的缺页异常次数。
5.如权利要求4所述的方法,其中,响应于进程发生缺页异常,更新所述进程发生的缺页异常次数,包括:
每隔预定时间间隔,检测进程是否发生缺页异常;
如果是,则将进程在预定时间间隔内发生的缺页异常次数加1。
6.如权利要求1-3中任一项所述的方法,其中,更新所述进程所属的进程调度队列和进程调度组中的内存密集型进程数量,包括:
将所述进程所属的进程调度队列中的内存密集型进程数量加1;
更新所述进程调度队列所属的进程调度组中的内存密集型进程数量;
其中,所述进程调度组中的内存密集型进程数量,等于所述进程调度组所包含的所有进程调度队列中的内存密集型进程数量之和。
7.如权利要求1-3中任一项所述的方法,其中,还包括:
如果当前节点的当前进程调度组中的进程数量,与所述当前节点包含的处理器数量的比值小于第二预定比值,且目标节点不具有内部存储器,则不将当前进程调度组中的进程迁移到所述目标节点。
8.如权利要求1-3中任一项所述的方法,其中,
所述预定百分比为30%,所述第一预定比值为1/2。
9.如权利要求7所述的方法,其中,
所述第二预定比值为1/4。
10.一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-9中任一项所述的方法的指令。
11.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-9中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211442798.6A CN115658324B (zh) | 2022-11-18 | 2022-11-18 | 一种进程调度方法、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211442798.6A CN115658324B (zh) | 2022-11-18 | 2022-11-18 | 一种进程调度方法、计算设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115658324A CN115658324A (zh) | 2023-01-31 |
CN115658324B true CN115658324B (zh) | 2023-03-10 |
Family
ID=85018200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211442798.6A Active CN115658324B (zh) | 2022-11-18 | 2022-11-18 | 一种进程调度方法、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115658324B (zh) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11068314B2 (en) * | 2017-03-29 | 2021-07-20 | Juniper Networks, Inc. | Micro-level monitoring, visibility and control of shared resources internal to a processor of a host machine for a virtual environment |
-
2022
- 2022-11-18 CN CN202211442798.6A patent/CN115658324B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115658324A (zh) | 2023-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7809918B1 (en) | Method, apparatus, and computer-readable medium for providing physical memory management functions | |
US11093388B2 (en) | Method, apparatus, device and storage medium for accessing static random access memory | |
US20070073993A1 (en) | Memory allocation in a multi-node computer | |
CN113918101B (zh) | 一种写数据高速缓存的方法、系统、设备和存储介质 | |
US20200167252A1 (en) | Method and apparatus for managing storage system | |
US11093399B2 (en) | Selecting resources to make available in local queues for processors to use | |
US10204060B2 (en) | Determining memory access categories to use to assign tasks to processor cores to execute | |
CN113778914A (zh) | 用于执行数据处理的装置、方法、和计算设备 | |
US11403026B2 (en) | Method, device and computer program product for managing storage system | |
EP3872629B1 (en) | Method and apparatus for executing instructions, device, and computer readable storage medium | |
US9477518B1 (en) | Method to automatically redirect SRB routines to a zIIP eligible enclave | |
CN115658324B (zh) | 一种进程调度方法、计算设备及存储介质 | |
CN115421927B (zh) | 一种负载均衡方法、计算设备及存储介质 | |
CN115827552A (zh) | 计算任务处理方法、装置以及存储介质 | |
CN115269199A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN113407114B (zh) | 一种基于热数据和删除重复操作的在线扩容io调度方法 | |
US20140149691A1 (en) | Data processing system and data processing method | |
CN114153560A (zh) | 一种虚拟中断处理方法、装置、设备及介质 | |
CN115061954B (zh) | 一种缺页中断处理方法、计算设备及存储介质 | |
US7895390B1 (en) | Ensuring buffer availability | |
US20230125700A1 (en) | Data processing method and computing system | |
US11822471B2 (en) | Reducing write barriers in snapshot-based garbage collection | |
CN116303211A (zh) | 一种应用于车载场景的cpu多核间通信方法及装置 | |
US20130262790A1 (en) | Method, computer program and device for managing memory access in a multiprocessor architecture of numa type | |
CN116339937A (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 |