CN116881016A - 服务器进程的处理方法及装置、存储介质及电子设备 - Google Patents
服务器进程的处理方法及装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN116881016A CN116881016A CN202311144713.0A CN202311144713A CN116881016A CN 116881016 A CN116881016 A CN 116881016A CN 202311144713 A CN202311144713 A CN 202311144713A CN 116881016 A CN116881016 A CN 116881016A
- Authority
- CN
- China
- Prior art keywords
- memory
- bandwidth
- extended
- target
- server
- 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 358
- 230000008569 process Effects 0.000 title claims abstract description 287
- 238000003672 processing method Methods 0.000 title abstract description 17
- 230000015654 memory Effects 0.000 claims abstract description 860
- 238000012545 processing Methods 0.000 claims description 40
- 238000013136 deep learning model Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 17
- 238000004891 communication Methods 0.000 description 12
- 238000012549 training Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/482—Application
-
- 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/483—Multiproc
-
- 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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种服务器进程的处理方法及装置、存储介质及电子设备,该方法包括:在服务器上的目标应用待创建目标进程的情况下,确定服务器的本地内存的当前使用带宽以及服务器上的扩展内存的当前使用带宽;基于本地内存的当前使用带宽和扩展内存的当前使用带宽与预设的带宽阈值,从本地内存和扩展内存中确定出为目标进程分配的目标内存;创建目标进程,并为创建的目标进程分配目标内存的内存带宽。
Description
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种服务器进程的处理方法及装置、存储介质及电子设备。
背景技术
在服务器的应用可以创建进程来运行该应用的应用功能,而创建的进程需要使用服务器上的内存,内存带宽对于应用的运行效率具有较大的影响,这里的应用可以是与深度学习模型或者类似的模型对应的应用。
以深度学习模型为例,在深度学习模型的训练、推理过程中,数据需要从内存中读取,并进行计算和传输,随着深度学习模型规模越来越大,对硬件的要求也越来越高,而内存带宽对深度学习模型的训练、推理的速度具有重要影响。
由于本地内存有限,内存带宽较低,在运行的深度学习模型较多时,运行新的深度学习模型会导致数据的读取速度变慢,计算和传输的速度也变慢,从而影响深度学习模型的训练、推理速度。
由此可见,相关技术中的内存使用方式,存在由于内存带宽低导致的应用运行效率低的问题。
发明内容
本申请实施例提供了一种服务器进程的处理方法及装置、存储介质及电子设备,以至少解决相关技术中的内存使用方式存在由于内存带宽低导致的应用运行效率低的问题。
根据本申请的一个实施例,提供了一种服务器进程的处理方法,包括:在所述服务器上的目标应用待创建目标进程的情况下,确定所述服务器的本地内存的当前使用带宽以及所述服务器上的扩展内存的当前使用带宽;基于所述本地内存的当前使用带宽和所述扩展内存的当前使用带宽与预设的带宽阈值,从所述本地内存和所述扩展内存中确定出为所述目标进程分配的目标内存;创建所述目标进程,并为创建的所述目标进程分配所述目标内存的内存带宽。
根据本申请的又一个实施例,提供了一种服务器进程的处理装置,包括:第一确定单元,用于在所述服务器上的目标应用待创建目标进程的情况下,确定所述服务器的本地内存的当前使用带宽以及所述服务器上的扩展内存的当前使用带宽;第二确定单元,用于基于所述本地内存的当前使用带宽和所述扩展内存的当前使用带宽与预设的带宽阈值,从所述本地内存和所述扩展内存中确定出为所述目标进程分配的目标内存;第一执行单元,用于创建所述目标进程,并为创建的所述目标进程分配所述目标内存的内存带宽。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请实施例,采用根据本地内存的使用带宽、扩展内存的使用带宽以及预设的带宽阈值,为进程分配内存带宽的方式,通过在服务器上的目标应用待创建目标进程的情况下,确定服务器的本地内存的当前使用带宽以及服务器上的扩展内存的当前使用带宽;基于本地内存的当前使用带宽和扩展内存的当前使用带宽与预设的带宽阈值,从本地内存和扩展内存中确定出为目标进程分配的目标内存;创建目标进程,并为创建的目标进程分配目标内存的内存带宽,由于在服务器上的应用待创建进程的情况下,根据服务器上的本地内存的使用带宽以及扩展内存的使用带宽,以及本地内存的带宽阈值和扩展内存的带宽阈值,从本地内存和扩展内存中确定出为待创建的进程分配的目标内存,创建进程并为创建的进程分配目标内存的内存带宽,相对于直接为待创建进程分配本地内存的内存带宽,可以避免为待创建进程分配内存带宽低的内存,达到提高应用运行效率的技术效果,进而解决了相关技术中的内存使用方式存在由于内存带宽低导致的应用运行效率低的问题。
附图说明
图1是根据本申请实施例的一种服务器进程的处理方法的硬件环境示意图;
图2是根据本申请实施例的一种服务器进程的处理方法的流程图;
图3是根据本申请实施例的一种服务器进程的处理方法的示意图;
图4是根据本申请实施例的另一种服务器进程的处理方法的示意图;
图5是根据本申请实施例的另一种服务器进程的处理方法的流程图;
图6是根据本申请实施例的又一种服务器进程的处理方法的流程图;
图7是根据本申请实施例的又一种服务器进程的处理方法的流程图;
图8是根据本申请实施例的一种服务器进程的处理装置的结构框图;
图9是根据本申请实施例的一种可选的电子设备的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在服务器、移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是根据本申请实施例的一种服务器进程的处理方法的硬件环境示意图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的服务器进程的处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
根据本申请实施例的一个方面,提供了一种服务器进程的处理方法,以由处理器来执行本实施例中的服务器进程的处理方法为例,图2是根据本申请实施例的一种服务器进程的处理方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,在服务器上的目标应用待创建目标进程的情况下,确定服务器的本地内存的当前使用带宽以及服务器上的扩展内存的当前使用带宽。
本实施例中的服务器进程的处理方法可以应用到目标应用待创建的进程分配内存的场景,应用可以是完成某项或者多项特定工作的计算机程序或者应用软件,目标应用可以用于完成深度学习模型的训练与推理、高性能计算(High performance computing,缩写HPC)、数据库或者其他模型的训练与推理等工作。在目标应用的运行过程中,可以通过创建一个或者多个进程来完成目标应用的功能,这里的进程为一段程序的执行过程。
相关技术中,在服务器的应用可以创建进程来运行该应用的应用功能,而创建的进程需要使用服务器上的内存,内存带宽对于应用的运行效率具有较大的影响,内存带宽低会导致应用的运行效率降低,以深度学习模型为例,在深度学习模型的训练、推理过程中,数据需要从内存中读取,并进行计算和传输,随着深度学习模型规模越来越大,对硬件上的要求也越来越高,内存带宽对深度学习模型的训练、推理速度具有重要影响。如果内存带宽较低,数据的读取速度将变慢,导致计算和传输的速度也变慢,从而影响深度学习模型的训练、推理速度。
为了至少部分解决上述技术问题,在本实施例中,在服务器上的应用待创建进程的情况下,根据服务器上的本地内存的使用带宽以及扩展内存的使用带宽,以及本地内存的带宽阈值和扩展内存的带宽阈值,从本地内存和扩展内存中确定出为待创建的进程分配的目标内存,创建进程并为创建的进程分配目标内存的内存带宽,相对于直接为待创建进程分配本地内存的内存带宽,可以合理分配本地内存和扩展内存的内存带宽,避免为待创建进程分配内存带宽低的内存,进而提高应用的运行效率。本实施例中的方法可以应用于具有扩展内存(例如,CXL内存(Compute Express Link,一种新型的高速互联技术))的服务器架构中,为机器学习、深度学习、人工智能、生物医药等需要大内存且高计算能力的领域提供服务。
在服务器中,本地内存为服务器的内存储器,可以暂时存放CPU(CentralProcessing Unit,中央处理器)中的运算数据,以及与硬盘等外部存储器交换的数据。服务器中所有程序的运行都可以在本地内存中进行。
除了服务器的本地内存之外,也可以通过增加内存条的数量对服务器内存进行扩展,服务器扩展的内存为扩展内存,扩展内存的内存类型可以包括但不限于固态硬盘((Solid State Disk或Solid State Drive,简称SSD))内存,CXL内存(Compute ExpressLink,一种新型的高速互联技术)等。
以深度学习模型对应的应用为例,在只有本地内存的服务器上多个运行深度学习模型时,如总占用的带宽未到达服务器带宽极限时,再运行新的深度学习模型时,已运行的深度学习模型的训练、推理速度不会受到影响;如果占用的总带宽已接近服务器的带宽极限时,再运行新的深度学习模型时,已运行的深度学习模型的训练、推理速度会变慢,从而无法提高服务器整体效率。在本地内存插槽被全部使用的情况下,可以使用能够增加内存带宽的CXL设备,以通过提高内存带宽加快深度学习模型的推理速度。
在服务器上的目标应用待创建目标进程的情况下,可以确定服务器的本地内存的当前使用带宽以及服务器上的扩展内存的当前使用带宽,以确定为目标进程分配本地内存或者扩展内存,这里的目标进程可以是目标应用创建的任意进程,本地内存的当前使用带宽可以用于指示每个进程的本地内存的使用带宽之和,相应地,扩展内存的当前使用带宽可以用于指示每个进程的扩展内存的使用带宽之和。
步骤S204,基于本地内存的当前使用带宽和扩展内存的当前使用带宽与预设的带宽阈值,从本地内存和扩展内存中确定出为目标进程分配的目标内存。
在本实施例中,可以基于本地内存的当前使用带宽和本地内存的预设的带宽阈值,确定本地内存的当前使用带宽是否超过本地内存的预设的带宽阈值,并基于扩展内存的当前使用带宽与扩展内存的预设的带宽阈值,确定扩展内存的当前使用带宽是否超过扩展内存的预设的带宽阈值,进而从本地内存和扩展内存中确定出为目标进程分配的目标内存。
步骤S206,创建目标进程,并为创建的目标进程分配目标内存的内存带宽。
在确定为目标进程分配的目标内存的情况下,可以创建目标进程,并为创建的目标进程分配目标内存的内存带宽。
通过上述步骤,通过在服务器上的目标应用待创建目标进程的情况下,确定服务器的本地内存的当前使用带宽以及服务器上的扩展内存的当前使用带宽;基于本地内存的当前使用带宽和扩展内存的当前使用带宽与预设的带宽阈值,从本地内存和扩展内存中确定出为目标进程分配的目标内存;创建目标进程,并为创建的目标进程分配目标内存的内存带宽,可以解决相关技术中的内存使用方式存在由于内存带宽低导致的应用运行效率低的问题,提高了应用运行效率。
在一个示范性实施例中,基于本地内存的当前使用带宽和扩展内存的当前使用带宽与预设的带宽阈值,从本地内存和扩展内存中确定出为目标进程分配的目标内存,包括:
S11,在本地内存的当前使用带宽小于第一带宽阈值的情况下,确定为目标进程分配本地内存,其中,目标内存为本地内存。
在本地内存的当前使用带宽小于第一带宽阈值(即,本地内存的带宽阈值)的情况下,可以确定为目标进程分配本地内存,并不会影响本地内存上已运行的模型的运行速度。
例如,当每次应用创建新的进程时,内核都将本地内存的当前使用带宽与本地内存的带宽阈值进行比较,当本地内存的当前使用带宽未超过本地内存的带宽阈值时,进程申请内存使用本地内存。
通过本实施例,在本地内存的当前使用带宽没有超过本地内存的带宽阈值的情况下,为进程分配本地内存,可以在不影响其他应用或者进程的运行速度的同时,减少内存资源的浪费,提高内存资源的利用率。
在一个示范性实施例中,上述方法还包括:
S21,将本地内存的预期带宽与第一比值的乘积和本地内存的实际带宽与第二比值的乘积的最小值,确定为第一带宽阈值,其中,第一比值和第二比值均为大于0且小于1的值。
在本实施例中,可以分别计算本地内存的预期带宽与第一比值的乘积和本地内存的实际带宽与第二比值的乘积的最小值,并比较二者的大小,将二者中的最小值确定为第一带宽阈值,这里的第一比值和第二比值均为预设的比值,均为大于0且小于1的值。例如,将本地内存的理论带宽(即,预期带宽)的65%和本地内存的实际带宽的90%的最小值确定为本地内存的带宽阈值。
通过本实施例,根据本地内存的预期带宽和实际带宽,确定本地内存的带宽阈值,以确定本地内存的当前使用带宽是否超过本地内存的带宽阈值,可以避免本地内存上的应用的运行速度降低,提高了服务器应用的运行效率。
在一个示范性实施例中,本地内存的预期带宽为本地内存的内存核心频率、第一倍增系数以及本地内存的内存总线位数/8的乘积;上述方法还包括:
S31,使用本地内存随机创建包含第一数量个元素的第一整型数组和包含第一数量个元素的第二整型数组;
S32,对第一整型数组和第二整型数组中相同位置的元素分别执行第一求和操作作为第三整型数组中相同位置上的元素,确定执行第一求和操作的第一总使用时长;
S33,将第一数量乘以8除以第一总使用时长所得到的值,确定为本地内存的实际带宽。
如公式(1)所示,本地内存的预期带宽可以为本地内存的内存核心频率、第一倍增系数、以及本地内存的内存总线位数/8的乘积:
其中,为本地内存的预期带宽,倍增系数为一个时钟脉冲内传输数据的次数,第一倍增系数为本地内存对应的倍增系数。
对于本地内存的实际带宽,可以使用本地内存随机创建均包含第一数量个元素的第一整型数组和第二整型数组,对第一整型数组和第二整型数组中相同位置的元素分别执行第一求和操作,得到第三整型数组中相同位置上的元素,确定执行第一求和操作的时长,得到第一总使用时长,将第一数量乘以8除以第一总使用时长所得到的值,确定为本地内存的实际带宽。
例如,在本地内存中随机创建10000000个元素的整型数组和1000000个元素的数组/>,令/>,统计总使用时间T,本地内存的实际带宽。
通过本实施例,通过使用本地内存进行测算,可以确定本地内存的实际带宽,以确定本地内存的预期带宽,可以提高服务器进程处理的可靠性。
在一个示范性实施例中,基于本地内存的当前使用带宽和扩展内存的当前使用带宽与预设的带宽阈值,从本地内存和扩展内存中确定出为目标进程分配的目标内存,包括:
S41,在本地内存的当前使用带宽大于或者等于第一带宽阈值、且扩展内存的当前使用带宽小于第二带宽阈值的情况下,确定为目标进程分配扩展内存,其中,目标内存为扩展内存。
在本地内存的当前使用带宽大于或者等于第一带宽阈值,并且扩展内存的当前使用带宽小于第二带宽阈值(即,扩展内存的带宽阈值)的情况下,如果为目标进程分配本地内存,会影响本地内存上运行的应用的运行速度,而为目标进程分配扩展内存,不会影响扩展内存上运行的应用的运行速度,因此,将扩展内存确定为目标进程,为目标进程分配扩展内存。
通过本实施例,在本地内存的当前使用带宽超过本地内存的带宽阈值,且扩展内存的当前使用带宽未超过扩展内存的带宽阈值的情况下,为目标进程分配扩展内存,可以避免降低本地内存的应用的运行效率,提高了服务器进程处理的效率。
在一个示范性实施例中,在确定为目标进程分配扩展内存之后,上述方法还包括:
S51,向目标对象发送第一提示信息,其中,第一提示信息用于提示目标应用使用的内存为扩展内存。
在确定为目标进程分配扩展内存之后,可以向目标对象发送第一提示信息,这里的目标对象可以是用户、也可以是相关的运维开发人员,第一提示信息可以是用于指示目标应用使用的内存为扩展内存。
例如,在本地内存的使用带宽超过本地内存的带宽阈值,但CXL内存的使用带宽没超过CXL内存的带宽阈值的情况下,进程申请内存使用CXL内存,由于为进程分配的内存通常为本地内存,在为目标进程分配的内存为扩展内存的情况下,可以向用户发送第一提示信息,以提示用户应用使用的内存发生变化。
通过本实施例,在为目标进程分配的内存为扩展内存的情况下,发送提示信息,以告知目标对象应用使用的内存,可以提高服务器进程处理的可靠性。
在一个示范性实施例中,上述方法还包括:
S61,将扩展内存的预期带宽与第一比值的乘积和扩展内存的实际带宽与第二比值的乘积的最小值,确定为第二带宽阈值,其中,第一比值和第二比值均为大于0且小于1的值。
在本实施例中,可以分别计算扩展内存的预期带宽与第一比值的乘积和扩展内存的实际带宽与第二比值的乘积的最小值,并比较二者的大小,将二者中的最小值确定为第二带宽阈值,这里的第一比值和第二比值与前述相同,均为大于0且小于1的值。例如,将扩展内存的理论带宽(即,预期带宽)的65%和扩展内存的实际带宽的90%的最小值确定为本地内存的带宽阈值。
例如,通过阈值确定模块改造内核首先计算出计算出本地内存和CXL内存的理论带宽、测算出二者的实际带宽,进而确定本地内存的带宽阈值与CXL内存带宽阈值。
通过本实施例,根据扩展内存的预期带宽和实际带宽,确定扩展内存的带宽阈值,以确定扩展内存的当前使用带宽是否超过扩展内存的带宽阈值,可以避免扩展内部上的应用的运行速度降低,提高了服务器应用的运行效率。
在一个示范性实施例中,扩展内存的预期带宽为扩展内存的内存核心频率、第二倍增系数以及扩展内存的内存总线位数/8的乘积;上述方法还包括:
S71,使用扩展内存随机创建包含第二数量个元素的第四整型数组和包含第二数量个元素的第五整型数组;
S72,对第四整型数组和第五整型数组中相同位置的元素分别执行求和操作作为第六整型数组中相同位置上的元素,确定执行求和操作的第二总使用时长;
S73,将第二数量乘以8除以第二总使用时长所得到的值,确定为扩展内存的实际带宽。
如公式(2)所示,扩展内存的预期带宽可以为扩展内存的内存核心频率、第二倍增系数、以及扩展内存的内存总线位数/8的乘积:
其中,为扩展内存的预期带宽,第二倍增系数为扩展内存对应的倍增系数。
对于扩展内存的实际带宽,可以使用扩展内存随机创建均包含第二数量个元素的第四整型数组和第五整型数组,对第四整型数组和第五整型数组中相同位置的元素分别执行第二求和操作,得到第六整型数组中相同位置上的元素,确定执行第二求和操作的时长,得到第二总使用时长,将第二数量乘以8除以第二总使用时长所得到的值,确定为扩展内存的实际带宽,这里的第二数量可以与第一数量相同,也可以与第一数量不同,本实施例中对此不做限定。
例如,在扩展内存中随机创建10000000个元素的整型数组和1000000个元素的数组/>,令/>,统计总使用时间T,扩展内存的实际带宽。
通过本实施例,通过使用扩展内存进行测算,可以确定扩展内存的实际带宽,以确定扩展内存的预期带宽,可以提高服务器进程处理的可靠性。
在一个示范性实施例中,在本地内存的当前使用带宽大于或者等于第一带宽阈值、且扩展内存的当前使用带宽小于预设的第二带宽阈值的情况下,确定为目标进程分配扩展内存,包括:
S81,在本地内存的当前使用带宽大于或者等于第一带宽阈值、且扩展内存的当前使用带宽小于预设的第二带宽阈值的情况下,当扩展内存的数量为多个时,确定为目标进程分配多个扩展内存中使用优先级最高的目标扩展内存。
在本地内存的当前使用带宽大于或者等于第一带宽阈值、且扩展内存的当前使用带宽小于预设的第二带宽阈值的情况下,确定为目标进程分配扩展内存,在扩展内存的数量为多个的情况下,可以根据多个扩展内存中每个扩展内存的使用优先级,将多个扩展内存中使用优先级最高的扩展内存,确定为给目标进程分配的目标扩展内存。
例如,在本地内存的使用带宽超过本地内存的带宽阈值的情况下,本地内存的使用带宽超过本地内存的带宽阈值,且CXL内存的使用带宽未超过CXL内存的带宽阈值,新创建的进程需要申请CXL内存,优先使用优先级高的CXL内存。
通过本实施例,在确定为目标进程分配扩展内存的情况下,将使用优先级最好的扩展内存分配给目标进程,可以确保扩展内存的有序使用,提高了服务器内存的利用率。
在一个示范性实施例中,上述方法还包括:
S91,获取服务器的基本输入输出系统所传输的、与每个扩展内存对应的节点距离信息,其中,与每个扩展内存对应的节点距离信息用于指示每个扩展内存与服务器的中央处理器之间的硬件线路长度;
S92,基于与每个扩展内存对应的节点距离信息,确定每个扩展内存的使用优先级,其中,每个扩展内存的使用优先级与每个扩展内存的硬件线路长度负相关。
在本实施例中,可以获取服务器的基本输入输出系统(Basic Input OutputSystem,简称BIOS)传输的与每个扩展内存对应的节点距离信息,这里的与每个扩展内存对应的节点距离信息可以用于指示每个扩展内存与服务器的中央处理器(CentralProcessing Unit,简称CPU)之间的硬件线路的长度。
如图3所示,对于CPU,CPU和扩展内存之间的硬件线路长度越短,则CPU调用该扩展内存的速度越快,因此可以根据与每个扩展内存对应的节点距离信息,确定每个扩展内存的使用优先级,使得每个扩展内存的使用优先级与每个扩展内存的硬件线路长度负相关,即,扩展内存的硬件线路长度越短,对应的使用优先级越高。
例如,如图4所示,通过CXL使用优先级确定模块,根据BIOS传输的节点距离信息,确定每个CPU的CXL内存使用优先级并设置CXL使用优先级表,对于CPU,距离其节点距离越短的CXL内存的使用优先级越高。
如图5所示,通过BIOS获取内存硬件信息并进行内存类型识别可以包括以下步骤:
步骤S502,开机,启动服务器;
步骤S504,BIOS内存信息传递给内核;
步骤S506,内核计算出阈值、内存使用优先级;
步骤S508,实时检测服务器上各个应用的本地内存总使用带宽和CXL内存总使用带宽;
步骤S510,内存控制进程使用本地内存或者CXL内存。
通过本实施例,根据每个扩展内存的节点距离信息,确定每个扩展内存的使用优先级,以根据每个扩展内存的使用优先级为目标进程分配扩展内存,可以提高服务器进程的执行效率。
在一个示范性实施例中,获取服务器的基本输入输出系统所传输的、与每个扩展内存对应的节点距离信息,包括:
S101,在服务器开机启动的情况下,获取服务器的基本输入输出系统所传输的、与每个扩展内存对应的节点距离信息。
在服务器开机启动的情况下,服务器的BIOS可以收集并传输与每个扩展内存对应的节点距离信息,可以获取服务器的BIOS所传输的、与每个扩展内存对应的节点距离信息。
通过本实施例,通过获取BIOS传输的与每个扩展内存对应的节点距离信息,以确定每个扩展内存的使用优先级,可以提高服务器进程处理的可靠性。
在一个示范性实施例中,基于本地内存的当前使用带宽和扩展内存的当前使用带宽与预设的带宽阈值,从本地内存和扩展内存中确定出为目标进程分配的目标带宽,包括:
S111,在本地内存的当前使用带宽大于或者等于第一带宽阈值、且扩展内存的当前使用带宽大于或者等于第二带宽阈值的情况下,确定为目标进程分配本地内存,其中,目标内存为本地内存。
在本地内存的当前使用带宽大于或者等于第一带宽阈值、且扩展内存的当前使用带宽大于或者等于第二带宽阈值的情况下,无法为目标进程分配扩展内存,为了确保目标进程能够执行,可以确定为目标进程分配本地内存,需要说明的是,在本地内存的当前使用带宽大于或者等于第一带宽阈值的情况下,为目标进程分配本地内存,可能会影响本地内存上的应用的运行效率。
例如,在本地内存的总使用带宽超过本地内存的带宽阈值且CXL内存的总使用带宽超过CXL内存的带宽阈值时,新创建的进程需要申请本地内存。
通过本实施例,在本地内存和扩展内存的当前使用带宽均超过各自的带宽阈值的情况下,为目标进程分配本地内存,可以确保目标进程能够执行,提高了服务器进程处理的可靠性。
下面结合可选示例对本实施例中的服务器进程的处理方法进行解释说明。在本可选示例中,目标应用为深度学习模型对应的应用,扩展内存为CXL内存。
本可选示例中提供的是一种多路服务器的内存带宽检测及扩展的方案,实时检测服务器上各个应用的本地内存总使用带宽和CXL内存总使用带宽,并根据本地内存总使用带宽和CXL内存总使用带宽以及预设的带宽阈值,进行内存的分配,可以避免服务器中运行的深度学习模型应用过大或使用样本过多时,出现内存带宽不足导致深度学习应用的训练、推理速度变慢的问题。
如图6所示,本可选示例中的服务器进程的处理方法的流程可以包括以下步骤:
步骤1,开始;
步骤2,确定是否创建新进程,若是则执行步骤3,否则继续执行步骤2;
步骤3,判断本地内存的使用带宽是否超过本地内存的带宽阈值,若是则执行步骤步骤4,否则执行步骤7;
步骤4,提醒;
步骤5,判断CXL内存的使用带宽是否超过CXL内存的带宽阈值,若是则执行步骤步骤7,否则执行步骤6;
步骤6,进程分配CXL内存;
步骤7,进程分配本地内存;
步骤8,结束。
通过本示例,通过本地内存的使用带宽、CXL内存的带宽阈值以及预设的带宽阈值,为进程分配内存,可以提高服务器整体的运行效率。
在一个示范性实施例中,在确定为目标进程分配本地内存之后,上述方法还包括:
S121,向目标对象发送第二提示信息,其中,第二提示信息用于提示本地内存的内存带宽以及扩展内存的内存带宽的使用超过设定的带宽阈值,由于目标进程的开启服务器上已开启应用的运行效率降低。
在本地内存的当前使用带宽大于或者等于第一带宽阈值、且扩展内存的当前使用带宽大于或者等于第二带宽阈值的情况下,在确定为目标进程分配本地内存之后,可以向目标对象发送第二提示信息,这里的第二提示信息用于指示本地内存的内存带宽的使用已超过本地内存的预设的带宽阈值,扩展内存的内存带宽的使用已超过扩展内存的预设的带宽阈值,并且目标进程的开启会导致服务器上已开启的应用的运行效率降低。
例如,当本地内存的使用带宽超过本地内存的带宽阈值,CXL内存的使用带宽也超过CXL内存的带宽阈值时,进程申请内存使用本地内存,并提醒用户应用对内存带宽的使用已到达极限,开启新的应用会影响已开启应用效率。
通过本实施例,在本地内存和扩展内存的当前使用带宽均超过各自的带宽阈值的情况下,向目标对象发送提示信息,提示目标进程的开启会导致已开启应用的运行效率降低,可以提高服务器进程处理的可靠性。
在一个示范性实施例中,在服务器上的目标应用待创建目标进程的情况下,确定服务器的本地内存的当前使用带宽以及服务器上的扩展内存的当前使用带宽,包括:
S131,在服务器上的目标应用待创建目标进程的情况下,获取单位时间内服务器上的每个进程的虚拟内存空间的带宽使用参数,其中,每个进程的虚拟内存空间的带宽使用参数用于表示每个进程对于本地内存的内存带宽和扩展内存的内存带宽的使用量;
S132,基于每个进程的虚拟内存空间的带宽使用参数,确定本地内存的当前使用带宽以及扩展内存的当前使用带宽。
在服务器上的目标应用待创建目标进程的情况下,可以获取单位时间内服务器上的每个进程的虚拟内存空间的带宽使用参数,这里的虚拟内存空间指的是计算机系统内存管理中作为内存使用的一部分硬盘空间,每个进程都具有各自的虚拟内存空间,每个进程的虚拟内存空间的带宽参数可以用于指示每个进程对于本地内存的内存带宽和扩展内存的内存带宽的使用量。
根据每个进程的虚拟内存空间的带宽使用参数,可以确定本地内存的当前使用带宽以及扩展内存的当前使用带宽。
通过本实施例,根据每个进程的虚拟内存空间的贷款使用参数,确定本地内存的当前使用带宽和扩展内存的当前使用带宽,可以得到本地内存和扩展内存的带宽使用情况,提高了服务器进程处理的可靠性。
在一个示范性实施例中,基于每个进程的虚拟内存空间的带宽使用参数,确定本地内存的当前使用带宽以及扩展内存的当前使用带宽,包括:
S141,基于每个进程的虚拟内存空间的带宽使用参数,确定每个进程的本地内存使用带宽以及每个进程的扩展内存使用带宽,其中,每个进程的本地内存使用带宽为每个进程所使用的本地内存的内存带宽,每个进程的扩展内存使用带宽为每个进程所使用的扩展内存的内存带宽;
S142,将每个进程的本地内存使用带宽的和,确定为本地内存的当前使用带宽,以及将每个进程的扩展内存使用带宽的和,确定为扩展内存的当前使用带宽。
根据每个进程的虚拟内存空间的带宽使用参数,可以确定每个进程的本地内存使用带宽(即,每个进程所使用的本地内存的内存带宽)以及每个进程的扩展内存使用带宽(每个进程所使用的扩展内存的内存带宽)。
本地内存的当前使用带宽为每个进程的本地内存使用带宽的和,相应地,扩展内存的当前使用带宽为每个进程的扩展内存使用带宽的和。
通过本实施例,根据每个进程的本地内存使用带宽和扩展内存使用带宽确定本地内存的当前使用带宽和扩展内存的当前使用带宽,可以得到本地内存和扩展内存的带宽使用情况,提高了服务器进程处理的可靠性。
在一个示范性实施例中,基于每个进程的虚拟内存空间的带宽使用参数,确定每个进程的本地内存使用带宽以及每个进程的扩展内存使用带宽,包括:
S151,将每个进程的虚拟内存空间的本地内存申请量与每个进程的虚拟内存空间的本地内存释放量的和除以单位时间所得到的值,确定为每个进程的本地内存使用带宽;
S152,将每个进程的虚拟内存空间的扩展内存申请量与每个进程的虚拟内存空间的扩展内存释放量的和除以单位时间所得到的值,确定为每个进程的扩展内存使用带宽。
如公式(3)所示,每个进程的本地内存使用带宽可以为每个进程的虚拟内存空间的本地内存申请量与每个进程的虚拟内存空间的本地内存释放量之和除以单位时间所得到的值:
其中,分别为通过内核实时记录单位时间(T)内每个进程的虚拟内存空间的本地内存申请量、本地内存释放量。
如公式(4)所示,每个进程的扩展内存使用带宽可以为每个进程的虚拟内存空间的扩展内存申请量与每个进程的虚拟内存空间的扩展内存释放量之和除以单位时间所得到的值:
其中,分别为通过内核实时记录单位时间(T)内每个进程的虚拟内存空间的扩展内存申请量、扩展内存释放量,例如,在扩展内存为CXL内存的情况下,/>为CXL内存使用带宽,/>分别为通过内核实时记录单位时间(T)内每个进程的虚拟内存空间的CXL内存申请量(/>)、CXL内存释放量(/>),可选地,上述基于每个进程的虚拟内存空间的带宽使用参数,确定每个进程的本地内存使用带宽以及每个进程的扩展内存使用带宽可以由内存带宽使用检测模块完成。
通过本实施例,通过确定每个进程的本地内存使用带宽以及扩展内存使用带宽,以确定本地内存的当前使用带宽和扩展内存的当前使用带宽,可以提高服务器进程处理的可靠性。
在一个示范性实施例中,上述方法还包括:
S161,通过服务器的基本输入输出系统读取服务器的内存硬件信息,其中,内存硬件信息用于指示服务器上的内存;
S162,基于内存硬件信息进行内存类型识别,得到本地内存和扩展内存。
服务器的基本输入输出系统可以读取服务器的内存硬盘信息,这里的内存硬件信息用于指示服务器上的内存的硬件信息,服务器上的内存包括但不限于服务器的本地内存和扩展内存。
根据内存硬件信息,可以进行内存类型识别,以确定服务器上的本地内存和扩展内存。可选地,BIOS可以支持NUMA(Non Uniform Memory Access,非统一内存访问)。在NUMA下,内存访问时间取决于处理器的内存位置,处理器访问它自己的本地存储器的速度比非本地存储器快一些。
可选地,可以根据内存信息确定本地内存的带宽阈值和CXL内存的带宽阈值,确定二者的带宽阈值的方式与前述类似,在此不做赘述。
例如,如图7所示,获取内存硬件信息并进行内存类型识别可以包括以下步骤:
步骤S702,开机,启动服务器;
步骤S704,BIOS收集内存硬件信息;
步骤S706,BIOS区分本地内存、CXL内存;
步骤S708,BIOS收集节点距离信息;
步骤S710,将信息传递给内核,传递给内核的信息可以包括但不限于CXL内存与各路CPU的节点距离信息、内存数量、内存插槽数量、内存传输速率等信息。
通过本实施例,通过BIOS系统获取内存硬件信息,识别出本地内存和扩展内存,以便于为目标进程分配内存,提高了内存分配的可靠性。
在一个示范性实施例中,扩展内存为计算快速链路CXL内存。
在本实施例中,扩展内存可以为CXL内存,扩展内存的功能均可以由CXL内存实现。
通过本实施例,通过将CXL内存作为扩展内存,并基于CXL内存和本地内存的使用情况为待创建的进程分配CXL内存或者本地内存,可以避免内存带宽不足导致的应用的运行效率降低,提高应用的运行效率。
在一个示范性实施例中,目标应用为使用深度学习模型的模型应用。
在本实施例中,目标应用可以为使用深度学习模型的模型应用,相应地,目标进程可以为使用深度学习模型的模型应用创建的进程。
通过本实施例,基于扩展内存和本地内存的使用情况为使用深度学习模型的模型应用的待创建的进程分配扩展内存或者本地内存,可以提高为使用深度学习模型的模型应用的运行效率。
通过本实施例,通过对请求-响应的方式进行不同操作系统之间的资源抢占,可以提高处理资源的利用率,同时,也可以提高业务处理的响应速度。
此外,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
根据本申请实施例的又一方面,还提供了一种服务器进程的处理装置,该装置用于实现上述实施例中所提供的服务器进程的处理方法,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图8是根据本申请实施例的一种服务器进程的处理装置的结构框图,如图8所示,该装置包括:
第一确定单元802,用于在所述服务器上的目标应用待创建目标进程的情况下,确定所述服务器的本地内存的当前使用带宽以及所述服务器上的扩展内存的当前使用带宽;
第二确定单元804,用于基于所述本地内存的当前使用带宽和所述扩展内存的当前使用带宽与预设的带宽阈值,从所述本地内存和所述扩展内存中确定出为所述目标进程分配的目标内存;
第一执行单元806,用于创建所述目标进程,并为创建的所述目标进程分配所述目标内存的内存带宽。
通过上述步骤,通过在服务器上的目标应用待创建目标进程的情况下,确定服务器的本地内存的当前使用带宽以及服务器上的扩展内存的当前使用带宽;基于本地内存的当前使用带宽和扩展内存的当前使用带宽与预设的带宽阈值,从本地内存和扩展内存中确定出为目标进程分配的目标内存;创建目标进程,并为创建的目标进程分配目标内存的内存带宽,可以解决相关技术中的内存使用方式存在由于内存带宽低导致的应用运行效率低的问题,提高了应用运行效率。
可选地,第二确定单元包括:
第一确定模块,用于在本地内存的当前使用带宽小于第一带宽阈值的情况下,确定为目标进程分配本地内存,其中,目标内存为本地内存。
可选地,上述装置还包括:
第三确定单元,用于将本地内存的预期带宽与第一比值的乘积和本地内存的实际带宽与第二比值的乘积的最小值,确定为第一带宽阈值,其中,第一比值和第二比值均为大于0且小于1的值。
可选地,本地内存的预期带宽为本地内存的内存核心频率、第一倍增系数以及本地内存的内存总线位数/8的乘积;上述装置还包括:
第一创建单元,用于使用本地内存随机创建包含第一数量个元素的第一整型数组和包含第一数量个元素的第二整型数组;
第二执行单元,用于对第一整型数组和第二整型数组中相同位置的元素分别执行第一求和操作作为第三整型数组中相同位置上的元素,确定执行第一求和操作的第一总使用时长;
第四确定单元,用于将第一数量乘以8除以第一总使用时长所得到的值,确定为本地内存的实际带宽。
可选地,第二确定单元包括:
第二确定模块,用于在本地内存的当前使用带宽大于或者等于第一带宽阈值、且扩展内存的当前使用带宽小于第二带宽阈值的情况下,确定为目标进程分配扩展内存,其中,目标内存为扩展内存。
可选地,上述装置还包括:
第一发送单元,用于在确定为目标进程分配扩展内存之后,向目标对象发送第一提示信息,其中,第一提示信息用于提示目标应用使用的内存为扩展内存。
可选地,上述装置还包括:
第五确定单元,用于将扩展内存的预期带宽与第一比值的乘积和扩展内存的实际带宽与第二比值的乘积的最小值,确定为第二带宽阈值,其中,第一比值和第二比值均为大于0且小于1的值。
可选地,扩展内存的预期带宽为扩展内存的内存核心频率、第二倍增系数以及扩展内存的内存总线位数/8的乘积;上述装置还包括:
第二创建单元,用于使用扩展内存随机创建包含第二数量个元素的第四整型数组和包含第二数量个元素的第五整型数组;
第三执行单元,用于对第四整型数组和第五整型数组中相同位置的元素分别执行求和操作作为第六整型数组中相同位置上的元素,确定执行求和操作的第二总使用时长;
第六确定单元,用于将第二数量乘以8除以第二总使用时长所得到的值,确定为扩展内存的实际带宽。
可选地,第二确定模块包括:
第一确定子模块,用于在本地内存的当前使用带宽大于或者等于第一带宽阈值、且扩展内存的当前使用带宽小于预设的第二带宽阈值的情况下,当扩展内存的数量为多个时,确定为目标进程分配多个扩展内存中使用优先级最高的目标扩展内存。
可选地,上述装置还包括:
获取单元,用于获取服务器的基本输入输出系统所传输的、与每个扩展内存对应的节点距离信息,其中,与每个扩展内存对应的节点距离信息用于指示每个扩展内存与服务器的中央处理器之间的硬件线路长度;
第七确定单元,用于基于与每个扩展内存对应的节点距离信息,确定每个扩展内存的使用优先级,其中,每个扩展内存的使用优先级与每个扩展内存的硬件线路长度负相关。
可选地,获取单元包括:
第一获取模块,用于在服务器开机启动的情况下,获取服务器的基本输入输出系统所传输的、与每个扩展内存对应的节点距离信息。
可选地,第二确定单元包括:
第三确定模块,用于在本地内存的当前使用带宽大于或者等于第一带宽阈值、且扩展内存的当前使用带宽大于或者等于第二带宽阈值的情况下,确定为目标进程分配本地内存,其中,目标内存为本地内存。
可选地,上述装置还包括:
第二发送单元,用于在确定为目标进程分配本地内存之后,向目标对象发送第二提示信息,其中,第二提示信息用于提示本地内存的内存带宽以及扩展内存的内存带宽的使用超过设定的带宽阈值,由于目标进程的开启服务器上已开启应用的运行效率降低。
可选地,第一确定单元包括:
第二获取模块,用于在服务器上的目标应用待创建目标进程的情况下,获取单位时间内服务器上的每个进程的虚拟内存空间的带宽使用参数,其中,每个进程的虚拟内存空间的带宽使用参数用于表示每个进程对于本地内存的内存带宽和扩展内存的内存带宽的使用量;
第四确定模块,用于基于每个进程的虚拟内存空间的带宽使用参数,确定本地内存的当前使用带宽以及扩展内存的当前使用带宽。
可选地,第二获取模块包括:
第二确定子模块,用于基于每个进程的虚拟内存空间的带宽使用参数,确定每个进程的本地内存使用带宽以及每个进程的扩展内存使用带宽,其中,每个进程的本地内存使用带宽为每个进程所使用的本地内存的内存带宽,每个进程的扩展内存使用带宽为每个进程所使用的扩展内存的内存带宽;
执行子模块,用于将每个进程的本地内存使用带宽的和,确定为本地内存的当前使用带宽,以及将每个进程的扩展内存使用带宽的和,确定为扩展内存的当前使用带宽。
可选地,第二确定子模块包括:
第一确定子单元,用于将每个进程的虚拟内存空间的本地内存申请量与每个进程的虚拟内存空间的本地内存释放量的和除以单位时间所得到的值,确定为每个进程的本地内存使用带宽;
第二确定子单元,用于将每个进程的虚拟内存空间的扩展内存申请量与每个进程的虚拟内存空间的扩展内存释放量的和除以单位时间所得到的值,确定为每个进程的扩展内存使用带宽。
可选地,上述装置还包括:
读取单元,用于通过服务器的基本输入输出系统读取服务器的内存硬件信息,其中,内存硬件信息用于指示服务器上的内存;
识别单元,用于基于内存硬件信息进行内存类型识别,得到本地内存和扩展内存。
可选地,扩展内存为计算快速链路CXL内存。
可选地,目标应用为使用深度学习模型的模型应用。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
根据本申请实施例的又一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
根据本申请实施例的又一个方面,还提供了一种用于实施上述服务器进程的处理方法的电子设备,该电子设备可以是服务器、终端、或者其组合。
图9是根据本申请实施例的一种可选的电子设备的结构框图,如图9所示,包括处理器902、通信接口904、存储器906和通信总线908,其中,处理器902、通信接口904和存储器909通过通信总线908完成相互间的通信,其中,
存储器906,用于存储计算机程序;
处理器902,用于执行存储器906上所存放的计算机程序时,实现如下步骤:
S1,在服务器上的目标应用待创建目标进程的情况下,确定服务器的本地内存的当前使用带宽以及服务器上的扩展内存的当前使用带宽;
S2,基于本地内存的当前使用带宽和扩展内存的当前使用带宽与预设的带宽阈值,从本地内存和扩展内存中确定出为目标进程分配的目标内存;
S3,创建目标进程,并为创建的目标进程分配目标内存的内存带宽。
可选地,通信总线可以是PCI (Peripheral Component Interconnect,外设部件互连标准)总线、或EISA (Extended Industry Standard Architecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子装置与其他设备之间的通信。
存储器可以包括RAM,也可以包括非易失性存储器(non-volatile memory),例如,至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
作为一种示例,上述存储器909中可以但不限于包括上述服务器进程的处理装置中的第一确定单元802、第二确定单元804、以及第一执行单元806。此外,还可以包括但不限于上述服务器进程的处理装置中的其他模块单元,本示例中不再赘述。
上述处理器可以是通用处理器,可以包含但不限于:CPU (Central ProcessingUnit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP (DigitalSignal Processing,数字信号处理器)、ASIC (Application Specific IntegratedCircuit,专用集成电路)、FPGA (Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图9所示的结构仅为示意,实施上述语音交互的处理方法的设备可以是终端设备,该终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图9其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图9中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图9所示的不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以至少两个单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (22)
1.一种服务器进程的处理方法,其特征在于,包括:
在所述服务器上的目标应用待创建目标进程的情况下,确定所述服务器的本地内存的当前使用带宽以及所述服务器上的扩展内存的当前使用带宽;
基于所述本地内存的当前使用带宽和所述扩展内存的当前使用带宽与预设的带宽阈值,从所述本地内存和所述扩展内存中确定出为所述目标进程分配的目标内存;
创建所述目标进程,并为创建的所述目标进程分配所述目标内存的内存带宽。
2.根据权利要求1所述的方法,其特征在于,所述基于所述本地内存的当前使用带宽和所述扩展内存的当前使用带宽与预设的带宽阈值,从所述本地内存和所述扩展内存中确定出为所述目标进程分配的目标内存,包括:
在所述本地内存的当前使用带宽小于第一带宽阈值的情况下,确定为所述目标进程分配所述本地内存,其中,所述目标内存为所述本地内存。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
将所述本地内存的预期带宽与第一比值的乘积和所述本地内存的实际带宽与第二比值的乘积的最小值,确定为所述第一带宽阈值,其中,所述第一比值和所述第二比值均为大于0且小于1的值。
4.根据权利要求3所述的方法,其特征在于,所述本地内存的预期带宽为所述本地内存的内存核心频率、第一倍增系数以及所述本地内存的内存总线位数/8的乘积;所述方法还包括:
使用所述本地内存随机创建包含第一数量个元素的第一整型数组和包含所述第一数量个元素的第二整型数组;
对所述第一整型数组和所述第二整型数组中相同位置的元素分别执行第一求和操作作为第三整型数组中相同位置上的元素,确定执行所述第一求和操作的第一总使用时长;
将所述第一数量乘以8除以所述第一总使用时长所得到的值,确定为所述本地内存的实际带宽。
5.根据权利要求1所述的方法,其特征在于,所述基于所述本地内存的当前使用带宽和所述扩展内存的当前使用带宽与预设的带宽阈值,从所述本地内存和所述扩展内存中确定出为所述目标进程分配的目标内存,包括:
在所述本地内存的当前使用带宽大于或者等于第一带宽阈值、且所述扩展内存的当前使用带宽小于第二带宽阈值的情况下,确定为所述目标进程分配所述扩展内存,其中,所述目标内存为所述扩展内存。
6.根据权利要求5所述的方法,其特征在于,在所述确定为所述目标进程分配所述扩展内存之后,所述方法还包括:
向目标对象发送第一提示信息,其中,所述第一提示信息用于提示所述目标应用使用的内存为所述扩展内存。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将所述扩展内存的预期带宽与第一比值的乘积和所述扩展内存的实际带宽与第二比值的乘积的最小值,确定为所述第二带宽阈值,其中,所述第一比值和所述第二比值均为大于0且小于1的值。
8.根据权利要求7所述的方法,其特征在于,所述扩展内存的预期带宽为所述扩展内存的内存核心频率、第二倍增系数以及所述扩展内存的内存总线位数/8的乘积;所述方法还包括:
使用所述扩展内存随机创建包含第二数量个元素的第四整型数组和包含所述第二数量个元素的第五整型数组;
对所述第四整型数组和所述第五整型数组中相同位置的元素分别执行求和操作作为第六整型数组中相同位置上的元素,确定执行所述求和操作的第二总使用时长;
将所述第二数量乘以8除以所述第二总使用时长所得到的值,确定为所述扩展内存的实际带宽。
9.根据权利要求5所述的方法,其特征在于,所述在所述本地内存的当前使用带宽大于或者等于所述第一带宽阈值、且所述扩展内存的当前使用带宽小于预设的第二带宽阈值的情况下,确定为所述目标进程分配所述扩展内存,包括:
在所述本地内存的当前使用带宽大于或者等于所述第一带宽阈值、且所述扩展内存的当前使用带宽小于预设的第二带宽阈值的情况下,当所述扩展内存的数量为多个时,确定为所述目标进程分配多个所述扩展内存中使用优先级最高的目标扩展内存。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
获取所述服务器的基本输入输出系统所传输的、与每个所述扩展内存对应的节点距离信息,其中,与每个所述扩展内存对应的节点距离信息用于指示每个所述扩展内存与所述服务器的中央处理器之间的硬件线路长度;
基于与每个所述扩展内存对应的节点距离信息,确定每个所述扩展内存的使用优先级,其中,每个所述扩展内存的使用优先级与每个所述扩展内存的硬件线路长度负相关。
11.根据权利要求10所述的方法,其特征在于,所述获取所述服务器的基本输入输出系统所传输的、与每个所述扩展内存对应的节点距离信息,包括:
在所述服务器开机启动的情况下,获取所述服务器的基本输入输出系统所传输的、与每个所述扩展内存对应的节点距离信息。
12.根据权利要求1所述的方法,其特征在于,所述基于所述本地内存的当前使用带宽和所述扩展内存的当前使用带宽与预设的带宽阈值,从所述本地内存和所述扩展内存中确定出为所述目标进程分配的目标带宽,包括:
在所述本地内存的当前使用带宽大于或者等于第一带宽阈值、且所述扩展内存的当前使用带宽大于或者等于第二带宽阈值的情况下,确定为所述目标进程分配所述本地内存,其中,所述目标内存为所述本地内存。
13.根据权利要求12所述的方法,其特征在于,在所述确定为所述目标进程分配所述本地内存之后,所述方法还包括:
向目标对象发送第二提示信息,其中,所述第二提示信息用于提示所述本地内存的内存带宽以及所述扩展内存的内存带宽的使用超过设定的带宽阈值,由于所述目标进程的开启所述服务器上已开启应用的运行效率降低。
14.根据权利要求1所述的方法,其特征在于,所述在所述服务器上的目标应用待创建目标进程的情况下,确定所述服务器的本地内存的当前使用带宽以及所述服务器上的扩展内存的当前使用带宽,包括:
在所述服务器上的所述目标应用待创建所述目标进程的情况下,获取单位时间内所述服务器上的每个进程的虚拟内存空间的带宽使用参数,其中,所述每个进程的虚拟内存空间的带宽使用参数用于表示所述每个进程对于所述本地内存的内存带宽和所述扩展内存的内存带宽的使用量;
基于所述每个进程的虚拟内存空间的带宽使用参数,确定所述本地内存的当前使用带宽以及所述扩展内存的当前使用带宽。
15.根据权利要求14所述的方法,其特征在于,所述基于所述每个进程的虚拟内存空间的带宽使用参数,确定所述本地内存的当前使用带宽以及所述扩展内存的当前使用带宽,包括:
基于所述每个进程的虚拟内存空间的带宽使用参数,确定所述每个进程的本地内存使用带宽以及所述每个进程的扩展内存使用带宽,其中,所述每个进程的本地内存使用带宽为所述每个进程所使用的所述本地内存的内存带宽,所述每个进程的扩展内存使用带宽为所述每个进程所使用的所述扩展内存的内存带宽;
将所述每个进程的本地内存使用带宽的和,确定为所述本地内存的当前使用带宽,以及将所述每个进程的扩展内存使用带宽的和,确定为所述扩展内存的当前使用带宽。
16.根据权利要求15所述的方法,其特征在于,所述基于所述每个进程的虚拟内存空间的带宽使用参数,确定所述每个进程的本地内存使用带宽以及所述每个进程的扩展内存使用带宽,包括:
将所述每个进程的虚拟内存空间的本地内存申请量与所述每个进程的虚拟内存空间的本地内存释放量的和除以所述单位时间所得到的值,确定为所述每个进程的本地内存使用带宽;
将所述每个进程的虚拟内存空间的扩展内存申请量与所述每个进程的虚拟内存空间的扩展内存释放量的和除以所述单位时间所得到的值,确定为所述每个进程的扩展内存使用带宽。
17.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过所述服务器的基本输入输出系统读取所述服务器的内存硬件信息,其中,所述内存硬件信息用于指示所述服务器上的内存;
基于所述内存硬件信息进行内存类型识别,得到所述本地内存和所述扩展内存。
18.根据权利要求1至17中任一项所述的方法,其特征在于,所述扩展内存为计算快速链路CXL内存。
19.根据权利要求1至17中任一项所述的方法,其特征在于,所述目标应用为使用深度学习模型的模型应用。
20.一种服务器进程的处理装置,其特征在于,包括:
第一确定单元,用于在所述服务器上的目标应用待创建目标进程的情况下,确定所述服务器的本地内存的当前使用带宽以及所述服务器上的扩展内存的当前使用带宽;
第二确定单元,用于基于所述本地内存的当前使用带宽和所述扩展内存的当前使用带宽与预设的带宽阈值,从所述本地内存和所述扩展内存中确定出为所述目标进程分配的目标内存;
第一执行单元,用于创建所述目标进程,并为创建的所述目标进程分配所述目标内存的内存带宽。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现权利要求1至19中任一项所述的方法的步骤。
22.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至19中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311144713.0A CN116881016B (zh) | 2023-09-06 | 2023-09-06 | 服务器进程的处理方法及装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311144713.0A CN116881016B (zh) | 2023-09-06 | 2023-09-06 | 服务器进程的处理方法及装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116881016A true CN116881016A (zh) | 2023-10-13 |
CN116881016B CN116881016B (zh) | 2024-01-19 |
Family
ID=88268406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311144713.0A Active CN116881016B (zh) | 2023-09-06 | 2023-09-06 | 服务器进程的处理方法及装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116881016B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115729849A (zh) * | 2022-11-04 | 2023-03-03 | 超聚变数字技术有限公司 | 内存管理方法及计算设备 |
WO2023051359A1 (zh) * | 2021-09-30 | 2023-04-06 | 华为技术有限公司 | 控制内存带宽的方法、装置、处理器及计算设备 |
CN116126742A (zh) * | 2023-01-30 | 2023-05-16 | 苏州浪潮智能科技有限公司 | 内存访问方法、装置、服务器及存储介质 |
CN116521429A (zh) * | 2023-06-27 | 2023-08-01 | 苏州浪潮智能科技有限公司 | 资产信息的上报方法及装置、存储介质及电子设备 |
CN116521608A (zh) * | 2023-03-21 | 2023-08-01 | 超聚变数字技术有限公司 | 数据迁移方法及计算设备 |
-
2023
- 2023-09-06 CN CN202311144713.0A patent/CN116881016B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023051359A1 (zh) * | 2021-09-30 | 2023-04-06 | 华为技术有限公司 | 控制内存带宽的方法、装置、处理器及计算设备 |
CN115729849A (zh) * | 2022-11-04 | 2023-03-03 | 超聚变数字技术有限公司 | 内存管理方法及计算设备 |
CN116126742A (zh) * | 2023-01-30 | 2023-05-16 | 苏州浪潮智能科技有限公司 | 内存访问方法、装置、服务器及存储介质 |
CN116521608A (zh) * | 2023-03-21 | 2023-08-01 | 超聚变数字技术有限公司 | 数据迁移方法及计算设备 |
CN116521429A (zh) * | 2023-06-27 | 2023-08-01 | 苏州浪潮智能科技有限公司 | 资产信息的上报方法及装置、存储介质及电子设备 |
Non-Patent Citations (2)
Title |
---|
KYUNGSAN KIM 等: "SMT Software-Defined Memory Tiering_for Heterogeneous Computing Systems With CXL Memory Expander", 《IEEE》 * |
赵阳洋;陈明宇;金旭;阮元;张雪琳;: "基于标准DDR总线的内存扩展芯片的设计与实现", 高技术通讯, no. 03 * |
Also Published As
Publication number | Publication date |
---|---|
CN116881016B (zh) | 2024-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190394132A1 (en) | System and Method for Network Slicing for Service-Oriented Networks | |
CN112286644B (zh) | Gpu虚拟化算力的弹性调度方法、系统、设备和存储介质 | |
CN110362492B (zh) | 人工智能算法测试方法、装置、服务器、终端及存储介质 | |
US9471383B2 (en) | Task allocation in a computing environment | |
CN104461698A (zh) | 虚拟磁盘动态挂载的方法、管理装置及分布式存储系统 | |
CN113191114B (zh) | 用于验证系统的方法和装置 | |
CN112860387A (zh) | 分布式任务调度方法、装置、计算机设备及存储介质 | |
CN115033352A (zh) | 多核处理器任务调度方法、装置及设备、存储介质 | |
CN104461404A (zh) | 元数据存储方法、装置以及系统 | |
CN112988383A (zh) | 一种资源分配方法、装置、设备以及存储介质 | |
CN117785487B (zh) | 一种算力资源调度方法、装置、设备和介质 | |
CN110796591A (zh) | 一种gpu卡的使用方法及相关设备 | |
CN116881016B (zh) | 服务器进程的处理方法及装置、存储介质及电子设备 | |
CN110543432B (zh) | 内存碎片整理方法、装置、终端及存储介质 | |
CN112631577B (zh) | 一种模型的调度方法、模型调度器以及模型安全测试平台 | |
CN114238157A (zh) | 工作量证明的获取装置、方法、电子设备、存储介质 | |
CN111598390B (zh) | 服务器高可用性评估方法、装置、设备和可读存储介质 | |
CN114513469A (zh) | 分布式系统的流量整形方法、装置和存储介质 | |
CN111597052B (zh) | 芯片管控方法、装置、服务器及可读存储介质 | |
CN113645082B (zh) | 一种as5643网络动态仿真测试方法及装置 | |
CN116743589B (zh) | 云主机迁移方法、装置及电子设备 | |
CN113099488B (zh) | 解决网络拥塞的方法、装置、计算设备及计算机存储介质 | |
CN117640541B (zh) | 一种云服务器资源分配方法、装置、设备和介质 | |
CN110213314B (zh) | 确定存储节点的方法、装置、服务器 | |
CN117762720A (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 |