CN116932229B - 一种内存分配方法、装置、网络管理器及存储介质 - Google Patents
一种内存分配方法、装置、网络管理器及存储介质 Download PDFInfo
- Publication number
- CN116932229B CN116932229B CN202311188376.5A CN202311188376A CN116932229B CN 116932229 B CN116932229 B CN 116932229B CN 202311188376 A CN202311188376 A CN 202311188376A CN 116932229 B CN116932229 B CN 116932229B
- Authority
- CN
- China
- Prior art keywords
- memory device
- memory
- host
- cxl
- switch
- 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 47
- 238000004891 communication Methods 0.000 claims abstract description 9
- 230000004044 response Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 8
- 230000005012 migration Effects 0.000 description 10
- 238000013508 migration Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 229920011250 Polypropylene Block Copolymer Polymers 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- CWVMWSZEMZOUPC-JUAXIXHSSA-N (3s,5s,8r,9s,10s,13s,14s,16r)-16-bromo-3-hydroxy-10,13-dimethyl-1,2,3,4,5,6,7,8,9,11,12,14,15,16-tetradecahydrocyclopenta[a]phenanthren-17-one Chemical compound C1[C@@H](O)CC[C@]2(C)[C@H]3CC[C@](C)(C([C@H](Br)C4)=O)[C@@H]4[C@@H]3CC[C@H]21 CWVMWSZEMZOUPC-JUAXIXHSSA-N 0.000 description 2
- 208000036829 Device dislocation Diseases 0.000 description 2
- 101100352915 Schizosaccharomyces pombe (strain 972 / ATCC 24843) ppb1 gene Proteins 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- CQIZBIFTOGBKDB-UHFFFAOYSA-N 4-cyclohexyl-1-methyl-3,6-dihydro-2h-pyridine Chemical compound C1N(C)CCC(C2CCCCC2)=C1 CQIZBIFTOGBKDB-UHFFFAOYSA-N 0.000 description 1
- 101100076239 Drosophila melanogaster Mctp gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid 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
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
技术领域
本申请涉及通信技术领域,特别是涉及一种内存分配方法、装置、网络管理器及存储介质。
背景技术
在CXL(Compute Express Link,计算高速链路)网络架构中,对于分配给主机的设备内存,主机通过服务质量(Quality of Service,QOS)遥测功能,探测内存设备的内存负载状态,根据内存负载状态调整主机请求速率限制。例如,内存负载状态过载时,调小主机针对该内存设备的请求速率限制。内存设备可以为SLD(Single Logical Device,单逻辑设备),也可以为MLD(Multiple Logical Device,多逻辑设备)。实际应用中,仅仅调整主机请求速率限制,并不能解决内存过载等问题。
发明内容
本申请实施例的目的在于提供一种内存分配方法、装置、网络管理器及存储介质,以解决内存过载问题。具体技术方案如下:
第一方面,本申请实施例提供了一种内存分配方法,应用于网络管理器,所述方法包括:
确定分配给主机的内存设备中过载的第一内存设备;
从未与任何主机绑定的内存设备中,选择第二内存设备,所述第二内存设备的属性优于所述第一内存设备的属性;
将所述第二内存设备分配给所述主机,以使所述主机将所述第一内存设备中的内存数据迁移至所述第二内存设备。
在一些实施例中,所述确定分配给主机的内存设备中过载的第一内存设备的步骤,包括:
从分配给主机的每个内存设备中,获取每个内存设备的请求频率;
从所述主机中,获取所述每个内存设备的动态负载状态和带宽信息;
根据所述取每个内存设备的请求频率、动态负载状态和带宽信息,确定过载的第一内存设备。
在一些实施例中,每个内存设备包括第一计数器和第二计数器;所述第一计数器记录内存请求数与内存响应数的差值,所述第二计数器记录内存请求数,所述内存请求数为内存设备接收到所述主机发送的内存请求的数量,所述内存响应数为内存设备向所述主机发送的内存响应的数量;
所述从分配给主机的每个内存设备中,获取每个内存设备的请求频率的步骤,包括:
从分配给主机的每个内存设备中,获取每个内存设备中所述第一计数器和所述第二计数器中记录的数值,作为每个内存设备的请求频率。
在一些实施例中,所述属性包括时延和带宽中的一种或多种。
在一些实施例中,所述属性包括时延;
所述从未与任何主机绑定的内存设备中,选择第二内存设备的步骤,包括:
根据CXL网络的拓扑结构,从未与任何主机绑定的内存设备中,选择与所述主机通信时延最低的第二内存设备。
在一些实施例中,所述第一内存设备与第一CXL交换机连接,所述第二内存设备与第二CXL交换机连接,所述第一CXL交换机和所述第二CXL交换机级联,且所述第一CXL交换机和所述第二CXL交换机中高层级的CXL交换机与所述主机连接。
第二方面,本申请实施例提供了一种内存分配装置,应用于网络管理器,所述装置包括:
确定单元,用于确定分配给主机的内存设备中过载的第一内存设备;
选择单元,用于从未与任何主机绑定的内存设备中,选择第二内存设备,所述第二内存设备的属性优于所述第一内存设备的属性;
分配单元,用于将所述第二内存设备分配给所述主机,以使所述主机将所述第一内存设备中的内存数据迁移至所述第二内存设备。
在一些实施例中,所述确定单元,具体用于:
从分配给主机的每个内存设备中,获取每个内存设备的请求频率;
从所述主机中,获取所述每个内存设备的动态负载状态和带宽信息;
根据所述取每个内存设备的请求频率、动态负载状态和带宽信息,确定过载的第一内存设备。
在一些实施例中,每个内存设备包括第一计数器和第二计数器;所述第一计数器记录内存请求数与内存响应数的差值,所述第二计数器记录内存请求数,所述内存请求数为内存设备接收到所述主机发送的内存请求的数量,所述内存响应数为内存设备向所述主机发送的内存响应的数量;
所述确定单元,具体用于:
从分配给主机的每个内存设备中,获取每个内存设备中所述第一计数器和所述第二计数器中记录的数值,作为每个内存设备的请求频率。
在一些实施例中,所述属性包括时延和带宽中的一种或多种。
在一些实施例中,所述属性包括时延;
所述选择单元,具体用于:
根据CXL网络的拓扑结构,从未与任何主机绑定的内存设备中,选择与所述主机通信时延最低的第二内存设备。
在一些实施例中,所述第一内存设备与第一CXL交换机连接,所述第二内存设备与第二CXL交换机连接,所述第一CXL交换机和所述第二CXL交换机级联,且所述第一CXL交换机和所述第二CXL交换机中高层级的CXL交换机与所述主机连接。
第三方面,本申请实施例提供了一种网络管理器,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述第一方面任一所述的方法步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的方法步骤。
本申请实施例有益效果:
本申请实施例提供的技术方案中,在主机的一个内存设备(第一内存设备)过载时,网络管理器从未与任何主机绑定的众多内存设备中,选择属性更优的内存设备,即第二内存设备,将该第二内存设备替换第一内存设备,分配给主机,由于主机使用了相对于第一内存设备属性更优的第二内存设备,从根本上解决了第一内存设备过载的问题。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为CXL网络架构的第一种示意图;
图2为CXL网络架构的第二种示意图;
图3为本申请实施例提供的内存分配方法的第一种流程示意图;
图4为本申请实施例提供的CXL网络架构的一种示意图;
图5为本申请实施例提供的内存分配方法的第二种流程示意图;
图6为本申请实施例提供的内存分配方法的第三种流程示意图;
图7a为本申请实施例提供的网络架构的第一种示意图;
图7b为本申请实施例提供的网络架构的第二种示意图;
图8为本申请实施例提供的设备迁移的一种示意图;
图9为本申请实施例提供的内存分配装置的一种流程示意图;
图10为本申请实施例提供的网络管理器的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
为便于理解,下面对本申请实施例中出现的词语进行解释说明。
计算高速链路(Compute Express Link,CXL):为内存扩展、异构计算和系统资源分解而设计的互连,是一种在主机(如CPU)和设备(如内存的加速器)之间实现高带宽、低延迟链接的技术。使用CXL进行解聚可提供高效的资源共享和池化,同时通过缓存一致的load-store(加载存储)语义保持低延迟和高带宽。
CXL网络管理器(Fabric Management,FM):负责系统组合和资源分配的应用程序逻辑。FM可以嵌入在CXL交换机等设备的固件,可以驻留在主机上,也可以在基板管理控制器(Baseboard Management Controller,BMC)中运行。如图1所示的CXL网络架构,FM在BMC中运行,CXL网络管理器可以简称为网络管理器。
逻辑设备(Logical Device,LD):携带一堆内存(Just Bundle of Memorym,JBOM),实现了内存池,如双倍速率(Double Data Rate,DDR5)池。CXL网络中包括单逻辑设备(SLD)和多逻辑设备(MLD),SLD的资源不可以划分,MLD的资源可以划分为16个独立的LD。FM可以通过对命令控制接口(Command Control Interface,CCI)进行编程来管理SLD和MLD。
CCI:在物理上直接驻留在交换机、LD等组件上,作为PCIE(Peripheral ComponentInterconnect Express,高速串行计算机扩展总线标准)内存映射输入/输出(Memorymapping Input/Output,MMIO)空间,或作为管理组件传输协议(Management ComponentTransport Protocol,MCTP)端点(Endpoint,EP),可在其中发送命令、报告状态和读取响应。具体的CXL网络架构如图1所示。
在CXL网络架构中,对于分配给主机的设备内存,主机通过服务质量遥测功能,探测内存设备的内存负载状态,根据内存负载状态调整主机请求速率限制。例如,内存负载状态过载时,调小主机针对该内存设备的请求速率限制。内存设备可以为上述SLD,也可以为MLD。
实际应用中,仅仅调整主机请求速率限制,并不能解决内存过载等问题。为解决内存过载的问题,本申请实施例提供了一种内存分配方法,该方法可以适用于级联场景以及非级联场景。在非级联场景中,CXL网络架构如图1所示,一个CXL交换机下连接一个或多个设备,包括SLD和MLD。在级联场景中,一个CXL交换机下连接一个或多个设备以及一个或多个CXL交换机,例如,第一内存设备与第一CXL交换机连接,第二内存设备与第二CXL交换机连接,第一CXL交换机和所述第二CXL交换机级联,且第一CXL交换机和第二CXL交换机中高层级的CXL交换机与主机连接。具体参见图2所示的CXL网络架构,如图2中,主机0-主机1连接CXL交换机21,CXL交换机21与LD10和LD11、CXL交换机22连接,CXL交换机22与LD12和LD13连接。图2中仅示出了两级级联,并不起限定作用。
上述内存分配方法中,在主机的一个内存设备(第一内存设备)过载时,FM从未与任何主机绑定的众多内存设备中,选择属性更优的内存设备,即第二内存设备,将该第二内存设备替换第一内存设备,分配给主机,由于主机使用了相对于第一内存设备属性更优的第二内存设备,从根本上解决了第一内存设备过载的问题。
下面通过具体实施例,对本申请实施例提供的内存分配方法进行详细说明。
参见图3,图3为本申请实施例提供的内存分配方法的第一种流程示意图,该方法应用于FM,包括如下步骤。
步骤S31,确定分配给主机的内存设备中过载的第一内存设备。
本申请实施例中,主机可以具有一个或多个内存设备,第一内存设备为这些内存设备中的任一个。内存设备可以为上述SLD,也可以为MLD划分得到的一个LD。本申请实施例中,内存设备可以为Type 3设备,即内存扩展设备,Type 3设备可以用于增加存储器的容量和带宽。
主机可以通过QOS遥测功能,探测分配给该主机的内存设备,获得每个内存设备的动态负载状态和带宽信息等。FM与主机交互,获得每个内存设备的动态负载状态和带宽信息等,进而根据这些信息,确定出过载的第一内存设备。
步骤S32,从未与任何主机绑定的内存设备中,选择第二内存设备,第二内存设备的属性优于第一内存设备的属性。
本申请实施例中,未与任何主机绑定的内存设备即为空闲的内存设备,也就是,挂载在主机连接的CXL交换机下,未与任何主机绑定的内存设备,如图2中的LD11和LD13。内存设备的属性可以包括时延和带宽中的一种或多种。
在确定第一内存设备过载的情况下,FM从挂载在主机连接的CXL交换机下且未与任何主机绑定的内存设备中,选择属性优于第一内存设备的内存设备,即第二内存设备。例如,选择与主机通信的时延低于第一内存设备的第二内存设备,或选择与主机通信的带宽高于第一内存设备的第二内存设备。
步骤S33,将第二内存设备分配给主机,以使主机将第一内存设备中的内存数据迁移至第二内存设备。
在确定第二内存设备后,FM将主机与第二内存设备绑定,实现第二内存设备分配给主机。在主机与第二内存设备绑后,主机将第一内存设备中的内存数据迁移至第二内存设备,完成内存迁移。后续,主机可以释放第一内存设备,访问第二内存设备来实现内存数据的读写。
例如,如图2所示,对于主机1,LD12过载,FM选择了时延小于LD12的LD11,将LD11与主机1绑定,并将LD12中的内存数据迁移至LD11,如图4所示。主机1可以释放LD12,访问LD11来实现内存数据的读写。
应用本申请实施例提供的技术方案,在主机的一个内存设备(第一内存设备)过载时,FM从未与任何主机绑定的众多内存设备中,选择属性更优的内存设备,即第二内存设备,将该第二内存设备替换第一内存设备,分配给主机,由于主机使用了相对于第一内存设备属性更优的第二内存设备,从根本上解决了第一内存设备过载的问题。
在一些实施例中,如图5所示,还提供了一种内存分配方法,可以包括如下步骤。
步骤S51,从分配给主机的每个内存设备中,获取每个内存设备的请求频率。
本申请实施例中,每个内存设备分别会记录主机对自身的请求频率。针对分配给主机的每个内存设备,FM从该内存设备中,获取主机对该内存设备的请求频率。
在一些实施例中,每个内存设备可以包括第一计数器(ReqCnt[LD])和第二计数器CmpCnt[Hist];第一计数器记录内存请求数与内存响应数的差值,第二计数器记录内存请求数,内存请求数为内存设备接收到主机发送的内存请求的数量,内存响应数为内存设备向主机发送的内存响应的数量。也就是,对于一个内存设备,每次收到主机对该内存设备的请求时第一计数器都会递增,每次内存设备向主机发送响应时,第一计数器都会递减。第一计数器反映了瞬时的“提交”利用率,允许快速反应传入请求,特别是当请求突发时。第二计数器记录的信息为主机对内存的请求服务历史请求统计。
基于第一计数器和第二计数器,上述步骤S51可以为:从分配给主机的每个内存设备中,获取每个内存设备中第一计数器和第二计数器中记录的数值,作为每个内存设备的请求频率。
基于此,FM分别从两个维度,对内存设备的请求频率进行衡量,提高了内存设备的负载状态判断的准确性。
步骤S52,从主机中,获取每个内存设备的动态负载状态和带宽信息。
主机可以通过QOS遥测功能,探测分配给该主机的内存设备,获得每个内存设备的动态负载状态和带宽信息等。FM可以对CCI进行编程来从主机获取每个内存设备的动态负载状态和带宽信息等。动态负载状态可以分为轻负载状态、最佳负载状态、中等负载状态和严重负载状态。中等负载状态和严重负载状态均可以作为过载状态,也可以仅将严重负载状态作为过载状态。
FM也可以通过对CCI进行编程来管理SLD、MLD、CXL交换机和内存池控制器等设备。使用标准化的应用程序接口(Application Programming Interface,API),FM可以向内存设备发送命令,以收集错误信息、服务质量(QoS)状态和带宽信息等。
本申请实施例中,不限定步骤S51和步骤S52的执行顺序。
步骤S53,根据取每个内存设备的请求频率、动态负载状态和带宽信息,确定过载的第一内存设备。
本申请实施例中,FM中可以配置请求频率阈值、带宽阈值等。当一个内存设备的请求频率高于请求频率阈值,带宽信息高于带宽阈值,动态负载状态指示为过载状态时,FM可以认为该内存设备为过载的第一内存设备。
步骤S54,从未与任何主机绑定的内存设备中,选择第二内存设备,第二内存设备的属性优于第一内存设备的属性。与上述步骤S32相同。
步骤S55,将第二内存设备分配给主机,以使主机将第一内存设备中的内存数据迁移至第二内存设备。与上述步骤S33相同。
本申请实施例提供的技术方案中,FM与主机协同,实现QOS遥测技术和内存迁移技术的组合创新。通过内存负载、带宽、请求频率等多个指标的综合分析,可以选择最低时延访问路径,最大化利用高带宽的内存设备,解决了单一内存设备负载过高等问题。
在一些实施例中,如图6所示,还提供了一种内存分配方法,可以包括如下步骤。
步骤S61,确定分配给主机的内存设备中过载的第一内存设备。与上述步骤S31相同。
步骤S62,根据CXL网络的拓扑结构,从未与任何主机绑定的内存设备中,选择与主机通信时延最低的第二内存设备。
本申请实施例中,FM管理有CXL网络的拓扑结构,该拓扑结构可以体现出各个主机与CXL交换机的连接关系,以及CXL交换机与内存设备的连接关系。基于该拓扑结构,FM可以确定出空闲的内存设备,以及与主机通信时延最低的内存设备,进而确定出第二内存设备。
步骤S63,将第二内存设备分配给主机,以使主机将第一内存设备中的内存数据迁移至第二内存设备。与上述步骤S33相同。
本申请实施例提供的技术方案中,结合CXL网络的拓扑结构,视野更好地规划系统的资源池,实现系统资源分配的最优化,在解决的单一内存设备负载过高的问题的同时,实现了内存管理的自动化和精细化。
下面结合图7a和图7b所示的网络架构,对本申请实施例提供的内存分配方法进行说明。图7a和图7b中,根端口0与主机0连接、根端口1与主机1连接,EP为一个CCI,与FM连接。根端口0、根端口1和EP位于CXL交换机上。在CXL交换机上包括两个虚拟CXL交换机(VirtualCXL Switch,VCS),即VCS0-VCS1。VCS0包括虚拟私有总线(Virtual Private PeripheryBus,vPPB),如vPPB1-vPPB3,VCS1包括vPPB4-vPPB6。此外,CXL交换机上还包括物理的PPB,如PPB1-PPB3。
图7a中,vPPB1与PPB1绑定,主机0通过vPPB1、PPB1可以访问内存设备1,vPPB5与PPB3绑定,主机1通过vPPB5、PPB3可以访问内存设备3。vPPB2、vPPB4未与PPB绑定,处于解绑状态。内存设备2与CXL交换机的PPB2绑定,FM可以访问内存设备1-内存设备3,也可以将未绑定主机的内存设备2绑定到任何未绑定的vPPB上。
本申请实施例中,当主机1绑定的内存设备3过载时,内存设备2的属性优于内存设备3的属性,内存设备2为第二内存设备。FM向CXL交换机发送绑定命令,该绑定命令指示将vPPB4与PPB2绑定。CXL交换机根据绑定命令,将vPPB4与PPB2绑定,进而实现内存设备2与主机1绑定,实现将内存设备2分配主机1,如图7b所示。
在将内存设备2与主机1绑定后,CXL交换机向主机1发送热添加通知,并通知FM绑定成功。此时,内存设备2已准备好由主机1进行枚举/配置。
在将内存设备2与主机1绑定后,主机1发起设备热添加的流程,如下:
a)主机1的系统固件为设备热添加做好系统准备。
b)主机1生成高速串行计算机扩展总线标准(PCIe)热插拔中断。
c)主机1的总线驱动程序执行PCIe热添加操作,从而启用CXL.io。此过程为设备分配基地址寄存器(Base Address Register,BAR)。
d)主机1的CXL感知软件探测新绑定的内存设备。CXL感知软件可以为操作系统中的CXL总线驱动程序、设备驱动程序或其他软件实体。
e)主机1的CXL感知软件通知操作系统(Operating System,OS)内存管理器新绑定的内存设备及其属性,如延迟和带宽。内存管理器处理请求,并将新内存设备添加到其分配内存池。
主机1在完成热插拔后,执行内存迁移。本申请实施例中,可以在内存数据拷贝前执行内存迁移,也可以在内存数据拷贝后执行内存迁移,这样可以确保在内存迁移期间或内存迁移完成后,源位置和目标位置的内存数据保持一致。本申请实施例中,还可以采用其他方式执行内存迁移,对此不进行限定。具体的内存迁移过程可以包括如下两步骤。
1)主机1将原先映射到交换机内存池的内存设备3迁移到内存设备2,如图8所示的设备迁移示意图。在主机1的主机物理地址(Host Physical Address,HPA)中的CXL网络地址空间(CXL Fabric Address Space)中添加内存设备2的地址,回收内存设备3的地址。
本申请实施例中,CXL网络地址空间由CXL内存限制(men_limit)和CXL内存基础(men_base)限定,CXL网络地址空间中可以存储一个或多个内存设备的地址,如图8中存储了内存设备10的地址(仅为示例)、内存设备3的地址等。HPA中还可以包括其他地址,如主机本地(Local)地址、本地MMIO地址、主机地址(Host)、主机本地内存(Local Mem)等,对此不进行限定。
2)主机1更新主机的主机管理设备内存(Host-managed Device Memory,HDM)范围。
至此完成了内存迁移,完成了内存重分配。
当主机需要访问内存设备时,通过HDM解码器,将HPA映射为设备物理地址(DevicePhysical Address,DPA),通过DPA,访问内存设备。
与上述内存分配方法对应,本申请实施例还提供了一种内存分配装置,如图9所示,应用于网络管理器,该装置包括:
确定单元91,用于确定分配给主机的内存设备中过载的第一内存设备;
选择单元92,用于从未与任何主机绑定的内存设备中,选择第二内存设备,所述第二内存设备的属性优于所述第一内存设备的属性;
分配单元93,用于将所述第二内存设备分配给所述主机,以使所述主机将所述第一内存设备中的内存数据迁移至所述第二内存设备。
在一些实施例中,所述确定单元91,具体可以用于:
从分配给主机的每个内存设备中,获取每个内存设备的请求频率;
从所述主机中,获取所述每个内存设备的动态负载状态和带宽信息;
根据所述取每个内存设备的请求频率、动态负载状态和带宽信息,确定过载的第一内存设备。
在一些实施例中,每个内存设备包括第一计数器和第二计数器;所述第一计数器记录内存请求数与内存响应数的差值,所述第二计数器记录内存请求数,所述内存请求数为内存设备接收到所述主机发送的内存请求的数量,所述内存响应数为内存设备向所述主机发送的内存响应的数量;
所述确定单元91,具体可以用于:
从分配给主机的每个内存设备中,获取每个内存设备中所述第一计数器和所述第二计数器中记录的数值,作为每个内存设备的请求频率。
在一些实施例中,所述属性包括时延和带宽中的一种或多种。
在一些实施例中,所述属性包括时延;
所述选择单元92,具体可以用于:
根据CXL网络的拓扑结构,从未与任何主机绑定的内存设备中,选择与所述主机通信时延最低的第二内存设备。
在一些实施例中,所述第一内存设备与第一CXL交换机连接,所述第二内存设备与第二CXL交换机连接,所述第一CXL交换机和所述第二CXL交换机级联,且所述第一CXL交换机和所述第二CXL交换机中高层级的CXL交换机与所述主机连接。
本申请实施例提供的技术方案中,在主机的一个内存设备(第一内存设备)过载时,网络管理器从未与任何主机绑定的众多内存设备中,选择属性更优的内存设备,即第二内存设备,将该第二内存设备替换第一内存设备,分配给主机,由于主机使用了相对于第一内存设备属性更优的第二内存设备,从根本上解决了第一内存设备过载的问题。
与上述内存分配方法对应,本申请实施例还提供了一种网络管理器,如图10所示,包括处理器101和机器可读存储介质102,所述机器可读存储介质102存储有能够被所述处理器101执行的机器可执行指令,所述处理器101被所述机器可执行指令促使:实现上述任一内存分配方法。
机器可读存储介质可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一内存分配方法。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一内存分配方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、网络管理器、计算机可读存储介质、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (10)
1.一种内存分配方法,其特征在于,应用于网络管理器,所述方法包括:
确定分配给主机的内存设备中过载的第一内存设备;
从未与任何主机绑定的内存设备中,选择第二内存设备,所述第二内存设备的属性优于所述第一内存设备的属性,所述属性包括时延和带宽中的一种或多种;
将所述第二内存设备分配给所述主机,以使所述主机将所述第一内存设备中的内存数据迁移至所述第二内存设备;
所述从未与任何主机绑定的内存设备中,选择第二内存设备的步骤,包括:
根据计算高速链路CXL网络的拓扑结构,从未与任何主机绑定的内存设备中,选择与所述主机通信时延最低的第二内存设备。
2.根据权利要求1所述的方法,其特征在于,所述确定分配给主机的内存设备中过载的第一内存设备的步骤,包括:
从分配给主机的每个内存设备中,获取每个内存设备的请求频率;
从所述主机中,获取所述每个内存设备的动态负载状态和带宽信息;
根据所述取每个内存设备的请求频率、动态负载状态和带宽信息,确定过载的第一内存设备。
3.根据权利要求2所述的方法,其特征在于,每个内存设备包括第一计数器和第二计数器;所述第一计数器记录内存请求数与内存响应数的差值,所述第二计数器记录内存请求数,所述内存请求数为内存设备接收到所述主机发送的内存请求的数量,所述内存响应数为内存设备向所述主机发送的内存响应的数量;
所述从分配给主机的每个内存设备中,获取每个内存设备的请求频率的步骤,包括:
从分配给主机的每个内存设备中,获取每个内存设备中所述第一计数器和所述第二计数器中记录的数值,作为每个内存设备的请求频率。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一内存设备与第一CXL交换机连接,所述第二内存设备与第二CXL交换机连接,所述第一CXL交换机和所述第二CXL交换机级联,且所述第一CXL交换机和所述第二CXL交换机中高层级的CXL交换机与所述主机连接。
5.一种内存分配装置,其特征在于,应用于网络管理器,所述装置包括:
确定单元,用于确定分配给主机的内存设备中过载的第一内存设备;
选择单元,用于从未与任何主机绑定的内存设备中,选择第二内存设备,所述第二内存设备的属性优于所述第一内存设备的属性,所述属性包括时延和带宽中的一种或多种;
分配单元,用于将所述第二内存设备分配给所述主机,以使所述主机将所述第一内存设备中的内存数据迁移至所述第二内存设备;
所述选择单元,具体用于:
根据计算高速链路CXL网络的拓扑结构,从未与任何主机绑定的内存设备中,选择与所述主机通信时延最低的第二内存设备。
6.根据权利要求5所述的装置,其特征在于,所述确定单元,具体用于:
从分配给主机的每个内存设备中,获取每个内存设备的请求频率;
从所述主机中,获取所述每个内存设备的动态负载状态和带宽信息;
根据所述取每个内存设备的请求频率、动态负载状态和带宽信息,确定过载的第一内存设备。
7.根据权利要求6所述的装置,其特征在于,每个内存设备包括第一计数器和第二计数器;所述第一计数器记录内存请求数与内存响应数的差值,所述第二计数器记录内存请求数,所述内存请求数为内存设备接收到所述主机发送的内存请求的数量,所述内存响应数为内存设备向所述主机发送的内存响应的数量;
所述确定单元,具体用于:
从分配给主机的每个内存设备中,获取每个内存设备中所述第一计数器和所述第二计数器中记录的数值,作为每个内存设备的请求频率。
8.根据权利要求5-7任一项所述的装置,其特征在于,所述第一内存设备与第一CXL交换机连接,所述第二内存设备与第二CXL交换机连接,所述第一CXL交换机和所述第二CXL交换机级联,且所述第一CXL交换机和所述第二CXL交换机中高层级的CXL交换机与所述主机连接。
9.一种网络管理器,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-4任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311188376.5A CN116932229B (zh) | 2023-09-13 | 2023-09-13 | 一种内存分配方法、装置、网络管理器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311188376.5A CN116932229B (zh) | 2023-09-13 | 2023-09-13 | 一种内存分配方法、装置、网络管理器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116932229A CN116932229A (zh) | 2023-10-24 |
CN116932229B true CN116932229B (zh) | 2023-12-12 |
Family
ID=88386426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311188376.5A Active CN116932229B (zh) | 2023-09-13 | 2023-09-13 | 一种内存分配方法、装置、网络管理器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116932229B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117170882B (zh) * | 2023-11-01 | 2024-02-23 | 新华三信息技术有限公司 | 一种资源分配方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106133693A (zh) * | 2015-02-28 | 2016-11-16 | 华为技术有限公司 | 虚拟机的迁移方法、装置及设备 |
CN108196958A (zh) * | 2017-12-29 | 2018-06-22 | 北京泽塔云科技股份有限公司 | 资源调度分配方法、计算机系统及超融合架构系统 |
CN109739618A (zh) * | 2018-12-10 | 2019-05-10 | 新华三云计算技术有限公司 | 虚拟机迁移方法及装置 |
CN111324412A (zh) * | 2018-12-13 | 2020-06-23 | 阿里巴巴集团控股有限公司 | 服务部署方法、设备及存储介质 |
CN114546913A (zh) * | 2022-01-21 | 2022-05-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于pcie接口的多主机之间数据高速交互的方法和装置 |
US11601377B1 (en) * | 2021-10-11 | 2023-03-07 | Cisco Technology, Inc. | Unlocking computing resources for decomposable data centers |
EP4202679A1 (en) * | 2021-12-24 | 2023-06-28 | Intel Corporation | Platform with configurable pooled resources |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11016813B2 (en) * | 2018-11-26 | 2021-05-25 | International Business Machines Corporation | Optimizing initiator allocation |
-
2023
- 2023-09-13 CN CN202311188376.5A patent/CN116932229B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106133693A (zh) * | 2015-02-28 | 2016-11-16 | 华为技术有限公司 | 虚拟机的迁移方法、装置及设备 |
CN108196958A (zh) * | 2017-12-29 | 2018-06-22 | 北京泽塔云科技股份有限公司 | 资源调度分配方法、计算机系统及超融合架构系统 |
CN109739618A (zh) * | 2018-12-10 | 2019-05-10 | 新华三云计算技术有限公司 | 虚拟机迁移方法及装置 |
CN111324412A (zh) * | 2018-12-13 | 2020-06-23 | 阿里巴巴集团控股有限公司 | 服务部署方法、设备及存储介质 |
US11601377B1 (en) * | 2021-10-11 | 2023-03-07 | Cisco Technology, Inc. | Unlocking computing resources for decomposable data centers |
EP4202679A1 (en) * | 2021-12-24 | 2023-06-28 | Intel Corporation | Platform with configurable pooled resources |
CN114546913A (zh) * | 2022-01-21 | 2022-05-27 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于pcie接口的多主机之间数据高速交互的方法和装置 |
Non-Patent Citations (1)
Title |
---|
基于SDN网络构架的网络动态优化研究;陈国良;;计算技术与自动化(02);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116932229A (zh) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10768857B2 (en) | Storage system having a controller that selects a die of a solid state disk to store data | |
US9535739B2 (en) | Virtual machine storage | |
CN110569233A (zh) | 一种热点数据的管理方法、装置及系统 | |
CN109669640B (zh) | 一种数据存储方法、装置、电子设备及介质 | |
US11861196B2 (en) | Resource allocation method, storage device, and storage system | |
US8615586B2 (en) | Discovery of logical images at storage area network endpoints | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
US20240231669A1 (en) | Data processing method and apparatus, processor, and hybrid memory system | |
WO2019170011A1 (zh) | 任务分配方法及装置、分布式存储系统 | |
CN116932229B (zh) | 一种内存分配方法、装置、网络管理器及存储介质 | |
WO2021057108A1 (zh) | 一种读数据方法、写数据方法及服务器 | |
EP4439312A1 (en) | Data storage method and system, storage access configuration method and related device | |
US20240231653A1 (en) | Memory management method and apparatus, processor, and computing device | |
US20060123203A1 (en) | Network device, fiber channel switch, method for shared memory access control, and computer product | |
CN114860387B (zh) | 一种面向虚拟化存储应用的hba控制器i/o虚拟化方法 | |
WO2024103690A1 (zh) | 一种数据请求方法、装置、设备及非易失性可读存储介质 | |
CN117880281A (zh) | 一种数据传输的方法和计算设备 | |
CN115543222B (zh) | 一种存储优化方法、系统、设备及可读存储介质 | |
US12050539B2 (en) | Data access method and apparatus and storage medium | |
CN107491270B (zh) | 一种多控存储系统的资源访问方法及装置 | |
CN116401043A (zh) | 一种计算任务的执行方法和相关设备 | |
CN116560785A (zh) | 一种访问存储节点的方法、装置及计算机设备 | |
US20170269864A1 (en) | Storage Array Operation Method and Apparatus | |
CN113590507A (zh) | 一种分布式存储系统及其缓存层、数据访问方法、设备 | |
US20230021806A1 (en) | Distributed storage system and volume management method |
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 |