CN115687184A - 一种资源分配方法及装置 - Google Patents

一种资源分配方法及装置 Download PDF

Info

Publication number
CN115687184A
CN115687184A CN202110838151.4A CN202110838151A CN115687184A CN 115687184 A CN115687184 A CN 115687184A CN 202110838151 A CN202110838151 A CN 202110838151A CN 115687184 A CN115687184 A CN 115687184A
Authority
CN
China
Prior art keywords
cache
cache object
model
allocated
memory
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.)
Pending
Application number
CN202110838151.4A
Other languages
English (en)
Inventor
江舟
程卓
石海涛
汪源渊
项伟杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110838151.4A priority Critical patent/CN115687184A/zh
Priority to PCT/CN2022/082051 priority patent/WO2023000696A1/zh
Priority to EP22844868.4A priority patent/EP4365749A1/en
Publication of CN115687184A publication Critical patent/CN115687184A/zh
Priority to US18/419,111 priority patent/US20240201880A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种资源分配方法及装置,涉及数据存储领域。该方法包括:处理器根据每个缓存对象已分配的页面资源和该缓存对象的读数据命中率输出第一模型,每个缓存对象已分配的页面资源来自存储***所提供的内存池,第一模型用于指示在满足一定命中率的情况下需要为缓存对象分配的页面资源;处理器根据每个缓存对象所对应的第一模型输出第二模型,第二模型用于指示将要为每个缓存对象分配的目标页面资源;处理器根据第二模型调整为每个缓存对象分配的页面资源。处理器依据第二模型调整缓存对象的页面资源,避免处理器平均分配或淘汰缓存对象的页面资源,提高了内存池中页面资源的利用率和分配合理性,进而降低了业务的处理时延。

Description

一种资源分配方法及装置
技术领域
本申请涉及数据存储领域,尤其涉及一种资源分配方法及装置。
背景技术
内存是存储***中处理器与硬盘进行沟通桥梁,内存用于暂时存放处理器中的运算数据,以及处理器与硬盘等外部存储器交换的数据。存储***中的一个或多个内存可以被虚拟化为内存池,该内存池用于存储业务所需的多个缓存对象,如数据读缓存(readcache)和元数据缓存(pool cache)等。
通常,处理器可以根据内存池的剩余资源,平均分配多个缓存对象所需的页面资源。然而,若内存池的剩余资源不足,处理器会按照相同比例淘汰多个缓存对象中存储的数据,并回收该数据所占用的页面资源,导致页面资源需求较大的缓存对象的命中率降低,进而,导致内存的整体命中率降低,业务的处理时延提高。因此,如何对内存的资源进行管理成为目前亟需解决的问题。
发明内容
本申请提供一种资源分配方法及装置,解决了页面资源需求较大的缓存对象的命中率降低,内存的整体命中率降低,业务的处理时延提高的问题。
为达到上述目的,本申请采用如下技术方案。
第一方面,本申请提供了一种资源分配方法,该方法可应用于存储***,或者该方法可应用于可以支持存储***实现该方法的计算设备,例如该计算设备包括芯片***,该资源分配方法包括:首先,处理器根据每个缓存对象已分配的页面资源和该缓存对象的读数据命中率输出第一模型,每个缓存对象已分配的页面资源来自存储***所提供的内存池,第一模型用于指示在满足一定命中率的情况下需要为缓存对象分配的页面资源;其次,处理器根据每个缓存对象所对应的第一模型输出第二模型,第二模型用于指示将要为每个缓存对象分配的目标页面资源;最后,处理器根据第二模型调整为每个缓存对象分配的页面资源。
在本申请实施例提供的资源分配方法中,由于处理器可以利用第一模型确定每个缓存对象满足一定命中率确定的页面资源,并利用第二模型确定将要为每个缓存对象分配的目标页面资源,有利于处理器依据第二模型调整缓存对象的页面资源,避免了处理器平均分配或淘汰缓存对象的页面资源,提高了内存池中页面资源的利用率,提高内存池中页面资源的分配合理性,进而降低业务的处理时延。
值得注意的是,资源分配方法可以由存储***的处理器执行,或由与存储***通信的计算设备执行。若上述资源分配方法由与存储***通信的计算设备执行,可以减少存储***中计算资源的消耗,提高存储***的数据读写速度;另外,由于计算设备的计算资源是可调整的,如用户可在存储***上***具有不同处理能力的计算设备,因此,相较于存储***中的处理器,计算设备可以更快的进行资源分配,这减少了资源分配所需的时间,降低了业务的处理时延。
在下述实现方式中,以资源分配方法由存储***的处理器执行为例进行说明。
在一种可选的实现方式中,缓存对象是从内存池中分配出来的内存空间,内存空间用于提供给一定类型的数据使用。
在另一种可选的实现方式中,处理器根据每个缓存对象所对应的第一模型输出第二模型,包括:处理器获取每个缓存对象所对应的权值,一个权值对应一个缓存对象;处理器依据每个缓存对象所对应的第一模型和该缓存对象对应的权值,输出第二模型。处理器引入了内存池的第二模型,该第二模型用于指示将要为每个缓存对象分配的目标页面资源,处理器可以依据该第二模型为业务所对应的多个缓存对象分配页面资源,避免处理器按照相同比例对缓存对象的页面资源进行分配或淘汰,使得内存的整体命中率提高,降低了业务的处理时延。
在另一种可选的实现方式中,处理器获取每个缓存对象所对应的权值,包括:处理器获取统计信息,统计信息包括内存池的带宽和处理时延;处理器依据统计信息确定每个缓存对象对应的权值。处理器可以依据存储***执行业务的统计信息来更新上述的第二模型,有利于提供第二模型的准确性,以便处理器更加合理的分配内存池的页面资源,提高内存池的整体命中率,降低业务的处理时延
在另一种可选的实现方式中,处理器根据每个缓存对象已分配的页面资源和该缓存对象的读数据命中率输出第一模型,包括:处理器获取缓存对象的状态信息,状态信息包括重用距离、内存淘汰信息和历史信息中至少一种或几种的组合,历史信息包括在历史业务的执行过程中,缓存对象已分配的页面资源和该缓存对象的读数据命中率之间的对应关系;处理器依据状态信息创建第一模型。
在另一种可选的实现方式中,处理器依据状态信息创建第一模型,包括:处理器依据重用距离创建第一曲线,第一曲线用于指示基于第一算法获取的缓存对象已分配的页面资源和读数据命中率之间的对应关系;处理器依据内存淘汰信息创建第二曲线,第二曲线用于指示缓存对象已分配的部分页面资源被淘汰后,缓存对象的页面资源和读数据命中率之间的对应关系;处理器依据历史信息创建第三曲线;处理器依据第一曲线、第二曲线和第三曲线中至少一种,创建第一模型。在本申请实施例提供的资源分配方法中,首先,处理器可以获取缓存对象的状态信息,该状态信息包括重用距离、内存淘汰信息和历史信息中至少一种或几种的组合;其次,处理器可以依据该状态信息获取到多种类型的曲线;最后,处理器依据该多种类型的曲线中至少一种或几种的组合,获取缓存对象的第一模型。
如此,处理器不仅利用了缓存对象具有一定页面资源的理论命中率,还利用了缓存对象在业务执行过程中的内存淘汰信息和历史信息,这提高了处理器描述缓存对象的页面资源和命中率(如上述的第一模型)的准确性,也就提高了上述第二模型的准确性,有利于处理器依据业务请求和第二模型确定缓存对象的目标页面资源,提高内存资源的利用率,提高内存资源的分配合理性,进而降低业务的处理时延。
在另一种可选的实现方式中,处理器根据第二模型调整为每个缓存对象分配的页面资源,包括:处理器获取每个缓存对象的第一信息,第一信息用于指示缓存对象的优先级和热点需求中至少一种;处理器依据第一信息和第二模型调整为每个缓存对象分配的页面资源。处理器可以按照各缓存对象之间的层次(缓存对象固有的优先级),以及不同业务所对应的缓存对象的热点需求,确定业务所需访问的缓存对象的优先级信息,进而,在处理器为缓存对象分配页面资源的过程中,处理器可以优先为具有热点需求的缓存对象分配更多的页面资源,以提高内存池的整体命中率,降低业务的处理时延。
在另一种可选的实现方式中,资源分配方法还包括:处理器获取业务请求,业务请求所需的缓存对象包括内存池未提供的其他缓存对象;依据业务请求将其他缓存对象写入内存池。如此,处理器可以依据业务请求将新的缓存对象加入内存池,或将旧的缓存对象从内存池中移除,避免通常技术中,存储***无法添加或取消内存池中所包括的缓存对象,进而,实现了存储***中内存池的动态适应,提高了存储***的内存利用率。
第二方面,本申请还提供一种资源分配装置,所述资源分配装置包括用于执行第一方面或第一方面任一种可能实现方式中的资源分配方法的各个模块。
有益效果可以参见第一方面中任一方面的描述,此处不再赘述。所述资源分配装置具有实现上述第一方面中任一方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现,例如,该资源分配装置可以应用于存储***或与存储***通信的计算设备。
上述的硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,存储***包括多个缓存对象,该资源分配装置包括:第一生成单元,用于根据每个缓存对象已分配的页面资源和该缓存对象的读数据命中率输出第一模型,每个缓存对象已分配的页面资源来自存储***所提供的内存池,第一模型用于指示在满足一定命中率的情况下需要为缓存对象分配的页面资源;第二生成单元,用于根据每个缓存对象所对应的第一模型输出第二模型,第二模型用于指示将要为每个缓存对象分配的目标页面资源;分配单元,用于根据第二模型调整为每个缓存对象分配的页面资源。
在一种可选的实现方式中,缓存对象是从内存池中分配出来的内存空间,内存空间用于提供给一定类型的数据使用。
在另一种可选的实现方式中,第二生成单元,具体用于获取每个缓存对象所对应的权值,一个权值对应一个缓存对象;第二生成单元,还具体用于依据每个缓存对象所对应的第一模型和该缓存对象对应的权值,输出第二模型。
在另一种可选的实现方式中,第二生成单元,具体用于获取统计信息,统计信息包括内存池的带宽和处理时延;第二生成单元,还具体用于依据统计信息确定每个缓存对象对应的权值。
在另一种可选的实现方式中,第一生成单元,具体用于获取缓存对象的状态信息,状态信息包括重用距离、内存淘汰信息和历史信息中至少一种或几种的组合,历史信息包括在历史业务的执行过程中,缓存对象已分配的页面资源和该缓存对象的读数据命中率之间的对应关系;第一生成单元,还具体用于依据状态信息创建第一模型。
在另一种可选的实现方式中,第一生成单元,还具体用于依据重用距离创建第一曲线,第一曲线用于指示基于第一算法获取的缓存对象已分配的页面资源和读数据命中率之间的对应关系;第一生成单元,还具体用于依据内存淘汰信息创建第二曲线,第二曲线用于指示缓存对象已分配的部分页面资源被淘汰后,缓存对象的页面资源和读数据命中率之间的对应关系;第一生成单元,还具体用于依据历史信息创建第三曲线;第一生成单元,还具体用于依据第一曲线、第二曲线和第三曲线中至少一种,创建第一模型。
在另一种可选的实现方式中,分配单元,具体用于获取每个缓存对象的第一信息,第一信息用于指示缓存对象的优先级和热点需求中至少一种;分配单元,还具体用于依据第一信息和第二模型调整为每个缓存对象分配的页面资源。
在另一种可选的实现方式中,资源分配装置还包括:通信单元,用于获取业务请求,业务请求所需的缓存对象包括内存池未提供的其他缓存对象;处理单元,用于依据业务请求将其他缓存对象写入内存池。
在另一种可选的实现方式中,资源分配装置还应用于与存储***通信的计算设备中。
第三方面,本申请还提供一种存储***,该***包括处理器、内存和硬盘,其中,处理器用于执行上述第一方面或第一方面中任一种可能实现方式中方法的操作步骤,内存和硬盘中至少一种可以被虚拟化为上述第一方面或第一方面中任一种可能实现方式中的内存池。
第四方面,本申请还提供一种资源分配***,所述资源分配***包括用于执行第一方面或第一方面任一种可能实现方式中的资源分配方法的各个模块。
有益效果可以参见第一方面中任一方面的描述,此处不再赘述。所述资源分配***具有实现上述第一方面中任一方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现,例如,上述的硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,资源分配***包括存储***和计算设备,计算设备与存储***通信,存储***包括多个缓存对象。
计算设备用于根据每个缓存对象已分配的页面资源和该缓存对象的读数据命中率输出第一模型,每个缓存对象已分配的页面资源来自存储***所提供的内存池,第一模型用于指示在满足一定命中率的情况下需要为缓存对象分配的页面资源;计算设备,还用于根据每个缓存对象所对应的第一模型,输出第二模型,第二模型用于指示将要为每个缓存对象分配的目标页面资源;计算设备,还用于根据第二模型调整为每个缓存对象分配的页面资源。
第五方面,本申请还提供一种计算设备,包括处理器和接口电路,接口电路用于接收来自计算设备之外的其它计算设备的信号并传输至处理器,或将来自处理器的信号发送给计算设备之外的其它计算设备,处理器通过逻辑电路或执行代码指令用于实现上述第一方面或第一方面中任一种可能实现方式中方法的操作步骤。
第六方面,本申请提供一种计算机可读存储介质,存储介质中存储有计算机程序或指令,当计算机程序或指令被执行时,实现上述各个方面或各个方面的可能的实现方式所述的方法的操作步骤。
第七方面,本申请提供一种计算机程序产品,该计算程序产品包括指令,当计算机程序产品在计算设备或处理器上运行时,使得计算设备或处理器执行该指令,以实现上述任意一方面或任一方面的可能的实现方式中所述的方法的操作步骤。
第八方面,本申请提供一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执实现上述任一方面或任一方面的可能的实现方式中所述方法的操作步骤。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请提供的一种资源分配***的结构示意图;
图2为本申请提供的一种内存池的示意图;
图3为本申请提供的一种资源分配方法的流程图;
图4为本申请提供的一种页面资源和命中率的曲线图;
图5为本申请提供的一种资源分配的示意图;
图6为本申请提供的一种资源分配装置的方框示意图;
图7为本申请提供的一种计算设备的结构示意图。
具体实施方式
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍。
图1为本申请提供的一种资源分配***的结构示意图,该资源分配***包括存储***100、客户端120和至少一个计算设备,该存储***100包括至少一个服务器,客户端120可以利用网络访问存储***100中的服务器以存取数据,该网络的通信功能可以由交换机或路由器实现。在一种可能的示例中,客户端120也可以通过有线连接与服务器通信,例如,快捷***组件互连(peripheral component interconnect express,PCIe)高速总线。
服务器上可以外接有计算设备,如图1所示,服务器110A上安装有计算设备130A,服务器110B上安装有计算设备130B。服务器或网卡可以将数据处理的过程卸载在计算设备上,该计算设备可以包括一个或多个处理单元,该处理单元可以是中央处理单元(CentralProcessing Unit,CPU)、其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。该计算设备还可以是面向人工智能(artificial intelligence,AI)的专用处理器,如神经处理器(Neural processing unit,NPU)或图形处理器(Graphic processing unit,GPU)等。
值得注意的是,在物理形态上,计算设备包括的一个或多个处理单元可以封装为一个插件,该插件可以通过通用串行总线(Universal Serial Bus,USB)或其他通信接口接入存储***100中的服务器。
客户端120可以是运行在物理机或虚拟机上的应用程序,该应用程序可以获取业务请求,并向存储***发送该业务请求。
客户端120可以是运行有应用程序的计算机,该运行有应用程序的计算机可以是物理机,也可以是虚拟机。例如,若该运行有应用程序的计算机为物理计算设备,该物理计算设备可以是服务器或终端(Terminal)。其中,终端也可以称为终端设备、用户设备(userequipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。终端可以是手机、平板电脑、笔记本电脑、桌面电脑、个人通信业务(personal communicationservice,PCS)电话、台式计算机、虚拟现实(Virtual Reality,VR)终端设备、增强现实(Augmented Reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。本申请的实施例对客户端120所采用的具体技术和具体设备形态不做限定。
本申请实施例所提供的存储***可以为分布是存储***或集中式存储***。
在一种可能的情形中,图1所示出的存储***100可以为分布式存储***。如图1所示,本实施例提供的分布式存储***包括计算存储一体化的存储集群。存储集群包括一个或多个服务器(如图1所示出的服务器110A和服务器110B),各个服务器之间可以相互通信。
这里以图1所示出的服务器110A进行说明,服务器110A是一种既具有计算能力又具有存储能力的设备,如服务器、台式计算机等。示例的,先进精简指令(Advanced ReducedInstruction Set Computer Machines,ARM)服务器或者X86服务器都可以作为这里的服务器110A。在硬件上,如图1所示,服务器110A至少包括处理器112、内存113、网卡114和硬盘105。处理器112、内存113、网卡114和硬盘105之间通过总线连接。其中,处理器112和内存113用于提供计算资源。具体地,处理器112是一个中央处理器(central processing unit,CPU),用于处理来自服务器110A外部(应用服务器或者其他服务器)的数据访问请求(如写日志请求),也用于处理服务器110A内部生成的请求。示例性的,处理器112接收写日志请求时,会将这些写日志请求中的数据暂时保存在内存113中。当内存113中的数据总量达到一定阈值时,处理器112将内存113中存储的数据发送给硬盘105进行持久化存储。除此之外,处理器112还用于数据进行计算或处理等。图1中仅示出了一个处理器112,在实际应用中,处理器112的数量往往有多个,其中,一个处理器112又具有一个或多个CPU核。本实施例不对CPU的数量,以及CPU核的数量进行限定。
内存113是指与处理器直接交换数据的内部存储器,它可以随时读写数据,而且速度很快,作为操作***或其他正在运行中的程序的临时数据存储器。内存包括至少两种存储器,例如内存既可以是随机存取存储器,也可以是只读存储器(Read Only Memory,ROM)。举例来说,随机存取存储器是动态随机存取存储器(Dynamic Random Access Memory,DRAM),或者存储级存储器(Storage Class Memory,SCM)。DRAM是一种半导体存储器,与大部分随机存取存储器(Random Access Memory,RAM)一样,属于一种易失性存储器(volatile memory)设备。SCM是一种同时结合传统储存装置与存储器特性的复合型储存技术,存储级存储器能够提供比硬盘更快速的读写速度,但存取速度上比DRAM慢,在成本上也比DRAM更为便宜。然而,DRAM和SCM在本实施例中只是示例性的说明,内存还可以包括其他随机存取存储器,例如静态随机存取存储器(Static Random Access Memory,SRAM)等。而对于只读存储器,举例来说,可以是可编程只读存储器(Programmable Read Only Memory,PROM)、可抹除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)等。另外,内存113还可以是双列直插式存储器模块或双线存储器模块(Dual In-line MemoryModule,简称DIMM),即由动态随机存取存储器(DRAM)组成的模块,还可以是固态硬盘(Solid State Disk,SSD)。实际应用中,存储服务器110A中可配置多个内存113,以及不同类型的内存113。本实施例不对内存113的数量和类型进行限定。此外,可对内存113进行配置使其具有保电功能。保电功能是指***发生掉电又重新上电时,内存113中存储的数据也不会丢失。具有保电功能的内存被称为非易失性存储器。
硬盘105用于提供存储资源,例如存储数据和预写式日志等。它可以是磁盘或者其他类型的存储介质,例如固态硬盘或者叠瓦式磁记录硬盘等。示例的,硬盘105可以是基于非易失性内存主机控制器接口规范(Non-Volatile Memory Express,NVMe)的固态硬盘,如NVMe SSD。
服务器110A中的网卡114用于与客户端120或其他应用服务器(如图1所示出的服务器110B)通信。
在一种实施方式中,处理器112的功能可以卸载到网卡114上。换言之,在该种实施方式中,处理器112不执行业务数据的处理操作,而是由网卡114来完成业务数据的处理、地址转换以及其他计算功能。
在某些应用场景中,网卡114也可能具有持久化内存介质,如持久性内存(persistent memory,PM),或者非易失性随机访问存储器(non-volatile random accessmemory,NVRAM),或者相变存储器(phase change memory,PCM)等。CPU用于执行地址转换以及读写日志等操作。内存用于临时存储将要写入硬盘105的数据,或者从硬盘105读取出来将要发送给控制器的数据。也可以是一个可编程的电子部件,例如数据处理单元(dataprocessing unit,DPU)。DPU具有CPU的通用性和可编程性,但更具有专用性,可以在网络数据包,存储请求或分析请求上高效运行。DPU通过较大程度的并行性(需要处理大量请求)与CPU区别开来。可选的,这里的DPU也可以替换成GPU、NPU等处理芯片。网卡114和硬盘105之间没有归属关系,网卡114可访问网卡114所在的服务器110B中任意一个硬盘105,因此在存储空间不足时扩展硬盘会较为便捷。
图1仅为本申请实施例提供的一种示例,存储***100中还可以包括更多的服务器或内存等设备,本申请不对服务器和内存的数量和具体形态进行限定。
在另一种可能的情形中,本申请实施例所提供的存储***也可以为计算存储分离的存储集群,该存储集群包括计算设备集群和存储设备集群,计算设备集群包括一个或多个计算设备,各个计算设备之间可以相互通信。计算设备可以是一种计算设备,如服务器、台式计算机或者存储阵列的控制器等。在硬件上,计算设备可以包括处理器、内存和网卡等。其中,处理器是一个CPU,用于处理来自计算设备外部的数据访问请求,或者计算设备内部生成的请求。示例性的,处理器接收用户发送的写日志请求时,会将这些写日志请求中的日志暂时保存在内存中。当内存中的数据总量达到一定阈值时,处理器将内存中存储的数据发送给存储设备进行持久化存储。除此之外,处理器还用于数据进行计算或处理,例如元数据管理、重复数据删除、数据压缩、虚拟化存储空间以及地址转换等。
作为一种可选的实现方式,本申请实施例所提供的存储***也可以为集中式存储***。集中式存储***的特点是有一个统一的入口,所有从外部设备来的数据都要经过这个入口,这个入口就是集中式存储***的引擎。引擎是集中式存储***中最为核心的部件,许多存储***的高级功能都在其中实现。示例的,引擎中可以有一个或多个控制器,在一种可能的示例中,若引擎具有多个控制器,任意两个控制器之间可以具有镜像通道,实现任意两个控制器互为备份的功能,从而避免硬件故障导致集中式存储***的不可用。引擎还包含前端接口和后端接口,其中,前端接口用于与集中式存储***中的计算设备通信,从而为计算设备提供存储服务。而后端接口用于与硬盘通信,以扩充集中式存储***的容量。通过后端接口,引擎可以连接更多的硬盘,从而形成一个非常大的存储资源池。
存储***100中的多个内存113可以被虚拟化为一个内存池,该内存池可以用于暂时保存存储***100中的缓存对象,示例的,该缓存对象是从内存池中分配出来的内存空间,该内存空间用于提供给一定类型的数据使用。
例如,缓存对象可以是指一个缓存示例。多个缓存对象之间可以是根据其存储数据类型进行区分的,如数据读缓存(read cache)、元数据缓存(Metadata server clustercache,MDS cache)、文件元数据缓存等,缓存对象使用的内存资源为页面资源(page),在不同业务或者不同工作量(workload)情况下,各缓存对象所需的内存资源不同。多个缓存对象之间可以是根据IO类型进行区分,如读缓存或写缓存。
在本申请的实施例中,缓存对象是以该内存池中内存空间的功能来命名的;但在一些可能的情况下,若以内存池中内存空间的存储介质的类型来命名,该缓存对象也可以被称为内存对象。
针对于本申请的实施例提供的内存池,本申请提供一种可能的实现方式,如图2所示,图2为本申请提供的一种内存池的示意图,该内存池200可以是将图1所示出的多个内存113进行虚拟化后得到的,该内存池200包括流动池210和普通池220,普通池220用于存储内存所在服务器的缓存对象,流动池210用于保存存储***100中频繁分配和释放的缓存对象,流动池210中存储有多个缓存对象(如图2所示出的缓存对象1~缓存对象6)。在一些可能的示例中,流动池210也可以称为page流动池。
在普通池220中的内存资源所占用的水位达到一定阈值的情况下,普通池220中的内存对象可以向流动池210申请内存资源,以便实现服务器的业务。例如,当普通池220中被使用的内存资源达到70%的情况下,存储***中新增的内存资源需求可以由流动池210中的内存资源来满足。
图2所示出的节点是指包括服务器和计算设备的设备,例如,节点231可以是图1所示出的服务器110A和计算设备130A的组合,用于实现图1所示出的服务器110A和计算设备130A的功能,该节点231包括流动池210中的缓存对象1和缓存对象2。又如,节点232可以是图1所示出的服务器110B和计算设备130B的组合,用于实现图1所示出的服务器110B和计算设备130B的功能,该节点232包括流动池210中的缓存对象3和缓存对象4。
如图2所示,计算设备可以包括多个组件,例如,缓存采样组件可以对内存池中的缓存对象进行采样,得到缓存对象的重用距离。又如,性能建模组件可以依据缓存对象的重用距离建立缓存对象的容量-性能模型。又如,最优化模型组件可以依据各个缓存对象的容量-性能模型和权值得到内存池的资源分配模型,该资源分配模型可以用于指示内存池中所有缓存对象的页面资源和命中率之间的对应关系。又如,求解组件可以依据该资源分配模型确定缓存对象的目标页面资源。
值得注意的是,图2所示出的内存池200是以存储***100中的一个或多个内存虚拟化实现的,但在一些可能的示例中,内存池还可以是由存储***100中的其他存储介质实现的,如SSD。
下面将结合附图对本申请实施例的实施方式进行详细描述。
在图1所示出的存储***100和图2所示出的内存池200的基础上,对本申请提供的资源分配方法进行说明,图3为本申请提供的一种资源分配方法的流程图,图3所示出的处理器112也可以替换为计算设备(如图1所示出的计算设备130A和计算设备130B),该资源分配方法包括以下步骤S310~S330。
S310,客户端120向处理器112发送接收业务请求。
该业务请求可以是读输入/输出(input ouput,I/O)请求,或写I/O请求等。
该业务对应存储***中内存池的多个缓存对象。如图2所示,该业务可以对应流动池210中的部分缓存对象(如缓存对象1~缓存对象4)。“对应”的意思可以理解为该业务的执行需要访问该多个缓存对象。该业务请求的执行需要访问存储***100中的多个缓存对象。
图2仅为本申请提供的一种示例,不应理解为对本申请的限定,本申请提供的业务可以访问更多的缓存对象,如缓存对象5和缓存对象6,本申请对此业务对应的缓存对象的数量和种类不作具体限定。
作为一种可选的实现方式,若上述业务的执行还需要访问内存池中未存储的其他缓存对象,处理器112还可以依据业务请求将其他缓存对象写入内存池。
示例的,业务所需访问的缓存对象包括目录项缓存、索引节点缓存、数据读缓存、MDS缓存和数据写缓存,而内存池中的流动池仅包括目录项缓存、索引节点缓存、数据读缓存和MDS缓存,则处理器112还可以依据业务请求将其他缓存对象加入内存池,并依据更新后的内存池中业务所需访问的所有缓存对象,获取优先级信息。其中,该优先级信息用于指示业务对应的所有缓存对象的优先级。
在一种可能的情形中,处理器112还可以将内存池中与业务无关的缓存对象从内存池中移除。
如此,本申请实施例提供的资源分配方法中,处理器112可以依据业务请求将新的缓存对象加入内存池,或将旧的缓存对象从内存池中移除,避免通常技术中,存储***无法添加或取消内存池中所包括的缓存对象,进而,实现了存储***中内存池的动态适应,提高了存储***的内存利用率。
在一种可选的情况下,新增或移除内存池中的缓存对象的过程,还可以是处理器112依据可扩展缓存信息配置请求实现的,该可扩展配置请求包括新的缓存上下层关系和缓存基本参数信息等。处理器112可以根据可扩展配置请求更新内存中中各层缓存对象的关系。
S320,处理器112根据每个缓存对象已分配的页面资源和该缓存对象的读数据命中率输出第一模型。
该缓存对象已分配的页面资源来自存储***所提供的内存池。
一个第一模型对应业务所需访问的多个缓存对象中的一个缓存对象,该第一模型用于指示在满足一定命中率的情况下需要为缓存对象分配的页面资源。
在一种可能的情形中,该缓存对象的第一模型可以是处理器112获取内存池的状态信息,并依据该状态信息创建的。其中,该状态信息包括重用距离、内存淘汰信息和历史信息中至少一种。
重用距离是指是对缓存对象中同一数据块(block)的两次连续访问之间,其他数据块(block)的数量。例如,若缓存对象中数据块的分布为“A-B-C-D-E-A”,则重用距离为4。
内存淘汰信息是指缓存对象在收到处理器112发送的淘汰指令时,对内存池中该缓存对象所占用的内存资源进行淘汰所确定的信息,例如,该内存淘汰信息可以指示该缓存对象在淘汰第一数量的页面资源后,缓存对象的miss率从第一命中率变为第二命中率,第二命中率大于第一命中率。
在一种可能的情形中,该内存淘汰信息还可以是指缓存对象在收到处理器112发送的分配指令时,处理器112为内存池中该缓存对象分配更多的内存资源的信息。如,该内存淘汰信息可以是指该缓存对象新增了第二数量的页面资源后,缓存对象的miss率从第三命中率变为第四命中率,第三命中率大于第四命中率。
历史信息包括在历史业务的执行过程中,缓存对象已分配的页面资源和该缓存对象的读数据命中率之间的对应关系。
在一种可能的示例中,该缓存对象的第一模型可以是处理器112依据命中率曲线或不命中率曲线(miss ratio curve,MRC)获取的。
这里以第一模型是处理器112依据MRC获取为例进行说明,处理器112创建第一模型的过程包括:处理器112依据重用距离创建第一曲线;处理器112依据内存淘汰信息创建第二曲线;处理器112依据历史信息创建第三曲线;处理器112依据第一曲线、第二曲线和第三曲线中至少一种,创建第一模型。
在一种可能的示例中,第一曲线用于指示基于第一算法获取的缓存对象已分配的页面资源和读数据命中率之间的对应关系。
例如,处理器112依据缓存对象的重用距离获取缓存对象的全局MRC(第一曲线),该全局MRC用于指示处理器112依据预估算法获取的缓存对象在理论计算过程中,页面资源和miss率之间的对应关系。该重用距离可以是处理器112对缓存对象进行采样后得到的,关于处理器112对缓存对象进行采样得到重用距离,和利用重用距离获取全局MRC的过程可以参考通用技术中的相关内容,此处不予赘述。
如图2所示,缓存采样的过程可以是由计算设备中的缓存采样组件实现的。
在另一种可能的示例中,第二曲线用于指示缓存对象已分配的部分页面资源被淘汰后,缓存对象的页面资源和读数据命中率之间的对应关系。
例如,处理器112依据缓存对象的内存淘汰信息获取缓存对象的增量MRC(第二曲线)。
在又一种可能的示例中,第二曲线用于指示缓存对象已分配的部分页面资源和读数据命中率之间的对应关系。
例如,处理器112依据缓存对象的历史信息获取缓存对象的反馈MRC(第三曲线),该反馈MRC用于指示缓存对象在业务的执行过程中,缓存对象实际所占用的页面资源和miss率之间的对应关系,如MDS缓存占用了4MB的页面资源,其miss率为20%。在一些情况下,由于反馈MRC是根据缓存对象在业务的执行过程中的观测miss率确定的,反馈MRC也可以被称为观测MRC。
处理器112可以依据上述的全局MRC、增量MRC和反馈MRC中至少一种,得到缓存对象的第一模型。如图2所示,获取第一模型的过程可以是由计算设备中的性能建模组件实现的。
在一种可选的情况下,若缓存对象的页面资源一致(即页面资源的大小相同),而全局MRC、增量MRC和反馈MRC所指示的miss率的差距大于或等于一定阈值,如全局MRC、增量MRC和反馈MRC所指示的miss率分别为60%、55%和2%,则处理器112可以暂时中断为业务对应的部分缓存对象分配页面资源的过程,并重新获取上述的全局MRC、增量MRC和反馈MRC。
值得注意的是,上述的第一模型也可以称为缓存对象的容量-性能模型,第一模型的称谓在不同技术领域人员的描述中可能略有不同,本申请中第一模型的称谓不应理解为对本申请的限定。
在通常的技术方案中,仅采用上述的全局MRC来确定缓存对象的第一模型,导致在缓存对象执行业务的过程中,缓存对象的miss率与全局MRC所指示的miss率并不相同。
相比之下,在本申请实施例提供的资源分配方法中,首先,处理器112可以获取缓存对象的状态信息,该状态信息包括重用距离、内存淘汰信息和历史信息中至少一种或几种的组合;其次,处理器112可以依据该状态信息获取到多种类型的MRC,如上述的全局MRC、增量MRC和反馈MRC;最后,处理器112依据该全局MRC、增量MRC和反馈MRC中至少一种或几种的组合,获取缓存对象的第一模型。
如此,处理器112不仅利用了缓存对象具有一定页面资源的理论miss率,还利用了缓存对象在业务执行过程中的内存淘汰信息和历史信息,这提高了处理器112描述缓存对象的页面资源和命中率(如上述的第一模型)的准确性,也就提高了上述第二模型的准确性,有利于处理器依据业务请求和第二模型确定缓存对象的目标页面资源,提高内存资源的利用率,提高内存资源的分配合理性,进而降低业务的处理时延。
为简化描述,在本文的下述内容中,均以业务所需访问的缓存对象包括目录项缓存、索引节点缓存、数据读缓存和MDS缓存为例进行说明,后续不再赘述。
在第一种可能的示例中,上述第一模型可以用表格的形式来表示,如下表1所示,表1示出了MDS缓存的页面资源和命中率之间的对应关系。
表1
页面资源 命中率
1024 40%
2048 65%
3072 70%
其中,表1所示出的内容为:若MDS缓存的页面资源为1024个page,该MDS缓存的命中率为40%;若MDS缓存的页面资源为2048个page,该MDS缓存的命中率为65%;若MDS缓存的页面资源为3072个page,该MDS缓存的命中率为70%。示例的,一个page所对应的存储容量为4千字节(kilo bytes,KB)或8KB。
在第二种可能的示例中,上述第一模型之间的对应关系可以用函数的形式来表示,如MDS缓存的页面资源和命中率为正相关的关系,MDS缓存的页面资源越多,则MDS缓存的命中率越高,但MDS缓存的命中率不会超过100%。例如,令Y为命中率,X为页面资源,该对应关系可以为:Y=1-1/X(X>1),Y=0(0≤X≤1)。又如,该对应关系还可以为:
Figure BDA0003177873190000111
Y=0(0≤X≤1)。
在第三种可能的示例中,上述第一模型可以用曲线图的形式来表示,如图4所示,图4为本申请提供的一种页面资源和命中率的曲线图,曲线图(或折线图)的横坐标为页面资源,纵坐标为命中率,页面资源的单位为兆字节(mebi bytes,MB)。
上述的表格、函数和曲线图(或折线图)仅为第一模型的一种表现形式,本申请对第一模型的表现形式不局限于上述示例,例如,第一模型还可以包括多个函数,该多个函数的参数具有约束信息,处理器通过对该多个函数进行优化求解,得到业务的页面资源。
如此,在本申请实施例提供的资源分配方法中,处理器112采用第一模型来确定在满足一定命中率的情况下需要为缓存对象分配的页面资源,避免处理器112按照相同比例淘汰或分配资源导致的命中率降低,在业务所需访问的缓存对象达到一定命中率的情况下,可以尽可能的提高内存池的整体命中率,进而降低业务的处理时延。
值得注意的是,在上述示例中,第一模型是以页面资源和命中率之间的对应关系来表示的,但在一些可能的情形中,第一模型还可以是以页面资源和不命中率(miss率)之间的对应关系来表示的。
请继续参见图3,本申请实施例提供的资源分配方法还包括以下步骤S330。
S330,处理器112根据每个缓存对象所对应的第一模型输出第二模型。
该第二模型用于指示将要为每个缓存对象分配的目标页面资源。
作为一种可选的实现方式,处理器112获取第二模型的过程包括:处理器112获取每个缓存对象所对应的权值,一个权值对应一个缓存对象;处理器112依据每个缓存对象所对应的第一模型和该缓存对象对应的权值,输出第二模型。
在一种可能的示例中,每个缓存对象的权值是相同的,如业务所对应的多个缓存对象的权值均为1。
在另一种可能的示例中,缓存对象的权值是不同的。如目录项缓存的权值为4,索引节点缓存的权值为3,数据读缓存的权值为2,MDS缓存的权值为1。
值得注意的是,上述两种示例仅为本申请提供的可能的实现方式,不应理解为对本申请的限定。
示例的,处理器112将每个第一模型及其对应的权值进行处理,得到上述的第二模型,该第二模型也可以称为业务所对应的多个缓存对象的最优化模型。如图2所示,获取第二模型的过程可以是由计算设备中的最优化模型组件实现的。
在通常的技术方案中,处理器根据内存池的剩余资源,平均分配或淘汰业务的多个缓存对象所需的内存资源,导致不同内存资源需求的多个缓存对象会按照相同比例进行淘汰,使得内存资源需求较大的缓存对象的命中率降低,进而,导致内存的整体命中率降低,业务的处理时延提高。
相比之下,在本申请实施例提供的资源分配方法中,处理器引入了内存池的第二模型,该第二模型用于指示将要为每个缓存对象分配的目标页面资源,处理器可以依据该第二模型为业务所对应的多个缓存对象分配页面资源,避免处理器按照相同比例对缓存对象的页面资源进行分配或淘汰,使得内存的整体命中率提高,降低了业务的处理时延。
值得注意的是,上述的权值是处理器112依据业务请求确定的,但在一些可能的示例中,权值也可以是存储***为内存池预设的。
除此之外,作为一种可选的实现方式,第一模型的权值也可以是依据该业务的部分缓存对象的统计信息更新的。
示例的,本申请实施例提供的资源分配方法还包括以下步骤:首先,处理器112获取统计信息,该统计信息包括内存池的带宽和处理时延;其次,处理器112依据该统计信息确定每个缓存对象对应的权值。
如此,在本申请实施例提供的资源分配方法中,处理器112可以依据存储***执行业务的统计信息来更新上述的第二模型,有利于提供第二模型的准确性,以便处理器112更加合理的分配内存池的页面资源,提高内存池的整体命中率,降低业务的处理时延。
请继续参见图3,本申请实施例提供的资源分配方法还包括以下步骤S340。
S340,处理器112根据第二模型调整为每个缓存对象分配的页面资源。
“调整”的内容可以包括新增页面资源、缩减页面资源或不变。
作为一种可选的实现方式,S340可以包括以下过程:处理器112获取每个缓存对象的第一信息,第一信息用于指示缓存对象的优先级和热点需求中至少一种;处理器112依据第一信息和第二模型调整为每个缓存对象分配的页面资源。
按照缓存对象之间的层次,缓存对象的优先级顺序为:文件元数据缓存>数据读缓存>MDS缓存。MDS缓存作为文件元数据缓存和数据读缓存的元数据,在文件元数据缓存或数据读缓存最多能拿到的容量下,MDS缓存对应的元数据容量已经由MDS缓存的保底值(保底值为处理器依据最低命中率对应的页面资源确定的最低内存容量);其次,文件元数据缓存或数据读缓存的命中率增加也可以减少MDS缓存的读次数,因此,文件元数据缓存和数据读缓存的优先级高于MDS缓存的优先级。如此,由于文件元数据缓存存储的是元数据,优先满足元数据缓存对象的页面资源会为内存池带来更大的收益,提高内存池中缓存对象的命中率,进而提高内存池的整体命中率,减少业务的处理时延。
该热点需求可以是指缓存对象是否具有增加页面资源或需要较大页面资源的需求。在资源分配过程中,各缓存对象的内存分配策略可以是依据缓存对象的热点需求确定的,该内存分配策略用于指示每个缓存对象的目标页面资源和预期命中率。
例如,针对于多种缓存对象,如上述的文件元数据缓存,数据读缓存和MDS缓存,在多个缓存对象具有热点需求的情况下,各缓存对象的优先级如下表2所示。
表2
场景 MDS缓存 文件元数据缓存 数据读缓存
数据读缓存无热点,文件元数据缓存无热点
数据读缓存有热点,文件元数据缓存有热点
数据读缓存有热点,文件元数据缓存无热点
数据读缓存无热点,文件元数据缓存有热点
在第一种场景中,由于数据读缓存无热点、文件元数据缓存无热点,因此,处理器112可以将数据读缓存和文件元数据缓存设置为低优先级,将MDS缓存设置为高优先级。
在第二种场景中,由于数据读缓存有热点、文件元数据缓存有热点,因此,按照缓存对象之间的层次:文件元数据缓存>数据读缓存>MDS缓存,处理器112设置多个缓存对象的优先级顺序为文件元数据缓存>数据读缓存>MDS缓存。
在第三种场景中,由于数据读缓存有热点、文件元数据缓存无热点,因此,处理器112可以将MDS缓存和文件元数据缓存设置为低优先级,将数据读缓存设置为高优先级。
在第四种场景中,由于数据读缓存无热点、文件元数据缓存有热点,因此,处理器112可以将MDS缓存和数据读缓存设置为低优先级,将文件元数据缓存设置为高优先级。
处理器112可以按照各缓存对象之间的层次,以及不同业务所对应的缓存对象的热点需求,确定业务的部分缓存对象的优先级信息,进而,在处理器112为缓存对象分配页面资源的过程中,处理器112可以优先为具有热点需求的缓存对象分配更多的页面资源,以提高内存池的整体命中率,降低业务的处理时延。
值得注意的是,上述四种场景仅为本申请实施例为说明缓存对象的热点需求所提供的示例,在一些可能的示例中,为提高业务所需访问的缓存对象的整体命中率,该所需访问的缓存对象的优先级信息还可以使用更为简单或复杂的算法和设计,如处理器还可以依据多个业务的历史信息确定优先级信息的神经网络模型,并通过该神经网络模型来确定当前业务所需访问的缓存对象的优先级信息。
在一种可能的设计中,第二模型可以是处理器112依据各个缓存对象的第一模型(第一模型)和各个缓存对象的关联关系(如上述的权值和优先级信息等)建立的,针对于处理器112为业务所需访问的缓存对象分配页面资源的过程,实际上可以是对第二模型进行求解的过程,如该第二模型的求解方程为以下方程。
Figure BDA0003177873190000141
Figure BDA0003177873190000142
Figure BDA0003177873190000143
其中,xi是处理器112拟为业务所需访问的缓存对象中第i个缓存对象分配的内存容量(页面资源),di为第i个缓存对象的热点容量需求,vi为第i个缓存对象中单位页面所能容纳或存储的数据量,Wi为第i个缓存对象的权值,V为内存池中流动池所能提供的内存资源的存储容量,Hi为第i个缓存对象的最低命中率,h(xi)为第i个缓存对象的预估命中率,n为业务所需访问的缓存对象的总数量。
上述设计中,第二模型的求解过程是以权值与容量的最小乘积为例进行求解的,但是在另一种可能的设计中,第二模型的求解过程还可以是以权值与预估命中率的最大乘积来求解,如以下方程。
Figure BDA0003177873190000144
Figure BDA0003177873190000145
Figure BDA0003177873190000146
其中,xi是处理器112拟为业务所需访问的缓存对象中第i个缓存对象分配的内存容量(页面资源),Wi为第i个缓存对象的权值,V为内存池中流动池所能提供的内存资源的存储容量,Hi为第i个缓存对象的最低命中率,h(xi)为第i个缓存对象的预估命中率,n为业务对所需访问的缓存对象的总数量。
如图2所示,求解上述第二模型的过程可以是由计算设备中的求解组件实现的。
如此,在本申请实施例提供的资源分配方法中,处理器利用了指示在满足一定命中率的情况下需要为缓存对象分配的页面资源的第一模型,并依据一个或多个第一模型确定了用于指示将要为每个缓存对象分配的目标页面资源的第二模型,进而,处理器可以依据该第二模型调整为每个缓存对象分配的页面资源。
由于处理器可以利用第一模型确定每个缓存对象满足一定命中率所需的页面资源,并根据第二模型确定将要为每个缓存对象分配的目标页面资源,有利于处理器依据业务请求和第二模型确定缓存对象的目标页面资源,避免了处理器平均分配或淘汰缓存对象的页面资源,提高了内存池中页面资源的利用率,提高内存池中页面资源的分配合理性,进而降低业务的处理时延。
在一种可能的示例中,处理器112还可以根据业务请求确定缓存对象的保底容量,进而,处理器112可以依据该保底容量和第一模型确定每个缓存对象的最低命中率;处理器112还可以依据该保底容量和第二模型确定多个缓存对象的整体最低命中率。
值得注意的是,该整体最低命中率可以对该多个缓存对象中每个缓存对象的最低命中率进行加权计算得到的。
例如,若该业务为神经网络模型的计算业务,该计算业务对应多个缓存对象:目录项缓存(dentry cache),索引节点缓存(inode cache),数据读缓存和MDS缓存,其中,目录项缓存用于存储业务所需的文件元数据,索引节点缓存用于存储业务所需的文件的属性信息,数据读缓存用于存储业务所需的业务数据,MDS缓存用于存储目录项缓存、索引节点缓存和数据读缓存的元数据。
上述各缓存对象的最低命中率如下表3所示。
表3
缓存对象 保底容量 最低命中率
目录项缓存 1MB 60%
索引节点缓存 1MB 60%
数据读缓存 5MB 70%
MDS缓存 8MB 50%
整体 15MB 60%
值得注意的是,在表3中,整体最低命中率是对各缓存对象的最低命中率进行平均值计算得到的,但在一些可能的情形中,整体最低命中率也可以是每个缓存对象具有不同的权值,并依据该权值计算得到的。例如,目录项缓存,索引节点缓存,数据读缓存和MDS缓存的权值分别为4、3、2、1,则该整体最低命中率为:60%×4/10+60%×3/10+70%×2/10+50%×1/10=61%。此外,在确定整体最低命中率的过程中,各缓存对象的权值可以是固定的或可调整的,示例的,目录项缓存,索引节点缓存,数据读缓存和MDS缓存的权值分别为1、2、3、4。
在本申请实施例提供的资源分配方法中,由于处理器可以依据第一模型和第二模型确定业务请求所需的页面资源的保底容量和最低命中率,并为缓存对象分配页面资源,因此,在资源分配过程中,避免了按照相同比例淘汰或分配资源导致的命中率降低,提高内存池的整体命中率,进而降低业务的处理时延。
针对于上述的资源分配方法,本申请提供了一种可能的完整方案,这里以上述的处理器112是图1所示出的计算设备、业务所需访问的缓存对象包括目录项缓存、索引节点缓存、数据读缓存和MDS缓存为例,如图5所示,图5为本申请提供的一种资源分配的示意图,存储***510可以实现上述资源分配方法的实施例中存储***的功能,存储***510包括硬盘512和由一个或多个内存虚拟化得到的内存池511,关于硬盘512的硬件实现可以参考图1所示出的硬盘105的相关内容,关于内存池511的具体实现可以参考图2所示出的内存池200的相关内容,此处不予赘述。
计算设备520可以实现上述处理器112的功能,示例的,计算设备520可以实现存储***510中内存池511的缓存分配功能,关于计算设备520的硬件实现可以参考图1所示出的计算设备130A和计算设备130B,此处不予赘述。
图5所示出的资源分配过程包括以下多个过程。
第一过程,***建模过程:首先,计算设备520接收业务请求,并对内存池511中的各缓存对象进行采样得到重用距离;其次,计算设备520依据该重用距离和内存池511的内存淘汰信息和历史信息等得到各缓存对象的第一模型(第一模型);最后,计算设备520依据多个第一模型以及权值,确定内存池的最优化模型(如上述的第二模型)。
在***建模过程中,计算设备520还可以对业务的类型进行识别,判断业务的业务数据的冷热,以及对存储***510中的I/O数据进行识别等。
第二过程,模型决策过程:计算设备520可以依据第一过程得到的多种参数(如上述的第二模型和权值等),对业务所需访问的缓存对象的权值和优先级信息进行调整,进而求解第二模型,获得该业务所需访问的缓存对象的目标页面资源。关于最优化模型的求解过程可以参考上述S330的相关阐述,此处不再赘述。
第三过程,动态决策过程:计算设备520可以依据最优化模型的求解结果生成调控策略(如内存分配策略),该调控策略可以用于指示内存池511中缓存对象的页面资源的变化情况,该变化情况包括新增、减少和不变,以及新增或减少页面资源的具体数值等。
另外,计算设备520还可以依据内存池511的状态信息为业务推荐调控策略(内存分配策略)等。
在一种可能的情形中,若存储***510执行过和业务请求一致或相似的历史业务,计算设备520还可以依据该历史业务的执行情况,预测该业务请求所需访问的缓存对象的存储容量。
图5仅为本申请实施例提供的一种可能的方案,内存池511中还可以包括更多或更少的缓存对象,计算设备520可以实现更少或更多的功能,本申请对此不予限定。
值得注意的是,由计算设备520实现本申请提供的资源分配方法,可以减少存储***510中计算资源的消耗,提高存储***510的数据读写速度;另外,由于计算设备520的计算资源是可调整的,如用户可在存储***510上***具有不同处理能力的计算设备,因此,相较于存储***510中的处理器,计算设备520可以更快的进行资源分配,这减少了资源分配所需的时间,降低了业务的处理时延。
可以理解的是,为了实现上述实施例中功能,计算设备和存储***包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
图6和图7为本申请的实施例提供的可能的资源分配装置和计算设备的结构示意图。资源分配装置和计算设备可以用于实现上述方法实施例中处理器112的功能,因此也能实现上述方法实施例所具备的有益效果。在本申请的实施例中,该计算设备可以是如图1所示的处理器112,也可以是如图1所示的计算设备130A或计算设备130B,还可以是应用于存储***100的模块(如芯片)。
如图6所示,图6为本申请提供的一种资源分配装置的方框示意图,该资源分配装置600包括包括通信单元610、处理单元620、分配单元630、第一生成单元640和第二生成单元650,该资源分配装置600可以实现图3~图5所示出的处理器的功能,应理解,本实施例仅对资源分配装置600的结构和功能单元进行示例性划分,本申请并不对其具体划分做任何限定。
当资源分配装置600用于实现图3所示的方法实施例中处理器112的功能时,通信单元610用于执行S310,第一生成单元640用于执行S320,第二生成单元用于执行S330,分配单元630用于执行S340。
第二生成单元650可以用于获取业务所需访问的缓存对象的统计信息,该统计信息包括内存池的带宽和处理时延;该处理单元620还用于依据统计信息更新第二模型。
应理解的是,本申请实施例的资源分配装置600可以通过ASIC实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complexprogrammable logical device,CPLD),FPGA,通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图3至图5所示的资源分配方法时,资源分配装置600及其各个单元也可以为软件单元。
在一种可选的实现方式中,资源分配装置600还可以包括存储单元,该存储单元可以用于保存资源分配的过程数据。
有关上述资源分配装置600更详细的描述可以直接参考上述图3~图5所示的实施例中相关描述直接得到,这里不加赘述。
图7为本申请提供的一种计算设备的结构示意图,该计算设备700包括处理器710和通信接口720。处理器710和通信接口720之间相互耦合。可以理解的是,通信接口720可以为收发器或输入输出接口。可选的,计算设备700还可以包括存储器730,用于存储处理器710执行的指令或存储处理器710运行指令所需要的输入数据,或存储处理器710运行指令后产生的数据。
当计算设备700用于实现图3~图5所示的实施例时,处理器710、通信接口720和存储器730还可以协同实现集群中各节点执行的资源分配方法中的各个操作步骤。计算设备700还可以执行图6所示出的资源分配装置600的功能,此处不予赘述。
本申请实施例中不限定上述通信接口720、处理器710以及存储器730之间的具体连接介质。本申请实施例在图7中以通信接口720、处理器710以及存储器730之间通过总线740连接,总线在图7中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器730可用于存储软件程序及模块,如本申请实施例所提供的资源分配方法对应的程序指令/模块,处理器710通过执行存储在存储器730内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口720可用于与其他设备进行信令或数据的通信。在本申请中该计算设备700可以具有多个通信接口720。
在一种可能的示例中,上述的存储器730可以是但不限于,该存储器730可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是RAM,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如SRAM、DRAM、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
可以理解的是,本申请的实施例中的处理器可以CPU、NPU或GPU,还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、PROM、EPROM、EEPROM、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备或终端设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。
本申请说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上,其它量词与之类似。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,对于单数形式“a”,“an”和“the”出现的元素(element),除非上下文另有明确规定,否则其不意味着“一个或仅一个”,而是意味着“一个或多于一个”。例如,“a device”意味着对一个或多个这样的device。再者,至少一个(at least one of).......”意味着后续关联对象中的一个或任意组合,例如“A、B和C中的至少一个”包括A,B,C,AB,AC,BC,或ABC。在本申请的文字描述中,字符“/”,一般表示前后关联对象是一种“或”的关系;在本申请的公式中,字符“/”,表示前后关联对象是一种“相除”的关系。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。

Claims (21)

1.一种资源分配方法,其特征在于,所述方法应用于存储***中,所述存储***包括多个缓存对象,所述方法包括:
根据每个缓存对象已分配的页面资源和该缓存对象的读数据命中率输出第一模型,所述每个缓存对象已分配的页面资源来自所述存储***所提供的内存池,所述第一模型用于指示在满足一定命中率的情况下需要为所述缓存对象分配的页面资源;
根据所述每个缓存对象所对应的第一模型输出第二模型,所述第二模型用于指示将要为所述每个缓存对象分配的目标页面资源;
根据所述第二模型调整为所述每个缓存对象分配的页面资源。
2.根据权利要求1所述的方法,其特征在于,所述缓存对象是从所述内存池中分配出来的内存空间,所述内存空间用于提供给一定类型的数据使用。
3.根据权利要求1或2所述的方法,其特征在于,根据每个缓存对象所对应的第一模型输出第二模型,包括:
获取所述每个缓存对象所对应的权值,一个权值对应一个缓存对象;
依据所述每个缓存对象所对应的第一模型和该缓存对象对应的权值,输出所述第二模型。
4.根据权利要求3所述的方法,其特征在于,获取所述每个缓存对象所对应的权值,包括:
获取统计信息,所述统计信息包括所述内存池的带宽和处理时延;
依据所述统计信息确定所述每个缓存对象对应的权值。
5.根据权利要求1-4中任一项所述的方法,其特征在于,根据每个缓存对象已分配的页面资源和该缓存对象的读数据命中率输出第一模型,包括:
获取所述缓存对象的状态信息,所述状态信息包括重用距离、内存淘汰信息和历史信息中至少一种或几种的组合,所述历史信息包括在历史业务的执行过程中,所述缓存对象已分配的页面资源和该缓存对象的读数据命中率之间的对应关系;
依据所述状态信息创建所述第一模型。
6.根据权利要求5所述的方法,其特征在于,依据所述状态信息创建所述第一模型,包括:
依据所述重用距离创建第一曲线,所述第一曲线用于指示基于第一算法获取的所述缓存对象已分配的页面资源和读数据命中率之间的对应关系;
依据所述内存淘汰信息创建第二曲线,所述第二曲线用于指示所述缓存对象已分配的部分页面资源被淘汰后,所述缓存对象的页面资源和读数据命中率之间的对应关系;
依据所述历史信息创建第三曲线;
依据所述第一曲线、所述第二曲线和所述第三曲线中至少一种,创建所述第一模型。
7.根据权利要求1-6中任一项所述的方法,其特征在于,根据所述第二模型调整为所述每个缓存对象分配的页面资源,包括:
获取所述每个缓存对象的第一信息,所述第一信息用于指示所述缓存对象的优先级和热点需求中至少一种;
依据所述第一信息和所述第二模型调整为所述每个缓存对象分配的页面资源。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述方法还包括:
获取业务请求,所述业务请求所需的缓存对象包括所述内存池未提供的其他缓存对象;
依据所述业务请求将所述其他缓存对象写入所述内存池。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述方法由所述存储***的处理器执行,或由与所述存储***通信的计算设备执行。
10.一种资源分配装置,其特征在于,所述装置应用于存储***中,所述存储***包括多个缓存对象,所述装置包括:
第一生成单元,用于根据每个缓存对象已分配的页面资源和该缓存对象的读数据命中率输出第一模型,所述每个缓存对象已分配的页面资源来自所述存储***所提供的内存池,所述第一模型用于指示在满足一定命中率的情况下需要为所述缓存对象分配的页面资源;
第二生成单元,用于根据所述每个缓存对象所对应的第一模型输出第二模型,所述第二模型用于指示将要为所述每个缓存对象分配的目标页面资源;
分配单元,用于根据所述第二模型调整为所述每个缓存对象分配的页面资源。
11.根据权利要求10所述的装置,其特征在于,所述缓存对象是从所述内存池中分配出来的内存空间,所述内存空间用于提供给一定类型的数据使用。
12.根据权利要求10或11所述的装置,其特征在于,所述第二生成单元,具体用于获取所述每个缓存对象所对应的权值,一个权值对应一个缓存对象;
所述第二生成单元,还具体用于依据所述每个缓存对象所对应的第一模型和该缓存对象对应的权值,输出所述第二模型。
13.根据权利要求12所述的装置,其特征在于,所述第二生成单元,具体用于获取统计信息,所述统计信息包括所述内存池的带宽和处理时延;
所述第二生成单元,还具体用于依据所述统计信息确定所述每个缓存对象对应的权值。
14.根据权利要求10-13中任一项所述的装置,其特征在于,所述第一生成单元,具体用于获取所述缓存对象的状态信息,所述状态信息包括重用距离、内存淘汰信息和历史信息中至少一种或几种的组合,所述历史信息包括在历史业务的执行过程中,所述缓存对象已分配的页面资源和该缓存对象的读数据命中率之间的对应关系;
所述第一生成单元,还具体用于依据所述状态信息创建所述第一模型。
15.根据权利要求14所述的装置,其特征在于,所述第一生成单元,还具体用于依据所述重用距离创建第一曲线,所述第一曲线用于指示基于第一算法获取的所述缓存对象已分配的页面资源和读数据命中率之间的对应关系;
所述第一生成单元,还具体用于依据所述内存淘汰信息创建第二曲线,所述第二曲线用于指示所述缓存对象已分配的部分页面资源被淘汰后,所述缓存对象的页面资源和读数据命中率之间的对应关系;
所述第一生成单元,还具体用于依据所述历史信息创建第三曲线;
所述第一生成单元,还具体用于依据所述第一曲线、所述第二曲线和所述第三曲线中至少一种,创建所述第一模型。
16.根据权利要求10-15中任一项所述的装置,其特征在于,所述分配单元,具体用于获取所述每个缓存对象的第一信息,所述第一信息用于指示所述缓存对象的优先级和热点需求中至少一种;
所述分配单元,还具体用于依据所述第一信息和所述第二模型调整为所述每个缓存对象分配的页面资源。
17.根据权利要求10-16中任一项所述的装置,其特征在于,所述装置还包括:
通信单元,用于获取业务请求,所述业务请求所需的缓存对象包括所述内存池未提供的其他缓存对象;
处理单元,用于依据所述业务请求将所述其他缓存对象写入所述内存池。
18.根据权利要求10-17中任一项所述的装置,其特征在于,所述装置还应用于与所述存储***通信的计算设备中。
19.一种资源分配***,其特征在于,包括存储***和计算设备,所述计算设备与所述存储***通信,所述存储***包括多个缓存对象;
所述计算设备,用于根据每个缓存对象已分配的页面资源和该缓存对象的读数据命中率输出第一模型,所述每个缓存对象已分配的页面资源来自所述存储***所提供的内存池,所述第一模型用于指示在满足一定命中率的情况下需要为所述缓存对象分配的页面资源;
所述计算设备,还用于根据所述每个缓存对象所对应的第一模型,输出第二模型,所述第二模型用于指示将要为所述每个缓存对象分配的目标页面资源;
所述计算设备,还用于根据所述第二模型调整为所述每个缓存对象分配的页面资源。
20.一种计算设备,其特征在于,包括处理器和接口电路,所述接口电路用于接收来自所述计算设备之外的其它计算设备的信号并传输至所述处理器,或将来自所述处理器的信号发送给所述计算设备之外的其它计算设备,所述处理器通过逻辑电路或执行代码指令用于实现如权利要求1至9中任一项所述的方法。
21.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序或指令,当所述计算机程序或指令被计算设备执行时,实现如权利要求1至9中任一项所述的方法。
CN202110838151.4A 2021-07-23 2021-07-23 一种资源分配方法及装置 Pending CN115687184A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202110838151.4A CN115687184A (zh) 2021-07-23 2021-07-23 一种资源分配方法及装置
PCT/CN2022/082051 WO2023000696A1 (zh) 2021-07-23 2022-03-21 一种资源分配方法及装置
EP22844868.4A EP4365749A1 (en) 2021-07-23 2022-03-21 Resource allocation method and device
US18/419,111 US20240201880A1 (en) 2021-07-23 2024-01-22 Resource Allocation Method and Apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110838151.4A CN115687184A (zh) 2021-07-23 2021-07-23 一种资源分配方法及装置

Publications (1)

Publication Number Publication Date
CN115687184A true CN115687184A (zh) 2023-02-03

Family

ID=84980583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110838151.4A Pending CN115687184A (zh) 2021-07-23 2021-07-23 一种资源分配方法及装置

Country Status (4)

Country Link
US (1) US20240201880A1 (zh)
EP (1) EP4365749A1 (zh)
CN (1) CN115687184A (zh)
WO (1) WO2023000696A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117971510B (zh) * 2024-04-01 2024-06-25 恒生电子股份有限公司 资源分配方法、装置、电子设备及存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6020278B2 (ja) * 2013-03-21 2016-11-02 富士通株式会社 自律分散型キャッシュ配置制御システム
US9836407B2 (en) * 2014-10-23 2017-12-05 Netapp, Inc. Method for using service level objectives to dynamically allocate cache resources among competing workloads
CN106325776A (zh) * 2016-08-24 2017-01-11 浪潮(北京)电子信息产业有限公司 一种缓存淘汰策略的实时调整方法及装置
CN111737168A (zh) * 2020-06-24 2020-10-02 华中科技大学 一种缓存***、缓存处理方法、装置、设备及介质
CN112527749B (zh) * 2020-12-11 2023-07-18 平安科技(深圳)有限公司 缓存策略确定方法、装置、计算机设备及可读存储介质

Also Published As

Publication number Publication date
EP4365749A1 (en) 2024-05-08
US20240201880A1 (en) 2024-06-20
WO2023000696A1 (zh) 2023-01-26

Similar Documents

Publication Publication Date Title
CN105740164B (zh) 支持缓存一致性的多核处理器、读写方法、装置及设备
JP7467593B2 (ja) リソース割振り方法、記憶デバイス、および記憶システム
EP3982269A1 (en) Systems, methods, and devices for accelerators with virtualization and tiered memory
US20240201880A1 (en) Resource Allocation Method and Apparatus
US20220066928A1 (en) Pooled memory controller for thin-provisioning disaggregated memory
US20220382672A1 (en) Paging in thin-provisioned disaggregated memory
US20240241826A1 (en) Computing node cluster, data aggregation method, and related device
US20220188230A1 (en) Cache Management Method and Apparatus
CN117992360A (zh) 存储***及存储方法
WO2023227004A1 (zh) 内存访问热度统计方法、相关装置及设备
CN113010453A (zh) 一种内存管理的方法、***、设备及可读存储介质
WO2023035694A1 (zh) 业务***、内存管理方法及装置
CN116560560A (zh) 存储数据的方法和相关装置
US20210373790A1 (en) Inference in memory
CN115686342A (zh) 存储***中的数据存储方法以及装置
CN115904689A (zh) 控制内存带宽的方法、装置、处理器及计算设备
CN108920254B (zh) 一种基于细粒度的内存分配方法
US20230359495A1 (en) System and method for heterogeneous memory
CN113918483B (zh) 一种多主设备缓存控制方法及***
CN115878308A (zh) 一种资源调度方法及装置
EP4372563A1 (en) Systems, methods, and apparatus for operating computational devices
WO2024098795A1 (zh) 内存管理方法、装置和相关设备
CN116225982A (zh) 通过缓存着色提高虚拟机实时性的方法
CN118276773A (zh) 内存访问方法、***及装置
CN116541156A (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