CN118152304A - 函数的缓存分配方法及相关设备 - Google Patents
函数的缓存分配方法及相关设备 Download PDFInfo
- Publication number
- CN118152304A CN118152304A CN202410575289.3A CN202410575289A CN118152304A CN 118152304 A CN118152304 A CN 118152304A CN 202410575289 A CN202410575289 A CN 202410575289A CN 118152304 A CN118152304 A CN 118152304A
- Authority
- CN
- China
- Prior art keywords
- function
- cache
- cache data
- optimal
- data column
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 111
- 230000035945 sensitivity Effects 0.000 claims abstract description 124
- 230000008569 process Effects 0.000 claims abstract description 29
- 238000005457 optimization Methods 0.000 claims abstract description 15
- 230000006870 function Effects 0.000 claims description 625
- 238000012360 testing method Methods 0.000 claims description 62
- 238000005516 engineering process Methods 0.000 claims description 52
- 238000012544 monitoring process Methods 0.000 claims description 17
- 239000011159 matrix material Substances 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 9
- 238000000611 regression analysis Methods 0.000 claims description 9
- 238000013468 resource allocation Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000007621 cluster analysis Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开提供一种函数的缓存分配方法及相关设备,涉及计算机技术领域,该方法包括:获取待分配缓存的目标函数,根据预先构建的函数缓存模型库和目标函数的当前输入参数,确定目标函数的最优缓存数据列数,并确定函数敏感值,函数敏感值表示函数占用的缓存数据列数由少到最优缓存数据列数过程中,函数性能的优化程度,根据函数敏感值,在最后一级高速缓存的多个缓存数据列中为目标函数分配缓存数据列。可以确定函数不同输入参数下的最优缓存数据列数和函数敏感值,判断函数性能与缓存的关系,从而为函数自动的合理分配缓存数据列,合理利用硬件的缓存空间,提高函数性能。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种函数的缓存分配方法及相关设备。
背景技术
函数即服务(Function as a Service,FaaS)是一种云计算服务模型,它将应用程序的不同功能单元(也称为函数或微服务)作为独立的、可复用的服务提供给开发者。
FaaS工作流中的函数性能与函数占用缓存的大小息息相关,但是,相关技术中,都是通过人工来指定函数的缓存,不仅工作量大,且灵活性差,指定一个函数的缓存量后无法自动调整,不同输入参数时,对于相同函数是相同的缓存量会影响函数的性能。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供一种函数的缓存分配方法及相关设备,至少在一定程度上克服相关技术中自动化程度低,对人工依赖度高的问题,自动合理的为函数分配缓存,从而提高函数的性能。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
第一方面,本公开中的实施例提供一种函数的缓存分配方法,所述方法包括:
获取待分配缓存的目标函数;
根据预先构建的函数缓存模型库和所述目标函数的当前输入参数,确定所述目标函数在当前输入参数下的最优缓存数据列数;
根据最优缓存数据列数,确定函数敏感值;函数敏感值表示函数占用的缓存数据列数由少到最优缓存数据列数过程中,函数性能的优化程度;
根据所述函数敏感值,通过高速缓存分配技术在最后一级高速缓存LLC的多个缓存数据列中为所述目标函数分配缓存数据列。
在一种可能的实施例中,所述根据所述函数敏感值,通过高速缓存分配技术在最后一级高速缓存LLC的多个缓存数据列中为所述目标函数分配缓存数据列,包括:
若所述函数敏感值大于敏感阈值,则确定所述目标函数为敏感类型函数,通过高速缓存分配技术为所述目标函数在所述LLC中分配所述最优缓存数据列数;
若所述函数敏感值小于或者等于敏感阈值,则确定所述目标函数为不敏感类型函数,通过高速缓存分配技术为所述目标函数在所述LLC分配容纳所述目标函数执行的最低缓存数据列数。
在一种可能的实施例中,所述方法还包括:
若所述目标函数为在函数即服务平台上未进行注册的未知函数,则通过高速缓存分配技术为所述目标函数在所述LLC中分配随机缓存数据列数。
在一种可能的实施例中,所述根据所述函数敏感值,通过高速缓存分配技术在最后一级高速缓存LLC的多个缓存数据列中为所述目标函数分配缓存数据列,包括:
通过高速缓存分配技术基于服务等级CLOS中间结构作为资源控制平面,构建所述LLC中缓存数据列与多个CLOS之间的关系矩阵;
根据所述函数敏感值,通过高速缓存分配技术为所述目标函数分配CLOS。
在一种可能的实施例中,所述关系矩阵中的多个CLOS包括:敏感CLOS和不敏感CLOS;其中,每个不敏感CLOS关联的缓存数据列数为设定值,且小于每个敏感CLOS关联的缓存数据列数。
在一种可能的实施例中,所述根据所述函数敏感值,通过高速缓存分配技术为所述目标函数分配CLOS,包括:
确定所述多个CLOS关联的缓存数据列的当前负载;
对多个CLOS按照不同类型和当前负载大小进行排序,得到不同类型下按照当前负载大小排序的CLOS;
若所述函数敏感值小于或者等于敏感阈值,则选择当前负载最小的不敏感CLOS分配给所述目标函数;
若所述函数敏感值大于敏感阈值,则确定所述目标函数为敏感类型函数,选择关联的缓存数据列负载最小的敏感CLOS分配给所述目标函数,分配所述最优缓存数据列数。
在一种可能的实施例中,所述关系矩阵中的多个CLOS包括:预留CLOS;
所述方法还包括:
若所述目标函数为在函数即服务平台上未进行注册的未知函数,则通过高速缓存分配技术将所述预留CLOS分配给所述目标函数。
在一种可能的实施例中,所述函数缓存模型库的构建过程包括:
获取在函数即服务平台上注册的已知函数;
通过测试输入参数对所述已知函数进行测试,确定所述已知函数在所述测试输入参数下的测试最优缓存数据列和测试函数敏感值;
根据所述测试输入参数、测试最优缓存数据列和测试函数敏感值,构建所述已知函数的初始函数缓存模型;
根据所述初始函数缓存模型,进行回归分析或聚类算法,预测所述已知函数在不同输入参数下对应的不同最优缓存数据列和不同函数敏感值,得到预测数据;
根据所述预测数据,构建所述已知函数的多参数函数缓存模型;
根据所述已知函数的多参数函数缓存模型,构建函数缓存模型库。
在一种可能的实施例中,所述方法还包括:
通过资源调配技术获取所述已知函数的历史监控数据;所述历史监控数据至少包括:历史输入参数、历史最优缓存数据列和历史函数敏感值;
根据所述已知函数的历史监控数据,更新所述已知函数的初始函数缓存模型;
根据所述已知函数更新后的初始函数缓存模型,实时更新函数缓存模型库。
在一种可能的实施例中,所述根据预先构建的函数缓存模型库和所述目标函数的当前输入参数,确定所述目标函数在当前输入参数下的最优缓存数据列数,包括:
从预先构建的函数缓存模型库中确定所述目标函数对应的目标函数缓存模型;
根据目标函数缓存模型中的预测数据,输出所述当前输入参数对应的最优缓存数据列数。
在一种可能的实施例中,所述根据最优缓存数据列数,确定函数敏感值,包括:
根据所述目标函数在当前输入参数对应的所述最优缓存数据列数下的第一执行时间和在一列缓存数据列的第二执行时间之差与所述第一执行时间的比值,确定所述函数敏感值。
第二方面,本公开中的实施例提供了一种函数的缓存分配系统,所述系统包括:
分析器,用于获取待分配缓存的目标函数;
预测器,用于根据预先构建的函数缓存模型库和所述目标函数的当前输入参数,确定所述目标函数在当前输入参数下的最优缓存数据列数;
所述预测器,还用于根据最优缓存数据列数,确定函数敏感值;函数敏感值表示函数占用的缓存数据列数由少到最优缓存数据列数过程中,函数性能的优化程度;
分配器,用于根据所述函数敏感值,通过高速缓存分配技术在最后一级高速缓存LLC的多个缓存数据列中为所述目标函数分配缓存数据列。
在一种可能的实施例中,所述分配器,还用于:
若所述函数敏感值大于敏感阈值,则确定所述目标函数为敏感类型函数,通过高速缓存分配技术为所述目标函数在所述LLC中分配所述最优缓存数据列数;
若所述函数敏感值小于或者等于敏感阈值,则确定所述目标函数为不敏感类型函数,通过高速缓存分配技术为所述目标函数在所述LLC分配容纳所述目标函数执行的最低缓存数据列数。
在一种可能的实施例中,所述分配器,还用于:
若所述目标函数为在函数即服务平台上未进行注册的未知函数,则通过高速缓存分配技术为所述目标函数在所述LLC中分配随机缓存数据列数。
在一种可能的实施例中,所述分配器,还用于:
通过高速缓存分配技术基于服务等级CLOS中间结构作为资源控制平面,构建所述LLC中缓存数据列与多个CLOS之间的关系矩阵;
根据所述函数敏感值,通过高速缓存分配技术为所述目标函数分配CLOS。
在一种可能的实施例中,所述分析器,还用于获取在函数即服务平台上注册的已知函数;通过测试输入参数对所述已知函数进行测试,确定所述已知函数在所述测试输入参数下的测试最优缓存数据列和测试函数敏感值;根据所述测试输入参数、测试最优缓存数据列和测试函数敏感值,构建所述已知函数的初始函数缓存模型;
所述预测器,还用于根据所述初始函数缓存模型,进行回归分析或聚类算法,预测所述已知函数在不同输入参数下对应的不同最优缓存数据列和不同函数敏感值,得到预测数据;根据所述预测数据,构建所述已知函数的多参数函数缓存模型;根据所述已知函数的多参数函数缓存模型,构建函数缓存模型库。
第三方面,本公开中的实施例提供一种函数的缓存分配装置,包括:
获取单元,用于获取待分配缓存的目标函数;
第一确定单元,用于根据预先构建的函数缓存模型库和所述目标函数的当前输入参数,确定所述目标函数在当前输入参数下的最优缓存数据列数;
第二确定单元,用于根据最优缓存数据列数,确定函数敏感值;函数敏感值表示函数占用的缓存数据列数由少到最优缓存数据列数过程中,函数性能的优化程度;
分配单元,用于根据所述函数敏感值,通过高速缓存分配技术在最后一级高速缓存LLC的多个缓存数据列中为所述目标函数分配缓存数据列。
在一种可能的实施例中,所述装置还包括:构建单元,用于:
获取在函数即服务平台上注册的已知函数;
通过测试输入参数对所述已知函数进行测试,确定所述已知函数在所述测试输入参数下的测试最优缓存数据列和测试函数敏感值;
根据所述测试输入参数、测试最优缓存数据列和测试函数敏感值,构建所述已知函数的初始函数缓存模型;
根据所述初始函数缓存模型,进行回归分析或聚类算法,预测所述已知函数在不同输入参数下对应的不同最优缓存数据列和不同函数敏感值,得到预测数据;
根据所述预测数据,构建所述已知函数的多参数函数缓存模型;
根据所述已知函数的多参数函数缓存模型,构建函数缓存模型库。
在一种可能的实施例中,所述装置还包括:更新单元,用于:
通过资源调配技术获取所述已知函数的历史监控数据;所述历史监控数据至少包括:历史输入参数、历史最优缓存数据列和历史函数敏感值;
根据所述已知函数的历史监控数据,更新所述已知函数的初始函数缓存模型;
根据所述已知函数更新后的初始函数缓存模型,实时更新函数缓存模型库。
第四方面,本公开实施例提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述的第一方面中所述的方法。
第五方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的第一方面中所述的方法。
第六方面,根据本公开的另一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一项所述的方法。
本公开的实施例所提供的一种函数的缓存分配方法及相关设备,具体包括:函数的缓存分配方法、系统、装置、设备、介质及程序产品,该方法包括:获取待分配缓存的目标函数;根据预先构建的函数缓存模型库和目标函数的当前输入参数,确定目标函数在当前输入参数下的最优缓存数据列数;根据最优缓存数据列数,确定函数敏感值;函数敏感值表示函数占用的缓存数据列数由少到最优缓存数据列数过程中,函数性能的优化程度;根据函数敏感值,通过高速缓存分配技术在最后一级高速缓存LLC的多个缓存数据列中为目标函数分配缓存数据列。通过函数在不同输入参数下的最优缓存数据列数和函数敏感值,判断函数性能与缓存的关系,从而为函数自动的合理分配对应的缓存数据列,合理利用LLC的缓存空间,提高函数性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开实施例中一种单体应用程序拆分为函数的示意图;
图2示出本公开实施例中一种函数的缓存分配系统的结构示意图;
图3示出本公开实施例中一种服务等级与缓存数据列之间的关系矩阵的示意图;
图4示出本公开实施例中一种FaaS平台的示意图;
图5示出本公开实施例中一种函数的缓存分配系统的应用于FaaS平台的示意图;
图6示出本公开实施例中一种函数的缓存分配方法的流程图;
图7示出本公开实施例中一种为目标函数分配缓存数据列的流程图;
图8示出本公开实施例中一种为目标函数分配CLOS的流程图;
图9示出本公开实施例中一种构建函数缓存模型库的流程图;
图10示出本公开实施例中一种函数的缓存分配装置的结构示意图;
图11示出本公开实施例中一种电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
对本公开中的名词进行解释说明:
函数即服务:简称是FaaS,是一种云计算服务模型,它将应用程序的不同功能单元(也称为函数或微服务)作为独立的、可复用的服务提供给开发者。
资源调配技术(Resource Director Technology,RDT):该技术是一种允许用户直接监控和分配中央处理器(Central Processing Unit,CPU)核心的二级高速缓存(Level 2Cache,L2)缓存、最后一级高速缓存以及内存带宽的技术。这种技术通过一系列的CPU指令实现。其中,CPU核心包括通过超线程技术(Hyper-Threading Technology,HT)技术增强的逻辑核心。
高速缓存分配技术(Cache Allocation Technology,CAT):该技术是RDT技术中的一个重要组成部分,属于控制技术类别。CAT技术允许操作系统或虚拟机监视器(VirtualMachine Monitor,VMM)来监控和分配线程、应用或虚拟机(Virtual Machine,VM)使用的缓存空间。
最后一级高速缓存(Last Level Cache,LLC):CPU中的最后一级缓存,通常位于CPU核心之外,但仍然与CPU紧密集成。LLC缓存用于存储最近访问过的数据和指令,以减少处理器访问动态随机存取存储器(Dynamic Random-Access Memory,DRAM)的次数,即减少处理器访问主存的次数,从而提高性能。
缓存数据列(way):在CPU缓存中,数据是以类似二维数组的形式存储的,其中的列即缓存数据列,也可以称为路、线路等。
相关技术中,单体应用程序拆分为微服务之后,还可以拆分为更细粒度的函数,如图1所示,由单体应用程序(Monolithic Applicatio)-微服务(Microservice)-函数(Function)。由多个函数构成的服务可以称为函数即服务,即FaaS。
FaaS工作流一般部署在FaaS平台上,在部署过程中需要为FaaS工作流中的函数分配缓存,通过人工的方式为每个函数指定缓存,不仅严重依赖人工经验,并且分配效率低,无法准确的确定每个函数分配缓存量,会影响函数性能。
基于此问题,本公开实施例提供了一种函数的缓存分配方法、系统、装置、设备、介质及程序产品,涉及计算机技术领域,特别涉及计算机处理器架构的最后一级高速缓存的缓存空间分配技术领域,该方法包括:获取待分配缓存的目标函数,根据预先构建的函数缓存模型库和目标函数的当前输入参数,确定目标函数的最优缓存数据列数,并确定函数敏感值,函数敏感值表示函数占用的缓存数据列数由少到最优缓存数据列数过程中,函数性能的优化程度,根据函数敏感值,从多个缓存数据列中为目标函数分配缓存数据列。可以确定函数不同输入参数下的最优缓存数据列数和函数敏感值,判断函数性能与缓存的关系,从而为函数自动的合理分配缓存数据列,合理利用硬件的缓存空间,提高函数性能。
本公开中的函数的缓存分配方法可以应用于函数的缓存分配系统,也可以应用电子设备。
图2示出了本公开实施例中的函数的缓存分配系统的结构示意图。
如图2所示,函数的缓存分配系统100可以包括分析器101,预测器102和分配器103。
其中,分析器101,用于获取待分配缓存的目标函数;预测器102,用于根据预先构建的函数缓存模型库和目标函数的当前输入参数,确定目标函数在当前输入参数下的最优缓存数据列数;预测器102,还用于根据最优缓存数据列数,确定函数敏感值;函数敏感值表示函数占用的缓存数据列数由少到最优缓存数据列数过程中,函数性能的优化程度;分配器103,用于根据函数敏感值,通过高速缓存分配技术在最后一级高速缓存LLC的多个缓存数据列中为目标函数分配缓存数据列。
通过上述方式,可以根据函数敏感值区分不同函数的类型,自动为函数分配缓存数据列,避免通过人工分配缓存,提高自动化,进一步地,针对不同输入参数下的函数,可以确定对应的最优缓存数据列数和函数敏感值,区分函数的不同类型,进而为函数分配缓存数据列。
其中,函数的输入参数可以是文本,一些离散数据,图片视频等文件。
其中,最优缓存数据列数用于表征为一个函数分配缓存数据列数由少到多的过程中,达到最优缓存数据列数后,分配缓存数据列数继续增多,函数性能提升程度不明显,性能优化程度小。
函数敏感值越小,则在为函数分配的缓存数据列由少到最优缓存数据列数的过程中,其性能优化程度小,说明缓存的多少对此函数的性能影响不明显,则定义为函数不敏感。
示例性地,缓存可以分配给不同进程,将函数部署在进程中,达到为函数分配缓存的目的,具体地,函数通过容器化的方式来实现,还是通过虚拟机对函数进行部署等方式实现在本公开中不进行限定。
在一种可能的实施例中,分配器103可以根据函数敏感值的大小直接为目标函数分配缓存数据列。
示例性地,分配器103可以用于若函数敏感值大于敏感阈值,则确定目标函数为敏感类型函数,通过高速缓存分配技术为目标函数在LLC中分配最优缓存数据列数;若函数敏感值小于或者等于敏感阈值,则确定目标函数为不敏感类型函数,通过高速缓存分配技术为目标函数在LLC分配容纳目标函数执行的最低缓存数据列数。
由于 缓存不敏感的函数在缓存数据列不同时的执行性能通常几乎没有区别,敏感阈值可以选择很小的阈值,即可区分两类函数。
示例性地,针对未在函数即服务平台上进行注册的未知函数,分配器103可以通过高速缓存分配技术为目标函数在LLC中分配随机缓存数据列数。
通过上述方式,分配器103不仅可以区分函数的类型,自动为函数分配缓存数据列,还可以为函数定量分配缓存数据列,敏感函数就分配最优缓存数据列,不敏感函数分配足够函数执行的缓存数据列即可。并且直接为目标函数分配缓存数据列,可以简化管理,不加入中间层减少系统复杂性,提高分配效率,不需要进行额外的分类和调度机制,提高资源利用效率,降低成本。
在另一种可能的实施例中,还可以通过高速缓存分配技术基于服务等级(ClassOf Service,CLOS)中间结构作为资源控制平面,通过CLOS以间接的方式为函数分配缓存数据列。
示例性地,分配器103用于通过高速缓存分配技术基于服务等级CLOS中间结构作为资源控制平面,构建最后一级高速缓存中缓存数据列与多个CLOS之间的关系矩阵;根据函数敏感值,通过高速缓存分配技术为目标函数分配CLOS。
其中,关系矩阵中的多个CLOS包括:敏感CLOS和不敏感CLOS;其中,每个不敏感CLOS关联的缓存数据列数为设定值,且小于每个敏感CLOS关联的缓存数据列数。
此设定值可以为一列缓存数据列。CLOS可以将多个缓存数据列关联,将CLOS分配给一个函数,实现为函数分配多个缓存数据列。
分配器103还用于确定多个CLOS关联的缓存数据列的当前负载;对多个CLOS按照不同类型和当前负载大小进行排序,得到不同类型下按照当前负载大小排序的CLOS;若函数敏感值小于或者等于敏感阈值,则选择当前负载最小的不敏感CLOS分配给目标函数;若函数敏感值大于敏感阈值,则确定目标函数为敏感类型函数,选择关联的缓存数据列负载最小的敏感CLOS分配给目标函数,分配最优缓存数据列数。
示例性地,关系矩阵中的多个CLOS还可以包括:预留CLOS。
分配器103还用于若目标函数为在函数即服务平台上未进行注册的未知函数,则通过高速缓存分配技术将预留CLOS分配给目标函数。
图3示出了一种服务等级与缓存数据列之间的关系矩阵的示意图,其中,图3中通过WAY表示缓存数据列,分别包括WAY1、WAY2、WAY3、WAY4、WAY5、WAY6和WAY7。其中,以包括7个CLOS为例,分别为:CLOS0、CLOS1、CLOS2、CLOS3、CLOS4、CLOS5、CLOS6。图3中通过对号表示关联关系,具体如图3所示。
其中,以CLOS0、CLOS1、CLOS2和CLOS3为敏感CLOS,CLOS4和CLOS5为不敏感CLOS,CLOS6为预留CLOS为例。
在一种可能的实施例中,若函数A为敏感类型函数,最优缓存数据列数为3,则可以为函数A分配CLOS1,若函数B为不敏感类型函数,则可以为函数B分配CLOS5,若函数C为未知函数,则可以为函数C分配CLOS6。预留CLOS的缓存数据列可以是随机的。
通过上述方式为函数分配缓存数据列,CLOS允许根据不同的服务需求来动态调整缓存资源的分配,可以提供分配的灵活性。通过CLOS分配可以确保不同函数按照其服务级别公平地获取资源,避免了资源被少数高需求任务独占。
在本公开的实施例中,一个FaaS工作流中函数的互相配合调用实现一个完整功能的,所以函数的优先级可以是相同的,通过CLOS与缓存数据列的关系矩阵,以及将CLOS分配给函数,可以在一定意义上对LLC进行类似分区的功能。
若在执行的过程中,FaaS工作流中函数A承担主要的处理逻辑,重要性更高,则可以引入CLOS中优先级的功能,将函数A作为高优先级作业,保证函数A的服务质量。通常情况下,函数之间互相配合,则可以不区分函数的优先级。
在一种可能的实施例中,分析器101用于获取在函数即服务平台上注册的已知函数;通过测试输入参数对已知函数进行测试,确定已知函数在测试输入参数下的测试最优缓存数据列和测试函数敏感值;根据测试输入参数、测试最优缓存数据列和测试函数敏感值,构建已知函数的初始函数缓存模型。
分析器101用于对已经注册的已知函数进行分析,在初始化阶段,分析器101可以通过在多云集群环境下对已知函数进行测试,使得已知函数可以存在一个已知函数的初始函数缓存模型。
得到初始函数缓存模型之后,预测器102可以用于根据初始函数缓存模型,进行回归分析或聚类算法,预测已知函数在不同输入参数下对应的不同最优缓存数据列和不同函数敏感值,得到预测数据;根据预测数据,构建已知函数的多参数函数缓存模型;根据已知函数的多参数函数缓存模型,构建函数缓存模型库。
在初始化阶段,一个函数在一个FaaS云的工作流中实现其功能,或者,在不同的FaaS云进行协同部署工作流的情况下实现其功能,函数的功能一般不会发生变化,对数据的处理逻辑等不会变化。所以,预测器102可以根据已知函数的功能逻辑和初始函数缓存模型,对仅有一组测试输入参数、测试最优缓存数据列和测试函数敏感值的数据进行回归分析或聚类分析,对数据进行处理,对不同输入参数下的已知函数进行预测,得到预测数据,以此方式提高系统的延展性,对函数的不同输入参数均可在预测数据中得到最优缓存数据列和函数敏感值。
由于输入参数的大小、参数值通常无法穷举,预测器102基于分析器101的原始数据,引入回归分析、聚类等方法得到函数在不同输入参数情况下的模型。
在一种可能的实施例中,分析器101,还可以用于通过资源调配技术获取已知函数的历史监控数据;历史监控数据至少包括:历史输入参数、历史最优缓存数据列和历史函数敏感值;根据已知函数的历史监控数据,更新已知函数的初始函数缓存模型。通过采集监控的数据更新初始函数缓存模型,作为预测器102的训练数据。
预测器102,还可以用于根据已知函数更新后的初始函数缓存模型库,实时更新函数缓存模型库。
预测器102还可以用于,选择监督学习类的算法,将监控采集的数据(或人工标记)、函数实际执行时间与对应的输入参数作为预测器102的训练数据,以此不断优化和更新函数缓存模型库。
在一种可能的实施例中,对本公开中函数的缓存分配系统100的应用场景进行举例说明,可以部署在FaaS平台上,具体平台不进行限制。
图4示出了一种FaaS平台的示意图,如图4所示,FaaS平台包括:函数注册模块401和资源配置模块402。
进一步地,图5示出了本公开实施例中一种函数的缓存分配系统的应用场景的示意图,如图5所示,其中,将函数的缓存分配系统100部署在FaaS平台上,在实际对函数的缓存进行分配的过程中,通过分析器101在函数注册模块401中获取待分配缓存的目标函数,并通过预测器102确定目标函数的最优缓存数据列数和函数敏感值,分配器103根据函数敏感值和最优缓存数据列数对目标函数进行分配,将分配后的信息发送到FaaS平台的资源配置模块402上。
通过本公开实施例中提供的函数的缓存分配系统100,可以为函数在不同的输入参数下,分配合理的CPU缓存,保证缓存上的负载均衡,从而优化缓存使用率,提高使用效率,减少对缓存的争用,从而提高函数服务的执行性能。在FaaS平台中使用CAT技术来配置缓存,缓存分配过程无需人工干预,降低工作量、提升系统弹性。
下面结合附图及实施例对本示例实施方式进行详细说明。
首先,本公开实施例中提供了一种函数的缓存分配方法,该方法可以由任意具备计算处理能力的电子设备执行,下述过程中以电子设备为函数的缓存分配系统100为例。
图6示出本公开实施例中一种函数的缓存分配方法的流程图,如图6所示,本公开实施例中提供的函数的缓存分配方法包括如下步骤:
S602:获取待分配缓存的目标函数。
在一种可能的实施例中,目标函数可以是FaaS工作流中的函数。
S604:根据预先构建的函数缓存模型库和目标函数的当前输入参数,确定目标函数在当前输入参数下的最优缓存数据列数。
在一种可能的实施例中,确定最优缓存数据列数,可以包括:从预先构建的函数缓存模型库中确定目标函数对应的目标函数缓存模型,根据目标函数缓存模型中的预测数据,输出当前输入参数对应的最优缓存数据列数。
在初始化阶段,历史数据少,需要对函数在不同输入参数下的最优缓存数据列数进行预测处理,以保证缓存分配的准确性。
在另一种可能的实施例中,由于函数的执行逻辑和功能即使在不同的工作流中也是基本一致的,可以预想到的是,函数的输入参数是在一定的范围内变化的。确定目标函数的最优缓存数据列数的方式还可以包括:通过分析器101中保存的历史监控数据确定当前输入参数下的最优缓存数据列。其中,历史监控数包括:每个函数的历史输入参数、历史最优缓存数据列和历史函数敏感值。
S606:根据最优缓存数据列数,确定函数敏感值。
其中,函数敏感值表示函数占用的缓存数据列数由少到最优缓存数据列数过程中,函数性能的优化程度。
函数敏感值的大小,主要是用于表征函数性能随着缓存数据列数的变化的优化程度,函数性能可以通过很多种类型的参数进行表示,例如,函数的执行时间、CPU读取函数的速度、内存访问延迟、对输入/输出轮询次数等。
在一种可能的实施例中,以函数的执行时间为例对函数敏感值的确定方式进行举例说明,下述方式并非是唯一的实现方式。
确定函数敏感值的方式具体可以包括:根据目标函数在当前输入参数对应的最优缓存数据列数下的第一执行时间和在一列缓存数据列的第二执行时间之差与第一执行时间的比值,确定函数敏感值。
S608:根据函数敏感值,通过高速缓存分配技术在最后一级高速缓存LLC的多个缓存数据列中为目标函数分配缓存数据列。
为目标函数分配缓存数据列的具体实施方式在此处不再进行赘述。
通过上述方式,可以判断函数性能与缓存的关系,自动化为函数分配缓存。
在一种可能的实施例中,分配方式可以包括:若函数敏感值大于敏感阈值,则确定目标函数为敏感类型函数,通过高速缓存分配技术为目标函数在LLC中分配最优缓存数据列数;若函数敏感值小于或者等于敏感阈值,则确定目标函数为不敏感类型函数,通过高速缓存分配技术为目标函数在LLC分配容纳目标函数执行的最低缓存数据列数。
在一种可能的实施例中,若目标函数为在函数即服务平台上未进行注册的未知函数,则通过高速缓存分配技术为目标函数在在LLC中分配随机缓存数据列数。
在另一种可能的实施例中,图7示出了一种为目标函数分配缓存数据列的流程图,如图7所示,包括以下步骤:
S702:通过高速缓存分配技术基于服务等级CLOS中间结构作为资源控制平面,构建LLC中缓存数据列与多个CLOS之间的关系矩阵。
S704:根据函数敏感值,通过高速缓存分配技术为目标函数分配CLOS。
示例性地,关系矩阵中的多个CLOS包括:敏感CLOS和不敏感CLOS;其中,每个不敏感CLOS关联的缓存数据列数为设定值,且小于每个敏感CLOS关联的缓存数据列数。
图8示出了一种为目标函数分配CLOS的流程图,如图8所示,包括以下步骤:
S802:确定多个CLOS关联的缓存数据列的当前负载。
S804:对多个CLOS按照不同类型和当前负载大小进行排序,得到不同类型下按照当前负载大小排序的CLOS。
S806:若函数敏感值小于或者等于敏感阈值,则选择当前负载最小的不敏感CLOS分配给目标函数。
在一种可能的实施例中,由于不敏感函数对缓存要求不高,所以,可以为多个函数分配同一个CLOS,保证每个函数所分配到的缓存数据列数为容纳目标函数执行的最低缓存数据列数即可。
S808:若函数敏感值大于敏感阈值,则确定目标函数为敏感类型函数,选择关联的缓存数据列负载最小的敏感CLOS分配给目标函数,分配最优缓存数据列数。
在需要对多个函数分配缓存时,重复选择负载最小的CLOS分配给目标函数,并分配最优缓存数据列数,直至全部函数的缓存分配过程结束。
通过图8中的方式,可以按照不同的函数敏感值,区分函数的不同类型,并为需要缓存的函数分配最优缓存数据列数,为缓存不敏感的函数,在不严重影响其性能的情况下,分配较小的缓存,合理利用LLC缓存空间,提高函数性能。在有限的LLC缓存中为每个函数分配合理的缓存量,不会导致函数分配的缓存量分配的过多或者过少,提高函数性能。
其中,需要说明的是,敏感CLOS和不敏感CLOS的划分可以根据已注册的已知函数中敏感类型和不敏感类型的比例确定。
在一种可能的实施例中,若目标函数为在函数即服务平台上未进行注册的未知函数,则通过高速缓存分配技术将预留CLOS分配给目标函数。
在另一种可能的实施例中,可以通过对CPU的LLC缓存进行物理意义上的划分来实现在LLC缓存上划分出敏感缓存数据列、不敏感缓存数据列和预留数据列,用于为不同的进程进行分配,并在进程中部署函数。
在另一种可能的实施例中,由于LLC缓存的大小可以是几兆字节(Megabyte,MB)到几十MB,可以选择CPU带多个内存小的LLC缓存,用于分配给不同类型的函数。
在一种可能的实施例中,图9示出了一种构建函数缓存模型库的流程示意图,如图9所示,包括以下步骤:
S902:获取在函数即服务平台上注册的已知函数。
S904:通过测试输入参数对已知函数进行测试,确定已知函数在测试输入参数下的测试最优缓存数据列和测试函数敏感值。
其中,测试输入参数可以是预先准备的数据,也可以是集群实际运行时的采集数据。
S906:根据测试输入参数、测试最优缓存数据列和测试函数敏感值,构建已知函数的初始函数缓存模型。
S908:根据初始函数缓存模型,进行回归分析或聚类算法,预测已知函数在不同输入参数下对应的不同最优缓存数据列和不同函数敏感值,得到预测数据。
S910:根据预测数据,构建已知函数的多参数函数缓存模型。
S912:根据已知函数的多参数函数缓存模型,构建函数缓存模型库。
在一种可能的实施例中,在实际的工作过程中,可以实时不断的更新函数缓存模型库,具体方式可以包括:通过资源调配技术获取已知函数的历史监控数据;历史监控数据至少包括:历史输入参数、历史最优缓存数据列和历史函数敏感值;根据已知函数的历史监控数据,更新已知函数的初始函数缓存模型;根据已知函数更新后的初始函数缓存模型,实时更新函数缓存模型库。
其中,更新初始函数缓存模型是将历史监控数据和测试数据都保存在初始函数缓存模型中。
基于同一发明构思,本公开实施例中还提供了一种函数的缓存分配装置,如下面的实施例。由于该装置实施例解决问题的原理与上述方法实施例相似,因此该装置实施例的实施可以参见上述方法实施例的实施,重复之处不再赘述。
图10示出本公开实施例中一种函数的缓存分配装置的结构示意图,如图10所示,该装置10包括:获取单元1001,用于获取待分配缓存的目标函数;第一确定单元1002,用于根据预先构建的函数缓存模型库和目标函数的当前输入参数,确定目标函数在当前输入参数下的最优缓存数据列数;第二确定单元1003,用于根据最优缓存数据列数,确定函数敏感值;函数敏感值表示函数占用的缓存数据列数由少到最优缓存数据列数过程中,函数性能的优化程度;分配单元1004,用于根据函数敏感值,通过高速缓存分配技术在最后一级高速缓存LLC的多个缓存数据列中为目标函数分配缓存数据列。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图11来描述根据本公开的这种实施方式的电子设备1100。图11显示的电子设备1100仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图11所示,电子设备1100以通用计算设备的形式表现。电子设备1100的组件可以包括但不限于:上述至少一个处理单元1110、上述至少一个存储单元1120、连接不同系统组件(包括存储单元1120和处理单元1110)的总线1130。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1110执行,使得所述处理单元1110执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元1110可以执行上述方法实施例中的任一项的步骤。
存储单元1120可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)11201和/或高速缓存存储单元11202,还可以进一步包括只读存储单元(ROM)11203。
存储单元1120还可以包括具有一组(至少一个)程序模块11205的程序/实用工具11204,这样的程序模块11205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1130可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1100也可以与一个或多个外部设备1140(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1100交互的设备通信,和/或与使得该电子设备1100能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1150进行。并且,电子设备1100还可以通过网络适配器1160与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1160通过总线1130与电子设备1100的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质可以是可读信号介质或者可读存储介质。其上存储有能够实现本公开上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
本公开中的计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本公开中,计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可选地,计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
在具体实施时,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
通过以上实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (20)
1.一种函数的缓存分配方法,其特征在于,所述方法包括:
获取待分配缓存的目标函数;
根据预先构建的函数缓存模型库和所述目标函数的当前输入参数,确定所述目标函数在当前输入参数下的最优缓存数据列数;
根据最优缓存数据列数,确定函数敏感值;函数敏感值表示函数占用的缓存数据列数由少到最优缓存数据列数过程中,函数性能的优化程度;
根据所述函数敏感值,通过高速缓存分配技术在最后一级高速缓存LLC的多个缓存数据列中为所述目标函数分配缓存数据列。
2.根据权利要求1所述的方法,其特征在于,所述根据所述函数敏感值,通过高速缓存分配技术在最后一级高速缓存LLC的多个缓存数据列中为所述目标函数分配缓存数据列,包括:
若所述函数敏感值大于敏感阈值,则确定所述目标函数为敏感类型函数,通过高速缓存分配技术为所述目标函数在所述LLC中分配所述最优缓存数据列数;
若所述函数敏感值小于或者等于敏感阈值,则确定所述目标函数为不敏感类型函数,通过高速缓存分配技术为所述目标函数在所述LLC分配容纳所述目标函数执行的最低缓存数据列数。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述目标函数为在函数即服务平台上未进行注册的未知函数,则通过高速缓存分配技术为所述目标函数在所述LLC中分配随机缓存数据列数。
4.根据权利要求1所述的方法,其特征在于,所述根据所述函数敏感值,通过高速缓存分配技术在最后一级高速缓存LLC的多个缓存数据列中为所述目标函数分配缓存数据列,包括:
通过高速缓存分配技术基于服务等级CLOS中间结构作为资源控制平面,构建所述LLC中缓存数据列与多个CLOS之间的关系矩阵;
根据所述函数敏感值,通过高速缓存分配技术为所述目标函数分配CLOS。
5.根据权利要求4所述的方法,其特征在于,所述关系矩阵中的多个CLOS包括:敏感CLOS和不敏感CLOS;其中,每个不敏感CLOS关联的缓存数据列数为设定值,且小于每个敏感CLOS关联的缓存数据列数。
6.根据权利要求5所述的方法,其特征在于,所述根据所述函数敏感值,通过高速缓存分配技术为所述目标函数分配CLOS,包括:
确定所述多个CLOS关联的缓存数据列的当前负载;
对多个CLOS按照不同类型和当前负载大小进行排序,得到不同类型下按照当前负载大小排序的CLOS;
若所述函数敏感值小于或者等于敏感阈值,则选择当前负载最小的不敏感CLOS分配给所述目标函数;
若所述函数敏感值大于敏感阈值,则确定所述目标函数为敏感类型函数,选择关联的缓存数据列负载最小的敏感CLOS分配给所述目标函数,分配所述最优缓存数据列数。
7.根据权利要求4所述的方法,其特征在于,所述关系矩阵中的多个CLOS包括:预留CLOS;所述方法还包括:
若所述目标函数为在函数即服务平台上未进行注册的未知函数,则通过高速缓存分配技术将所述预留CLOS分配给所述目标函数。
8.根据权利要求1所述的方法,其特征在于,所述函数缓存模型库的构建过程包括:
获取在函数即服务平台上注册的已知函数;
通过测试输入参数对所述已知函数进行测试,确定所述已知函数在所述测试输入参数下的测试最优缓存数据列和测试函数敏感值;
根据所述测试输入参数、测试最优缓存数据列和测试函数敏感值,构建所述已知函数的初始函数缓存模型;
根据所述初始函数缓存模型,进行回归分析或聚类算法,预测所述已知函数在不同输入参数下对应的不同最优缓存数据列和不同函数敏感值,得到预测数据;
根据所述预测数据,构建所述已知函数的多参数函数缓存模型;
根据所述已知函数的多参数函数缓存模型,构建函数缓存模型库。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
通过资源调配技术获取所述已知函数的历史监控数据;所述历史监控数据至少包括:历史输入参数、历史最优缓存数据列和历史函数敏感值;
根据所述已知函数的历史监控数据,更新所述已知函数的初始函数缓存模型;
根据所述已知函数更新后的初始函数缓存模型,实时更新函数缓存模型库。
10.根据权利要求1所述的方法,其特征在于,所述根据预先构建的函数缓存模型库和所述目标函数的当前输入参数,确定所述目标函数在当前输入参数下的最优缓存数据列数,包括:
从预先构建的函数缓存模型库中确定所述目标函数对应的目标函数缓存模型;
根据目标函数缓存模型中的预测数据,输出所述当前输入参数对应的最优缓存数据列数。
11.根据权利要求1所述的方法,其特征在于,所述根据最优缓存数据列数,确定函数敏感值,包括:
根据所述目标函数在当前输入参数对应的所述最优缓存数据列数下的第一执行时间和在一列缓存数据列的第二执行时间之差与所述第一执行时间的比值,确定所述函数敏感值。
12.一种函数的缓存分配系统,其特征在于,所述系统包括:
分析器,用于获取待分配缓存的目标函数;
预测器,用于根据预先构建的函数缓存模型库和所述目标函数的当前输入参数,确定所述目标函数在当前输入参数下的最优缓存数据列数;
所述预测器,还用于根据最优缓存数据列数,确定函数敏感值;函数敏感值表示函数占用的缓存数据列数由少到最优缓存数据列数过程中,函数性能的优化程度;
分配器,用于根据所述函数敏感值,通过高速缓存分配技术在最后一级高速缓存LLC的多个缓存数据列中为所述目标函数分配缓存数据列。
13.根据权利要求12所述的系统,其特征在于,所述分配器,还用于:
若所述函数敏感值大于敏感阈值,则确定所述目标函数为敏感类型函数,通过高速缓存分配技术为所述目标函数在所述LLC中分配所述最优缓存数据列数;
若所述函数敏感值小于或者等于敏感阈值,则确定所述目标函数为不敏感类型函数,通过高速缓存分配技术为所述目标函数在所述LLC分配容纳所述目标函数执行的最低缓存数据列数。
14.根据权利要求12所述的系统,其特征在于,所述分配器,还用于:
若所述目标函数为在函数即服务平台上未进行注册的未知函数,则通过高速缓存分配技术为所述目标函数在所述LLC中分配随机缓存数据列数。
15.根据权利要求12所述的系统,其特征在于,所述分配器,还用于:
通过高速缓存分配技术基于服务等级CLOS中间结构作为资源控制平面,构建所述LLC中缓存数据列与多个CLOS之间的关系矩阵;
根据所述函数敏感值,通过高速缓存分配技术为所述目标函数分配CLOS。
16.根据权利要求12所述的系统,其特征在于,所述分析器,还用于获取在函数即服务平台上注册的已知函数;通过测试输入参数对所述已知函数进行测试,确定所述已知函数在所述测试输入参数下的测试最优缓存数据列和测试函数敏感值;根据所述测试输入参数、测试最优缓存数据列和测试函数敏感值,构建所述已知函数的初始函数缓存模型;
所述预测器,还用于根据所述初始函数缓存模型,进行回归分析或聚类算法,预测所述已知函数在不同输入参数下对应的不同最优缓存数据列和不同函数敏感值,得到预测数据;根据所述预测数据,构建所述已知函数的多参数函数缓存模型;根据所述已知函数的多参数函数缓存模型,构建函数缓存模型库。
17.一种函数的缓存分配装置,其特征在于,所述装置包括:
获取单元,用于获取待分配缓存的目标函数;
第一确定单元,用于根据预先构建的函数缓存模型库和所述目标函数的当前输入参数,确定所述目标函数在当前输入参数下的最优缓存数据列数;
第二确定单元,用于根据最优缓存数据列数,确定函数敏感值;函数敏感值表示函数占用的缓存数据列数由少到最优缓存数据列数过程中,函数性能的优化程度;
分配单元,用于根据所述函数敏感值,通过高速缓存分配技术在最后一级高速缓存LLC的多个缓存数据列中为所述目标函数分配缓存数据列。
18.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~11中任意一项所述的方法。
19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1~11中任意一项所述的方法。
20.一种计算机程序产品,包括:计算机程序或指令,其特征在于,所述计算机程序或指令被处理器执行时实现权利要求1~11中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410575289.3A CN118152304A (zh) | 2024-05-10 | 2024-05-10 | 函数的缓存分配方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410575289.3A CN118152304A (zh) | 2024-05-10 | 2024-05-10 | 函数的缓存分配方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118152304A true CN118152304A (zh) | 2024-06-07 |
Family
ID=91297082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410575289.3A Pending CN118152304A (zh) | 2024-05-10 | 2024-05-10 | 函数的缓存分配方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118152304A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111886583A (zh) * | 2018-06-29 | 2020-11-03 | 英特尔公司 | 支持处理器高速缓存的高速缓存服务类别的整体观的技术 |
CN112799978A (zh) * | 2021-01-20 | 2021-05-14 | 网易(杭州)网络有限公司 | 缓存设计管理方法、装置、设备和计算机可读存储介质 |
CN113190350A (zh) * | 2021-04-30 | 2021-07-30 | 华南理工大学 | 一种面向在离线容器混合部署的llc分配方法 |
CN116320033A (zh) * | 2023-03-16 | 2023-06-23 | 中国建设银行股份有限公司 | 一种资源调度优化方法及装置 |
CN117573725A (zh) * | 2023-12-20 | 2024-02-20 | 中国电信股份有限公司技术创新中心 | 缓存数据处理方法、装置、电子设备及存储介质 |
-
2024
- 2024-05-10 CN CN202410575289.3A patent/CN118152304A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111886583A (zh) * | 2018-06-29 | 2020-11-03 | 英特尔公司 | 支持处理器高速缓存的高速缓存服务类别的整体观的技术 |
CN112799978A (zh) * | 2021-01-20 | 2021-05-14 | 网易(杭州)网络有限公司 | 缓存设计管理方法、装置、设备和计算机可读存储介质 |
CN113190350A (zh) * | 2021-04-30 | 2021-07-30 | 华南理工大学 | 一种面向在离线容器混合部署的llc分配方法 |
CN116320033A (zh) * | 2023-03-16 | 2023-06-23 | 中国建设银行股份有限公司 | 一种资源调度优化方法及装置 |
CN117573725A (zh) * | 2023-12-20 | 2024-02-20 | 中国电信股份有限公司技术创新中心 | 缓存数据处理方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
彭灿华;: "Redis在高速缓存系统中的序列化算法研究", 现代电子技术, no. 22, 15 November 2017 (2017-11-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9052932B2 (en) | Hybrid virtual machine configuration management | |
US20110202925A1 (en) | Optimized capacity planning | |
KR20220006490A (ko) | 워크로드 동적 자원 배치 및 최적화 수행관리를 위한 하이브리드 클라우드 자원 배분 방법 | |
US20110196908A1 (en) | Optimized capacity planning | |
US9547520B1 (en) | Virtual machine load balancing | |
CN111176818B (zh) | 分布式预测的方法、装置、系统、电子设备及存储介质 | |
CN111464659A (zh) | 节点的调度、节点的预选处理方法、装置、设备及介质 | |
CN114610497A (zh) | 容器调度方法、集群系统、装置、电子设备及存储介质 | |
CN112181664B (zh) | 负载均衡方法及装置、计算机可读存储介质及电子设备 | |
CN112256430A (zh) | 容器的部署方法、装置、设备及存储介质 | |
CN112068957A (zh) | 资源分配方法、装置、计算机设备及存储介质 | |
CN115033340A (zh) | 一种宿主机的选择方法及相关装置 | |
CN114844791B (zh) | 基于大数据的云服务自动管理分配方法、系统及存储介质 | |
CN113672375B (zh) | 资源分配预测方法、装置、设备及存储介质 | |
CN112162891A (zh) | 服务器集群中的性能测试方法及相关设备 | |
Turin et al. | A formal model of the kubernetes container framework | |
US10901798B2 (en) | Dependency layer deployment optimization in a workload node cluster | |
CN114546587A (zh) | 一种在线图像识别服务的扩缩容方法及相关装置 | |
US20190384737A1 (en) | On-chip accelerator management | |
CN109992408B (zh) | 一种资源分配方法、装置、电子设备和存储介质 | |
US11614963B2 (en) | Machine learning based runtime optimization | |
CN117014389A (zh) | 算网资源配置方法及系统、电子设备、存储介质 | |
CN116962532A (zh) | 集群任务调度方法、装置、计算机设备及存储介质 | |
CN118152304A (zh) | 函数的缓存分配方法及相关设备 | |
CN110247802B (zh) | 针对云服务单机环境的资源配置方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |